Speedup

En arquitectura de computadores, speedup es un proceso realizado para mejorar el rendimiento de un sistema que procesa un problema determinado. Más técnicamente, es la mejora en la velocidad de ejecución de una tarea ejecutada en dos arquitecturas similares con diferentes recursos. La noción de speedup fue establecida por la ley de Amdahl, que estaba dirigida particularmente a la computación paralela. Sin embargo, la speedup se puede usar más generalmente para mostrar el efecto en el rendimiento después de cualquier mejora en los recursos. From Wikipedia, the free encyclopedia

En arquitectura de computadores, speedup (aceleración en castellano) es un proceso realizado para mejorar el rendimiento de un sistema que procesa un problema determinado. Más técnicamente, es la mejora en la velocidad de ejecución de una tarea ejecutada en dos arquitecturas similares con diferentes recursos. La noción de speedup fue establecida por la ley de Amdahl, que estaba dirigida particularmente a la computación paralela. Sin embargo, la speedup se puede usar más generalmente para mostrar el efecto en el rendimiento después de cualquier mejora en los recursos.

Speedup en latencia

La speedup se puede definir para dos diferentes tipos de cantidades: latencia y throughput.[1]

La latencia de una arquitectura es el recíproco de la velocidad de ejecución de una tarea:

donde

  • v es la velocidad de ejecución de la tarea;
  • T es el tiempo de ejecución de la tarea;
  • W es la carga de trabajo de la tarea.

La throughput de una arquitectura es la tasa de ejecución de una tarea:

donde

  • ρ es la densidad de ejecución (es decir, el número de fases en una arquitectura segmentada);
  • A es la capacidad de ejecución (es decir, el número de procesadores en una arquitectura paralela).

La latencia se mide habitualmente en segundos por unidad de carga de ejecución, y la throughput se mide habitualmente en unidades de carga de ejecución por segundo. Otra unidad de throughput son las instrucciones por ciclo (IPC), y su recíproco, los ciclos por instrucción (CPI), es otra unidad de latencia.

La speedup es un número sin dimensión y está definido de manera diferente para cada tipo de cantidad de manera que sea una métrica consistente.

La speedup en latencia está definida por la siguiente fórmula:[2]

donde

  • Slatencia es la speedup en latencia de la arquitectura 2 respecto a la arquitectura 1;
  • L1 es la latencia de la arquitectura 1;
  • L2 es la latencia de la arquitectura 2.

La speedup en latencia se puede predecir con la ley de Amdahl o la ley de Gustafson.

Speedup en throughput

La speedup en throughput está definida por la siguiente fórmula:[3]

donde

  • Sthroughput es la speedup en throughput de la arquitectura 2 respecto a la arquitectura 1;
  • Q1 es la throughput de la arquitectura 1;
  • Q2 es la throughput de la arquitectura 2.

Ejemplos

Usando tiempos de ejecución

Estamos probando la efectividad de un predictor de saltos en la ejecución de un programa. Primero, ejecutamos el programa con el predictor de saltos estándar en el procesador, lo que consigue un tiempo de ejecución de 2,25 segundos. A continuación, ejecutamos el programa con nuestro predictor de saltos modificado (y esperamos mejorado) en el mismo procesador, lo que produce un tiempo de ejecución de 1,50 segundos. En ambos casos la carga de ejecución es la misma. Usando nuestra fórmula de speedup, sabemos que

Nuestro nuevo predictor de saltos ha conseguido una speedup de 1,5x sobre el original.

Usando ciclos por instrucción e instrucciones por ciclo

También podemos medir la speedup en ciclos por instrucción (CPI), que es una medida de latencia. Primero, ejecutamos el programa con el predictor de saltos estándar, lo que nos da un CPI de 3. A continuación, ejecutamos el programa con nuestro predictor de saltos modificado, lo que consigue un CPI de 2. En ambos casos la carga de ejecución es la misma y ambas arquitecturas no son segmentadas ni paralelas. Usando la fórmula de la speedup

También podemos medir la speedup en instrucciones por ciclo (IPC), que es una medida de throughput y el inverso del CPI. Usando la fórmula de speedup nos da

Vemos que obtenemos el mismo speedup de 1,5x, aunque usamos diferentes cantidades.

Speedup lineal y super-lineal

Véase también

Referencias

Related Articles

Wikiwand AI