AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Rendimientos y costes Curso 2011-2012 AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro ¿Qué es el Rendimiento? • El Rendimiento es un parámetro que indica el nivel de computación de la máquina y la velocidad a la que produce los resultados. • El Rendimiento es directamente proporcional al Coste. AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro ¿Por qué medir el Rendimiento? • La medida del Rendimiento da una idea del comportamiento de la Arquitectura. • Identifica las posibilidades existentes de mejora. AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Factores que afectan al Rendimiento • Capacidad de la máquina: Fácil de predecir. • Comportamiento de los programas: Difícil de predecir: – – – – Diseño de los algoritmos Estructuras de datos Compilador Habilidad del programador AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Factores de Rendimiento (I) • Frecuencia: Número de ciclos por segundo del reloj. # ciclos f = s • Tiempo de ciclo: 1 τ= f AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Factores de Rendimiento (II) • CPI: Número de ciclos por instrucción. – Es una media: Las instrucciones más complicadas necesitan más ciclos que las sencillas. – Se mide respecto a un conjunto de instrucciones dado y sobre una carga de trabajo estándar. • Ic: Número de instrucciones de un programa. AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Factores de Rendimiento (III) • T: Tiempo de ejecución de un programa (sólo tiempo de CPU). Ic ⋅ CPI T = Ic ⋅ CPI ⋅τ = f • T: Tiempo de ejecución de un programa (completo) T = Ic ⋅ ( p + m ⋅ k ) ⋅τ – p: ciclos CPU – m: # de accesos a memoria – k: ciclos de CPU / acceso a memoria AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Rendimiento vs. Atributos del Sistema AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Factores de Rendimiento (IV) • MIPS: Millones de instrucciones / segundo. Ic Ic f MIPS = = = 6 6 T ⋅10 Ic ⋅ CPI ⋅τ ⋅10 CPI ⋅10 6 • Throughput: Número de programas / segundo. 1 1 Wp = = T Ic ⋅ CPI ⋅τ Ws < Wp, debido a las operaciones de E/S AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Factores de Rendimiento (V) • Speed-up: % de incremento en el rendimiento tras aplicar una serie de mejoras. tinicial SU = t final • Ej: 100 ns SU = = 1.25 80 ns 25% más rápido AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Ley de Amdahl • La ganancia en el rendimiento obtenida en un sistema está limitada por la fracción del sistema que se beneficia de la mejora. • Sea f la fracción del sistema sobre la que se aplica la mejora: t final = (1 − f ) ⋅ tinicial SU sistema f ⋅ tinicial f = tinicial ⋅ ((1 − f ) + + ) SU mejora SU mejora tinicial tinicial = = t final t inicial ⋅ ((1 − f ) + f SU mejora = ) 1 (1 − f ) + f SU mejora AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Ley de Amdahl: Ejemplo • El rendimiento del motor representa el 25% en el rendimiento total del vehículo. El resto depende de otros factores, como el índice aerodinámico o los neumáticos. Calcular el Speed-up de un coche al cual se le ha cambiado el motor por otro con un 40% más de rendimiento. SU mejora = 1.4 f = 0.25 SU sistema 1 1 = = = 1.075 0.25 0.75 + 0.18 (1 − 0.25) + 1.4 7.5% más rendimiento AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Benchmarks • Conjunto estándar de programas para comparar el rendimiento de distintos sistemas. • Tipos: – Programas reales. – Núcleos de programas. – Programas de juguete: Unas 10-100 líneas de código. Ej.: Criba de Eratóstenes, Puzzle, Quicksort. – Programas de prueba (Benchmarks): Programas sintéticos que simulan la frecuencia de operaciones en programas reales. Ej.: Whetstone, Dhrystone. AT5118 – Arquitectura e Ingeniería de Computadores I Juan Antonio Maestro Benchmarks Suites • Conjunto de programas para medir el rendimiento en un amplio abanico de aplicaciones: – SPEC89: 10 programas – SPEC92: 6 programas enteros y 14 en punto flotante – SPEC95: 10 programas enteros y 10 en punto flotante – SPEC2000.