230 likes | 529 Vues
Capítulo 2: Rendimiento de un computador. Definición de rendimiento. Rendimiento de la CPU. Métricas populares de rendimiento: MIPS Y MFLOPS Programas de prueba para la evaluación del rendimiento. Ley de Amdahl Bibliografía básica: [Patt-95], [Henn-93] ... 2 horas.
E N D
Capítulo 2: Rendimiento de un computador • Definición de rendimiento. • Rendimiento de la CPU. • Métricas populares de rendimiento: MIPS Y MFLOPS • Programas de prueba para la evaluación del rendimiento. • Ley de Amdahl Bibliografía básica: [Patt-95], [Henn-93] ... 2 horas Cap 2: Rendimiento de un computador
Definición del rendimiento Existen dos formas de medir el rendimiento: • Tiempo de respuesta • Tiempo entre el comienzo y finalización de una tarea. También llamado tiempo de ejecución. • Productividad (throughput) • Cantidad total de trabajo realizado en un tiempo determinado. • Una mejor medida desde el punto de vista del sistema pero no desde el punto de vista del usuario. Cap 2: Rendimiento de un computador
Tiempo de respuesta vs productividad • Un tren de lavado de coches comienza un coche cada 30 segundos y en el tren existen simultáneamente 6 coches en distintas fases de lavado. • Tiempo de respuesta (usuario): 180 segundos • Productividad (sistema): 1 coche cada 30 segundos Cap 2: Rendimiento de un computador
Rendimiento y tiempo de ejecución • El rendimiento de un computador X es inversamente proporcional al tiempo de ejecución: • Computador X es n% más rápido que el computador Y • Computador Y es n% más lento que el computador X Cap 2: Rendimiento de un computador
Medidas del tiempo • Tiempo (segundos) • Única medida completa y fiable del rendimiento de un computador. • Comando Unix: time “programa” -->90.7 u 12.9 s 2:39 65% Cap 2: Rendimiento de un computador
Reloj Rendimiento de la CPU:Ecuación clásica (CPIMEDIO : Nos permite comparar dos implementaciones de una misma arquitectura) Cap 2: Rendimiento de un computador
Factores de la ecuación clásica:Análisis de dependencias Cap 2: Rendimiento de un computador
Métricas populares de rendimiento (I)MIPS y MFLOPS • MIPS (millones de instrucciones por segundo) • Inconvenientes de la métrica: • Los MIPS dependen del repertorio de instrucciones. No podemos comparar distintas arquitecturas. • Los MIPS varían entre programas en el mismo computador. • Los MIPS pueden variar inversamente al rendimiento. Cap 2: Rendimiento de un computador
Métricas populares de rendimiento (II)MIPS y MFLOPS • MFLOPS (Millones de operaciones en punto flotante por segundo) • Inconvenientes: • Sólo aplicable a las operaciones en punto flotante. • Instrucciones en punto flotante no comparables entre diferentes máquinas. Máquina A: *, -, * y / Máquina B: No tiene “/” (dará mas MFLOPS) • Mezcla de operaciones rápidas y lentas. • Los MFLOPS para 100 sumas serán mayores que para 100 divisiones. • MFLOPS normalizados: Cap 2: Rendimiento de un computador
Programas para la evaluación del rendimiento (I) Benchmarks Programas que forman una carga de trabajo con la que el usuario espera predecir el rendimiento de la carga de trabajo real. • Programas reales típicos • Ejemplos: Compiladores (gcc), tratamiento de textos (TeX), herramientas CAD (spice). • Núcleos obtenidos de programas reales (Kernels) • Pequeñas partes intensivas en el tiempo de programas reales. • Ejemplo: Livermore Loops y Linpack. • Programas triviales o benchmarks reducidos (toys) • 10 -100 líneas de programa. Resultado conocido antes de ejecutarlo. • Ejemplo:Quicksort, puzzle, ... • Programas sintéticos • Creados artificialmente (programas sintéticos). • Ejemplo: Whetstone y Dhrystone. Cap 2: Rendimiento de un computador
Programas para la evaluación del rendimiento (II) Benchmarks • SPEC: Cooperativa de Evaluación del Rendimiento de Sistemas (System Performance Evaluation Cooperative) • En 1988 representantes de unas cuantas compañías - Apollo/Hewlett-Packard, DEC, MIPS y Sun- fundan una cooperativa para la evaluación del rendimiento de sistemas. • Llegan al acuerdo de ejecutar todos un conjunto de programas y entradas reales. Factible debido en gran parte a: • Sistemas Operativos portables (Unix) • Popularidad de los Lenguajes de Alto Nivel. • Ahora, los compiladores, también forman parte del rendimiento de un computador y deben ser medidos en cualquier evaluación. Cap 2: Rendimiento de un computador
Tiempo de ejecución en un VAX 11/780 SPECPor programa= Tiempo de ejecución en la máquina a medir SPEC’89 • 1989 • 4 programas de aritmética entera. • 6 programas de punto flotante. • No se distingue entre SPECs de aritmética entera y punto flotante. SPEC (global) = [ (SPECPor programa)i]1/n (Media geométrica de los SPEC de cada programa: Hace que sea tan importante que el programa A pase de 2 a 1 segundo como que el programa B pase de 2000 a 1000 segundos). Cap 2: Rendimiento de un computador
SPEC’89 • Mejoras del “compilador” y repercusión en el rendimiento. Cap 2: Rendimiento de un computador
SPEC’92 y SPEC’95 • 1992 • SpecInt92 (6 programas aritmética entera). • SpecFp92 (14 programas de aritmética en punto flotante). • SPECbase: Medida obtenida sin hacer uso de los flags del compilador que optimiza el código generado según el programa específico. • VAX 11/780 -> 1 Spec(int/fp)92 • 1995 • SpecInt95 (8 programas aritmética entera). • SpecFp95 (10 programas de aritmética en punto flotante). • Nuevo conjunto de programas! (para 3 años). • Los SPECs de cada programa se normalizan respecto a una Sun SPARCStation 10/40. • SparcStation 10/40 -> 1 Spec(int/fp)95 • SparcStation 10/40 -> 41.26 SpecInt92 - 34.35 Specfp92 Cap 2: Rendimiento de un computador
Programas de SPEC’95 Cap 2: Rendimiento de un computador
Programas de SPEC 2000 Cap 2: Rendimiento de un computador
SPEC’95 • ¿Por qué al duplicar la frecuencia de reloj no se duplica el rendimiento (Pentium)? Cap 2: Rendimiento de un computador
Ejemplo: SPEC’95 Cap 2: Rendimiento de un computador
Problemas de los programas de prueba • Los benchmarks reducidos (toys) y los sintéticos no cargan la memoria principal del sistema de forma realista (todo el programa cabe en la memoria cache) • Una vez que el benchmark se estandariza inmediatamente aparecen mejoras específicas para el mismo elevando los resultados de rendimientos. Si los benchmarks fuesen nuestros programas nos veríamos beneficiados ya que los interesados harían que nuestra aplicación fuese más rápida. • Los benchmarks reales son difíciles de realizar, situación que se agudiza en los casos de: • Máquina no construida, simuladores más lentos. • Benchmarks no portables • Compiladores no disponibles Cap 2: Rendimiento de un computador
Comparación y resumen de rendimientos: Combinación de medidas de rendimiento • ¿Cómo combinar el rendimiento de un conjunto de programas? Cap 2: Rendimiento de un computador
F 1-F 1 Ley de Amdahl • El posible aumento de rendimiento para una mejora dada está limitado por la cantidad que se utiliza la característica mejorada. • Si suponemos que la mejora acelera una fracción F de la tarea en un factor de S, entonces la ganancia de velocidad (speedup) vendrá dada por: • Corolario: Hacer rápido el caso común. Cap 2: Rendimiento de un computador
Ejemplo de ganancia de velocidad (Speedup):Uso de Procesadores Paralelos (I) • Suponga una aplicación que casi toda es paralela (90%) o lo que es lo mismo, una tarea que puede ejecutarse por varios procesadores simultáneamente. Número de procesadores: P • Al pasar de 100 a 1000 procesadores el aumento de rendimiento no ha sido tanto como el esperado. Para aumentarlo es necesario acelerar la parte secuencial del programa o que la fracción factible de ejecutarse en paralelo aumente. Cap 2: Rendimiento de un computador
Ejemplo de ganancia de velocidad (Speedup):Uso de Procesadores Paralelos (II) • Veamos que ocurre si mejoramos en cantidad 2 la parte no paralela: • Veamos que ocurre si aumentamos la fracción paralelizable en 0.05 • Algunas direcciones de interés relacionadas con el rendimiento: • http://www.specbench.org • http://performance.netlib.org/performance/html/PDSreports.html Cap 2: Rendimiento de un computador