Rendimiento John Hennessy – David Patterson, Arquitectura de Computadores – Un enfoque cuantitativo 1a Edición, Capítulos 1 y 2 (3a y 4a Edición, Capítulo 1) Rendimiento Introducción Cómo comparar la performance de dos computadoras diferentes en su arquitectura (ISA, Organización y Tecnología)? Cómo analizar el impacto de una mejora? Por qué existen tantos tipos de computadoras? Comparación con la industria automotriz velocidad máxima (km/h), aceleración (0­100 km/h), derrape (g), consumo (l/100 km) precio ($), costo de mantenimiento ($) El mercado de computadoras rendimiento, tamaño, potencia? precio, costo de mantenimiento? Tres grandes categorías Servers (rendimiento) Embedded (costo, potencia, tamaño) Desktop/Worstations (costo/rendimento) Top500 vs. Green500 2 Rendimiento Expresiones más utilizadas Si T es el tiempo de ejecución de un determinado programa y η el rendimiento de la computadora que lo ejecuta, decimos que la computadora A es más rápida que la computadora B si: TA<TB y ηA>ηB Por lo tanto el rendimiento es inversamente proporcional al tiempo de ejecución del programa involucrado. Puede decirse que: 1 TB ηA Tα ⇒ = η T A ηB RENDIMIENTO == TPS 3 Rendimiento Expresiones más utilizadas (cont) Entonces, si A es más rápida que B, al utilizarla puedo hablar de una aceleración (speedup) S tal que: S= ηA ηB = TB S=1 TA A es un n% más rápida que B n 100 Igualando las dos expresiones: TB n S= =1 TA 100 n= T B −T A TA 100 n= η A−η B ηB 100 IMPORTANTE No confundir los términos speedup con acceleration 4 Rendimiento Expresiones más utilizadas (cont) Ejemplo: Una computadora ejecuta un cierto programa en 10 segundos. Una segunda computadora tarda 15 segundos en ejecutar el mismo programa. Por lo tanto, la primera es un 50% (no 33%!!) más rápida que la segunda, o sea que si la utilizo obtengo una aceleración de 1.5 respecto de la segunda. n= 1 5 −1 0 1 0 0 =50 10 15 S= =1 . 5 10 IMPORTANTE No utilizar “es tanto más lenta...” y tener cuidado con “incrementar”, “decrementar”, “desmejorar” y otros términos inciertos. 5 Rendimiento Expresiones más utilizadas (cont) En bibliografía más reciente se evitan también las expresiones del tipo “tanto % más rápido”. Se intenta utilizar solamente “n veces más rápido”, que coincide con la previa definición de aceleración. La enunciación en veces es menos confusa: n = TB TA Sin embargo, el término aceleración (speedup) sigue siendo muy utilizado, y la expresión “es n veces más rápido que”... puede confundir. 6 Rendimiento Aumento del rendimiento La tecnología de impelmentación tiene sus tiempos (Ley de Moore) lo que representa un límite... Cómo se logra, desde la arquitectura y la organización, un aumento del rendimiento? (disminución del tiempo de ejecución). Es importante diferenciar dos formas diferentes de aumetar el rendimiento de una computadora: Menor tiempo de ejecución real (LATENCIA) Mayor productividad (THROUGHPUT) Tiempos medios (estadístico, por ejemplo disco rígido) versus RT. 7 Rendimiento Aumento del rendimiento (cont) 1. Acelerar el caso más común 2. Explotar la propiedad de localidad 3. Explotar el paralelismo de los programas 8 Aumento del rendimiento 1. Acelerar el caso más común Opciones: CPU – MEM - I/O Ley de Amdhal: Siendo T el tiempo de ejecución de una tarea, y f la fracción de ese tiempo que puede acelerarse un factor k, la aceleración obtenida será: S= 1 T= 1− f T+fT f 1− f k T MEJORADO= 1− f T+ S= Corolario: S MAX = 1 1− f T f T k T MEJORADO 9 Aumento del rendimiento – 1. Acelerar el más común Ejemplo Considere un determinado caso de aplicación en que la CPU se utiliza el 50% del tiempo (el resto del tiempo se consume en accesos a memoria y al sistema se entrada/salida). Suponga que el costo de la CPU representa 1/3 del costo total de la computadora. a) ¿Mejora la relación Costo/Rendimiento si reemplazo la CPU por otra 5 veces más rápida que cuesta 5 veces más? b) ¿Hasta cuánto pagaría por la CPU? c) Si pudiera comprar una CPU infinitamente rápida, ¿cúanto sería la aceleración? 10 Aumento del rendimiento – 1. Acelerar el más común Solución a) La relación Costo/Rendimiento empeora: S= 1 0.5 1−0 . 5 5 Costo NUEVO= Costo Rendimiento =1 . 66 66% más rápido 133% más caro 2 1 ×1 ×5 Costo ORIGINAL=2 .33 Costo ORIGINAL 3 3 = NUEVO 2 . 33 Costo × 1. 66 Rendimiento Desmejora ORIGINAL Pero cuidado: puede ser que ahora sea útil y antes no! VER: Agregar FP a un procesador hace más lenta la operación en enteros 11 Aumento del rendimiento 2. Localidad de referencia (Principio de Localidad) Comportamiento predecible de los recursos de los sistemas de computadora. Localidad temporal: un recurso accedido en un instante lo será de nuevo en el futuro inmediato. Localidad espacial: la probabilidad de acceder a un recurso es mayor si otro recurso próximo acaba de ser accedido. Localidad secuencial: caso particular de espacial; la memoria, en particular, suele ser accedida en forma secuencial. INSTRUCCIONES (mediciones) 90% del tiempo ejecutando 10% del código DATOS (no tan tajante) Localidad TEMPORAL, ESPACIAL y SECUENCIAL 12 Aumento del rendimiento – 2. Localidad Ejemplo Agrego a una computadora memoria cache 5 veces más rápida que la memoria principal, de tamaño tal que pueda alojar el 10% más usado de un programa. a) Calcular la aceleración obtenida en los accesos a memoria. b) Calcular la aceleración en la ejecución de los programas si el ciclo de instrucción se divide en tres etapas iguales: FETCH-DECODE-EXEC. c) Calcular la aceleración obtenida si el ciclo de instrucción tiene las siguientes cinco etapas: FETCH-DECODE-FETCHOP-EXEC-WRITEOP. 13 Aumento del rendimiento – 2. Localidad Solución a) Si entra el 10% del programa, la puedo utilizar en el 90% de los accesos a memoria: 1 S= 1−0 . 9 Los accesos son un 260% más rápidos. b) La captación es 1/3 ciclo de instrucción: S= 0.9 5 1 0 . 66 0 . 33 3.6 =3 . 66 =1. 32 La ejecución con caché es 32% más rápida que sin caché. c) Los accesos a memoria son 3/5 del ciclo de instrucción: La ejecución con caché es 76% más rápida que sin caché. 14 Aumento del rendimiento 3. Explotación del paralelismo A nivel sistema A nivel procesador A B C D E D A C E Distintas estrategias: Latencia 5 Productividad=1/5 Latencia 3 Productividad=1/3 B Puedo acelerar hasta el límite impuesto por la tecnología. Puedo paralelizar secciones. O realizar varias simultáneamente. O utilizar el concepto de linea de montaje (todas las secciones en paralelo). A B C D E Latencia 5 Productividad=2/5 A B C D E A B C D E Latencia 5 Productividad=1/1 A B C D E A B C D E 15 Rendimiento Medición del tiempo de ejecución El rendimiento es inversamente proporcional al tiempo de ejecución del programa involucrado. Cómo mido ese tiempo? 61% = (8.1+7.3)/25.2 x 100 $ time test 8.1u 7.3s 25.2 61% $ time test real 0m2.739s user 0m2.304s sys 0m0.016s <- tiempo transcurrido (wall) <- tiempo de ejecución <- llamadas al sistema operativo El tiempo user (+sys?) es mi TCPU. El resto del tiempo esperando I/O o ejecutando otros programas en el multitarea. 16 Medición del rendimiento Performance del procesador En general, el tiempo de ejecucion de un programa puede expresarse como: T CPU = CICLOS DE CLOCK DEL PROGRAMA N . CPI = f CLOCK f CLOCK donde CPI es el número de ciclos de clock por instrucción y N el número de instrucciones. CPI es una medida estadística que depende del uso que se le de al repertorio de instrucciones. En general, CPI= ∑ CPI i Ni N i: familia de instrucciones CPIi: ciclos de clock por instrucción de la familia Ni: recuento de instrucciones de la familia N: recuento total de instrucciones 17 Medición del rendimiento Ejemplo Calcular el CPI para el siguiente caso de utilización de los recursos de un procesador: Instrucción ALU LOAD STORE JUMP Frecuencia 43.00% 21.00% 12.00% 24.00% CPIi 1 2 2 2 CPI=1 . 57 18 ISA Medición del rendimiento ORG ARQ Ecuación de performance IMPL TEC Entonces, el tiempo de ejecucion de un programa puede expresarse como: 1 f CLOCK [ ] s ciclo [ ciclos instruccion ] × N [ instrucciones programa TECNOLOGÍA (proceso fab) ORG (serie-paral) COMPILADOR (eficiencia) ORG (datapath) ISA (inst -complex) ISA (inst complex) N: Brecha semántica × CPI RISC vs CISC ] TODOS RELACIONADOS T CPU = 19 Medición del rendimiento Benchmarks Parámetros (ej. fecuencia de clock) o MIPS Permiten comparar dentro de una familia, no entre diferentes arquitecturas (ej. RISC-CISC). f CLOCK N MIPS= = Dependen de ISA y el programa. 6 6 T 10 CPI 10 Pueden resultar inversamente proporc. CPU al rendimiento (FP) MFLOPS Precaución con las diferentes ISAs (ej. 68882 de Motorola tiene seno y raíz cuadrada). Precaución con los cálculos parciales (no es lo mismo una suma completa que la normalización de una suma). N FP MFLOPS= 6 T CPU 10 Programas reales (ej. Spice, CAD, gráficos) Deben estar disponibles o deben instalarse. Versiones. 20 Medición del rendimiento Benchmarks sintéticos Programas, generalmente pequeños, escritos originalmente en FORTRAN (traducidos a C) Utilizados para comprobar el comportamiento ante un tipo determinado de carga. Por ejemplo: Whetstone (1972) FP [MWIPS] Linpack (1984) FP álgebra lineal [FLOPS] Dhrystone (1984) ENTEROS [veces/seg] Debe observarse el efecto del cache. Al ser programas pequeños no miden performance de memoria. Benchmarketing. 21 Medición del rendimiento Benchmarks sintéticos Consorcio de fabricantes de hw y sw SPEC (1988) “Standard Performance Evaluation Corporation” (www.spec.org) Orientado a la CPU, tiempo, latencia. TPC (1990) “Transaction Processing Performance Council” (www.tpc.org) Orientado a transacciones, throughput. Compañías... INFOSIZING (www.sizing.com) 22 Medición del rendimiento Medias pitagóricas Cómo promediar medidas si estamos buscando una única figura de mérito. A: Media aritmética - Promedio No utilizar cuando hay variaciones grandes, pues son enmascaradas. G: Media geométrica - Areas Es mejor para performance relativa H: Media armónica - Tasas Muy sensible a valores pequeños, no se puede calcular si uno vale cero. Insensible a valores grandes. Es la media correcta para tasas. 23 Medición del rendimiento Medias pitagóricas Ejemplos: 1. Un vehiculo viaja una cierta distancia d a velocidad x = 60 km/h y luego la misma distancia d a velocidad y = 40 km/h. La velocidad promedio se calcula como la media armónica de x e y (48 km/h). El tiempo total es como si hubiera viajado la distancia completa a la velocidad promedio. 2. Un vehiculo viaja un cierto tiempo t a velocidad x = 60 km/h y luego el mismo tiempo t a velocidad y = 40 km/h. La velocidad promedio se calcula como la media aritmética de x e y (50 km/ h). Propiedades: 24 Medición del rendimiento Media cuadrática (RMS) O valor cuadrático medio o RMS (del inglés root mean square): raíz cuadrada de la media aritmética de los cuadrados de los valores. Útil cuando la variable toma valores positivos y negativos, como ocurre, por ejemplo, en los errores de medida. En tal caso se puede estar interesado en obtener un promedio que no recoja los efectos del signo. 25