Rendimiento de computadores - ¡Bienvenido a paloalto.unileon.es!
Transcripción
Rendimiento de computadores - ¡Bienvenido a paloalto.unileon.es!
+ Prof. José María Foces Morán Dept. IESA Universidad de León Rendimiento de computadores Tiempo de ejecución Tiempo de CPU Rendimiento comparativo Ley de Amdahl Ley de Gustaffson + 2 Computador síncrono El flanco activo de clock provoca que los resultados calculados se salven en registros Clock Frecuencia // Tcyc Prof. José María Foces Morán, Univ. de León, Dept. IESA + 3 Rapidez de un computador X Cuánto tiempo tarda X en ejecutar un programa. Entre el inicio y el final de su ejecución Tiempo de respuesta Los usuarios están interesados en que el tiempo de respuesta se vea reducido. Tejecución X Su rapidez viene dada por su rendimiento Prof. José María Foces Morán, Univ. de León, Dept. IESA + 4 Rendimiento El computador X tarda Tx segundos en ejecutar un programa Su rendimiento viene dado por: 1 Rx = Tx Prof. José María Foces Morán, Univ. de León, Dept. IESA + 5 Rendimiento y tiempo de ejecución Un aumento del tiempo de ejecución provoca una reducción del rendimiento y, a la inversa. 1 Rx = Tx Prof. José María Foces Morán, Univ. de León, Dept. IESA + 6 Cómo se comparan rendimientos Convenio: Calcular cociente del rendimiento del más rápido vs. el menos rápido: Rx =n Ry Decimos que X es n veces más rápida que Y para el programa de prueba empleado Coherente con nuestra intuición € Prof. José María Foces Morán, Univ. de León, Dept. IESA + 7 Instrumentos de medida Los microprocesadores y los sistemas operativos tienen recursos especiales para medir tiempos, contar instrucciones ejecutadas, etc Tiempo: Tiempo de respuesta = tiempo de reloj = tiempo transcurrido = tiempo total Tiempo de CPU: Tiempo imputable a la ejecución de instrucciones de un proceso (programa en ejecución) De sistema De usuario Prof. José María Foces Morán, Univ. de León, Dept. IESA + 8 Sistemas operativos multitarea El microprocesador se multiplexa en el tiempo: El planificador del sistema operativo asigna un lapso de tiempo a cada El micro pasa de un proceso a otro dando a todos una oportunidad de ejecutarse El algoritmo empleado, en su forma más básica se llama round-robin Prof. José María Foces Morán, Univ. de León, Dept. IESA + 9 Sistemas operativos multitarea ¿Cuánto tiempo de Cpu consume Pn+2? La suma de los tiempos de todas las instrucciones de Pn+2 ejecutadas ¿Cuánto tiempo total tarda Pn+2? Tcpu n+2 + Tswitch + Tcpu resto Prof. José María Foces Morán, Univ. de León, Dept. IESA + 10 Tiempo de CPU de una instrucción CPI Clocks-per-instruction En este caso es 7 ¿Cuánto tiempo de Cpu le corresponde? Supongamos Tcyc= 1ns Tcpu = N instr × CPI × Tcyc = 1instr × 7 ciclos seg × = 1 × 7 × 1ns = 7ns instrucción ciclo € Prof. José María Foces Morán, Univ. de León, Dept. IESA + 11 Tiempo de CPU de un proceso Suma de tiempos en los que el proceso P ha estado ejecutándose Suma de tiempos de ejecución de cada instrucción del programa considerado En general, no coincide con el tiempo de respuesta ¿Por qué? Prof. José María Foces Morán, Univ. de León, Dept. IESA + 12 Tiempo de CPU de un proceso Un proceso puede encontrarse en estos estados Running: El micro está ejecutándolo Ready: Se encuentra listo para continuar su ejecución Sleeping: Se encuentra esperando a que termine una operación de i/o Prof. José María Foces Morán, Univ. de León, Dept. IESA + 13 Tiempo de CPU de un proceso Prof. José María Foces Morán, Univ. de León, Dept. IESA + 14 Ecuación del rendimiento Tcpu= Ninst · CPI · Tcyc! Ninst instrucciones por programa! CPI promedio de ciclos de reloj por instrucción! Tcyc segundos por ciclo de reloj! Prof. José María Foces Morán, Univ. de León, Dept. IESA + 15 Frecuencias de aparición de instrucciones en programas Frecuencia estática Contar cuántas veces aparece la instrucción en el texto fuente del programa. Frecuencia dinámica Contar cuántas veces se ejecuta la instrucción en tiempo de ejecución del programa Prof. José María Foces Morán, Univ. de León, Dept. IESA + 16 Frecuencia estática, ejemplo. addi $t1, $zero, 100! add $t0, $zero, $zero! inicio: beq $t0, $t1, fin! ! ! !add $s3, $s1, $s2! ! ! !addi $t0, $t0, 1! ! ! !j inicio! or $s7, $s7, $s6! and $s7, $s7, $s5! Prof. José María Foces Morán, Univ. de León, Dept. IESA 5 4 3 2 1 0 add beq j or and + 17 Frecuencias dinámicas, ejemplo. addi $t1, $zero, 100! add $t0, $zero, $zero! inicio: beq $t0, $t1, fin! !! !add $s3, $s1, $s2! !! !addi $t0, $t0, 1! !! !j inicio! or $s7, $s7, $s6! and $s7, $s7, $s5! 250 200 150 100 50 0 add beq j Prof. José María Foces Morán, Univ. de León, Dept. IESA or and + 18 Ley de Amdahl La mejora global obtenida al introducir una mejora en una parte de un sistema depende de la proporción de tiempo que se use esa mejora Ley de los retornos menores Ejemplo: Mejoramos la FPU un 20% ¿Cómo afecta al rendimiento global? No afecta en nada si no se usa la FPU Afecta poco, si se usa poco. Prof. José María Foces Morán, Univ. de León, Dept. IESA + 19 Ley de Amdahl Fórmula 1 (libro): Tiempo de ejecución final obtenido: Texecafter = Texecaffected Amount of improvement Prof. José María Foces Morán, Univ. de León, Dept. IESA + Texecnot −affected + 20 Ley de Amdahl Fórmula 2: Aceleración final obtenida: mejora del rendimiento final Soverall = k = Senh € Prof. José María Foces Morán, Univ. de León, Dept. IESA 1 f (1 − f ) + k (Hennessy & Patterson) + 21 Ley de Amdahl Aceleración global, casos interesantes: Soverall = 1 f (1 − f ) + k f = 0 →A =1 f =1 →A = k lim Soverall € k→∞ Prof. José María Foces Morán, Univ. de León, Dept. IESA 1 = 1− f + 22 Ley de Amdahl y paralelismo La ley de Amdahl aplicada a procesadores paralelos toma una forma particular Ejemplo: Necesitamos reducir el tiempo de ejecución de un programa P, pero, no podemos mejorar más el algoritmo Podemos emplear un sistema con 1024 procesadores ¿Qué ganancia de velocidad obtendremos? (Aceleración) Dependerá de qué proporción de tiempo se usen los 1024 procesadores en paralelo Habrá operaciones de nuestro programa que no serán paralelizables, habrán de ejecutarse en serie. Prof. José María Foces Morán, Univ. de León, Dept. IESA + 23 Ley de Amdahl y paralelismo Formulación de la ley de Amdahl para procesadores paralelos: 1-f: Es la fracción no mejorada, esto es, la porción serie de nuestro programa, la llamaremos s. f: Es la fracción mejorada, la llamaremos p. N: Es el número de procesadores (K en nuestra formulación original), o sea, el grado de mejora. Speedup = 1 f (1 − f ) + N Prof. José María Foces Morán, Univ. de León, Dept. IESA 1 = p s+ N + Ley de Amdahl y 24 1200 paralelismo 1000 Speedup Para lograr una aceleración igual a N, s ha de ser practicamente 0. 800 600 Parece que no hay muchas oportunidades de maximizar el aprovechamiento de N Serie2 400 200 N 0 1 13 25 37 49 61 73 85 97 109 121 133 145 157 169 181 193 205 217 229 241 253 1 Speedup = s+ p N=1024 Prof. José María Foces Morán, Univ. de León, Dept. IESA s + 25 Ley de Gustafson Estamos asumiendo que p es independiente de N, pero, este no es el caso. Es decir, el tamaño del problema, normalmente se escala al número de procesadores Entonces, surgen mayores oportunidades de aprovechar el paralelismo inherente al problema Las perspectivas son mejores que con la ley de Amdahl La cantidad de trabajo que puede realizarse en paralelo depende linealmente de N Conclusión: La aceleración derivada de uso de un computador masivamente paralelo, si el problema puede escalarse a N, es ostensiblemente superior al cálculo de Amdahl Prof. José María Foces Morán, Univ. de León, Dept. IESA + 26 Ley de Gustafson En este contexto, distinguimos dos tipos de escalabilidad Fuerte. Basada en la ley de Amdahl, tiene lugar en aquellos algoritmos que contienen una gran cantidad de paralelismo inherente. Débil. Basada en la ley de Gustafson: Conforme el número de procesadores y el tamaño del problema crecen de tal forma que el trabajo por procesador permanezca constante, la velocidad de cada procesador en operaciones por segundo también permanece constante. Esta es la dependencia N//p de la que hablamos anteriormente Si esta relación es lineal, podemos afirmar que la cantidad de trabajo por procesador es lineal y que, por tanto, el tiempo de ejecución ‘paralelo’ es constante a medida que crece N. Prof. José María Foces Morán, Univ. de León, Dept. IESA + 27 Medidas de productividad (Throughput) MIPS Millones de Instrucciones por Segundo Sólamente computación entera Se trata de un ratio Mejor cuanto más grande –intuición Problema: No explica el trabajo realizado en cada instrucción MFLOPS Millones de Operaciones de Punto Flotante por Segundo Mide el número de operaciones de FP realizadas, no instrucciones Sí nos da una idea de la cantidad de trabajo realizado Prof. José María Foces Morán, Univ. de León, Dept. IESA + 28 Benchmarks ¿Qué es mejor medir para establecer la potencia de un sistema? MIPS MFLOPS Transacciones/segundo Depende del uso del sistema Un benchmark es un conjunto de pruebas de rendimiento representativas de un dominio Así, las conclusiones podrán ser aplicables en ese dominio Prof. José María Foces Morán, Univ. de León, Dept. IESA + 29 Benchmarks Programas para medir rendimientos MIPS, MFLOPS, etc Dhrystone, Whetstone, Sieve, etc… Benchmarks sintéticos Estándares de facto SPEC: System Performance Evaluation Cooperative benchmark Int Float Basados en programas de uso muy frecuente http://www.spec.org/ Prof. José María Foces Morán, Univ. de León, Dept. IESA + 30 Ejercicios Pizarra Libro de texto, cap.2 Ejercicios resueltos interactivos: http://paloalto.unileon.es/wee/index.html paloalto.unileon.es/mel Exámenes antiguos Ejercicios resueltos Blog mel Prof. José María Foces Morán, Univ. de León, Dept. IESA