Clase 03 Rendimiento del ComputadorING. JOSE R. SANDOVAL JIMENEZ EPIS-FICSA-2012-II Rendimiento Avión Capacidad pasajeros Autonomía (Km) Velocidad crucero (Km/h) 980 Productividad (pasajeros*Km/h) 367500 Boeing 777 375 7450 Boeing 747 470 6675 980 460600 Concorde 132 6435 2175 287100 DC-8 146 14030 875 127750 Rendimiento de un sistema Sistema – Trabajo en un determinado tiempo 1 𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 = 𝑇 Rendimiento de una computadora ejecuta instrucciones Tiempo que tarda en ejecutar los programas Parámetros de rendimiento del procesador . El rendimiento de un procesador η 𝑝𝑟𝑜𝑔 = 1 𝑇𝑝𝑟𝑜𝑔 𝑇𝑝𝑟𝑜𝑔 = 𝑛° 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠 ∗ 𝑇𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛 𝑇𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖ó𝑛 = 𝐶𝑃𝐼 ∗ 𝑇𝑐𝑝𝑢 𝑇𝑝𝑟𝑜𝑔 = 𝑛° 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐 ∗ 𝐶𝑃𝐼 ∗ 𝑇𝑐𝑝𝑢 ηprog= 1 𝑇𝑝𝑟𝑜𝑔 = 1 𝑛°𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐 ∗𝐶𝑃𝐼∗𝑇𝑐𝑝𝑢 = 𝑓𝑐𝑝𝑢 𝑛°𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐 ∗𝐶𝑃𝐼 . Calcular el tiempo que demora en ejecutar el programa y su rendimiento. Tipo de instrucc A B C Instrucc/Prog 5 6 8 CPIi 2 3 1 .Ejercicio • Dada las características de un programa. B y C y cada tipo de instrucciones tiene un n° de microinstrucciones diferentes. La cpu trabaja a 1Ghz. El programa se compone de 19 instrucciones de 3 tipos: A. Se ejecuta un programa de 1000 instrucciones.Ejercicio • Se dispone de un computador basado en un PIV a 2 GHz. calcular el rendimiento Tipo de instrucc Lógico-aritmética Salto indondicional Salto condicional Carga (Reg-M) Almacenamiento (M-R) Instrucc/Prog 20% 10% 10%/10% 30% 20% CPIi 4 3 7/5 3 4 . Según la tabla. ACELERACION DEL RENDIMIENTO η𝐴 Aη = η𝐵 2. ACELERACION DEL TIEMPO AT= 𝑇𝐴 𝑇𝐵 .Hacer comparaciones Comparar dos máquinas – ACELERACION 1.Comparación del Rendimiento • El rendimiento .Medida cuantitativa . Para aumentar el rendimiento se añade posteriormente una caché que ahorra 1 ciclo en accesos si el dato está en la caché y si no está dura lo mismo.Ejercicio • Tenemos un PIV de 2GHz y ejecuta un programa de 1000 instrucciones según la siguiente tabla calcular el rendimiento. El porcentaje de aciertos es del 90%. . Calcular el rendimiento y la aceleración del rendimiento con respecto del anterior sin caché. Tipo de instrucción Lógica-aritmética Llamada a subrutina Salto incondicional Salto condicional Carga (R-M) Almacenamiento (M-R) Mov (R-R) Instrucc/Prog 300 100 100 50/50 100 100 200 CPIi 5 9 6 9/3 2 4 2 . UNIDADES DE MEDIDA DE RENDIMIENTO GLOBAL MIPS Millones de Instrucciones por segundo • 𝑀𝐼𝑃𝑆 = • 𝑛° 𝐼𝑛𝑠𝑡𝑟𝑢𝑐𝑐 𝑝𝑟𝑜𝑔 𝑇𝑝𝑟𝑜𝑔 ∗106 = = 𝑓𝑐𝑝𝑢 𝐶𝑃𝐼 ∗106 𝑛° 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐 𝑝𝑟𝑜𝑔 𝑛° 𝑑𝑒 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐 𝑝𝑟𝑜𝑔 ∗𝐶𝑃𝐼∗𝑇𝑐𝑝𝑢∗106 MIPS VAX • Se escoge una máquina representativa VAX 11/780 equivalente (80286) • 𝑀𝐼𝑃𝑆 𝑉𝐴𝑋 = 𝑇𝑝𝑟𝑜𝑔 𝑉𝐴𝑋 11/780 𝑇𝑝𝑟𝑜𝑔 𝑐𝑝𝑢 ∗106 . MEGAFLOPS NATIVOS Y RELATIVOS • 𝑀𝑖𝑙𝑙𝑜𝑛𝑒𝑠 𝑑𝑒 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝑇𝑝𝑟𝑜𝑔 ∗106 MFLOPSNATIVOS MFLOPSRELATIVOS • 𝑛 𝑖=1 𝑀𝑖𝑙𝑙𝑜𝑛𝑒𝑠 𝑑𝑒 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖 ∗𝑃𝑒𝑠𝑜𝑖 𝑇𝑝𝑟𝑜𝑔 ∗106 . SUB.MUL 1 operación de punto flotante 4 operación de punto flotante DIV.Instrucciones Peso ADD.SQRT EXP.SIN 8 operación de punto flotante . Ejercicio • Hallar MFLOPS nativos y relativos que se obtiene al utilizar un computador que ejecuta un programa en 66 segundos y consta de las siguientes instrucciones OPERACION MILLONES DE INSTRUCCIONES PESO ADD SUB MUL DIV EXP SIN SQRT 20 10 10 12 2 99 1 1 1 1 4 8 8 4 . Benchmark Sintético 2.Benchmark • Simular el comportamiento de aplicaciones del mundo real • Rutinas repetitivas de los programas más usados • DHRYSTONE BENCHMARK (MIPS) • Miden eficiencia del procesador y compilador en un entorno de desarrollo LAN • Dhrystone MIPS • WHESTONE BENCHMARK • Ejecución de programas científicos y de ingeniería • FORTRAN – enteros y punto flotante • KWIPS (Miles de instrucciones Whestone * seg) 1. Benchmark Reducido o de juguete • 10 y 100 líneas de código • Towers • Perm • Criba de Eratostenes • Puzzle • Quicksort . Programas Reales • Programas hechos con partes de programas reales (procesadores de texto. CAD. Kernel Benchmark • Pequeñas piezas claves de programas reales • No evalúan prestaciones gráficas • “Livermore Loops” – 21 fragmentos de bucles pequeños • “Linpack” – subrutinas de álgebra lineal 4. compiladores.3. etc • Complejos de usar • S.O incompatibles • No son estándar ni de libre distribución . iCOMP • iCOMP es un benchmark desarrollado por Intel para poder medir el rendimiento de sus procesadores. este benchmark no ha tenido la repercusión que Intel esperaba. . Sin embargo. – La versión 1. • Hubo tres revisiones del índice iCOMP.0 indicaba el rendimiento con respecto al Pentium II 350Mhz. cuando cambios arquitectónicos impedían una comparación únicamente por la frecuencia de reloj.0 indicaba el rendimiento con respecto al 486SX 25 – La versión 2. • El tipo de computadoras que intenta medir son las computadoras personales y servidores de red basados en microprocesadores Intel. y – La versión 3. iCOMP es un acrónimo de Intel COmparative Microprocessor Performance.0 indicaba el rendimiento con respecto al Pentium 120. . 68% 16-bit Whetstone . . Estos son: – – – – CPUmark32 Norton Utilities SI32 CINT95 y CFP95 de SPEC Intel Media Benchmark. Entre las razones esgrimidas para su elección tenemos que cada uno mide una característica especial de la arquitectura Intel. particularmente se nota que la relación entre puntajes del iCOMP siempre supera al del reloj.2% SPECint92 .Resultados • • • Su resultado expresa el rendimiento relativo de los procesadores Intel respecto a algún procesador Intel que se considera base. • • • Estas medidas fueron escogidas entre una serie de benchmarks públicamente disponibles. Posteriormente salió al público la versión 3. Para esto calcula la media geométrica ponderada de los distintos benchmarks que lo componen.25% SPECfp92 . y los benchmarks que lo componen están preparados para medir la performance de procesadores de 32 bits.0 el procesador de referencia pasó a ser el Pentium de 120 MHz. al ser un benchmark definido por el mismo Intel responde a sus propios intereses. En la versión 1.0. y los benchmaks que lo componen son: – – – – ZD(Ziff-Davis) Bench . a medida que fue cambiando su arquitectura fue cambiando este benchmark para que dé mejores resultados según las nuevas características que iba incorporando.0 el procesador Intel 486SX 25MHz tenía el puntaje de 100. además utilizan una mezcla de aplicaciones que se encuentran hoy en día en la mayoría de los sistemas.5% • En la versión 2. Al otorgarle distintos pesos a cada uno Intel también establece cuáles son de esas características las más importantes para las aplicaciones del momento. Obviamente. Además. que tomó como base al Pentium II de 350 MHz y nuevamente cambió la mezcla que conforma el benchmark general. SPEC • Standard Performance Evaluation Corporation (SPEC). publicadores y consultores de todo el mundo. • Tiene dos objetivos: – crear un benchmark estándar para medir el rendimiento de computadoras y – controlar y publicar los resultados de estos tests. es un consorcio sin fines de lucro que incluye a – – – – vendedores de computadoras. integradores de sistemas Universidades grupos de investigación. . El nicho que intenta cubrir este benchmark incluye sistemas con multiprocesadores simétricos. caracterización del rendimiento de gráficos: benchmarks para subsistemas gráficos. tiene una serie de benchmarks más actualmente en desarrollo. clusters de estaciones de trabajo. de servidores web (SPECweb99_SSL. Por otra parte. • • High Performance Group(HPG). SPECjAppServer2001. un benchmark para servidor de correos (el SPEC MAIL2001) y uno de sistemas de red (el SPEC SFS97_R1). . entre ellos podemos contar un nuevo benchmark de servidor de correos que incluye el protocolo iMAP. el grupo ha desarrollado benchmarks para Java (SPECjAppServer2002 -en el cual experimentan con una nueva métrica de costo/rendimiento-. OpenGL y Xwindows. con énfasis en computación numérica de alto rendimiento. grupo de sistemas abiertos: realizan benchmarks de nivel de componentes y sistemas en ambientes Unix/NT/VMS. sistemas paralelos con memoria distribuida y las tradicionales supercomputadoras vectoriales y vectoriales paralelas. grupo de alto rendimiento: benchmarking en un ambiente de computación numérico. SPEC JBB2000 y SPEC JVM98).• • Open Systems Group (OSG). SPECweb99 y SPECweb96). Graphics Performance Characterization (GPC). Además del conocido – – – – – SPEC CPU2000 suite. • Contiene dos benchmark suites: – CINT2000 para medir y comparar el rendimiento de computación intensiva de enteros. y – CFP2000 para medir y compara el rendimiento de computación intensiva en flotantes. • Fue creado con el fin de proveer una medida de rendimiento que pueda ser usado para comparar cargas de trabajo intensivas en cómputo en distintos sistemas de computadora. . trabajo en red o gráficos. • El CINT2000 y el CFP2000 no fuerzan la entrada/salida (unidades de disco).SPEC CPU 2000 • SPEC CPU2000 es un Benchmark producido por la SPEC. crafty Programa de ajedrez. 256. 255.twolf Simulador de ubicación y ruteo.parser Procesamiento de lenguaje natural.eon Efectos producidos por distintas fuentes de luz.• CINT2000 contiene 11 aplicaciones escritas en C y una en C++ (252. 175.gcc Compilador C. 176. 181.eon) que son usadas como benchmarks. 197. 253.mcf Resolutor de costo mínimo de flujo de red.vpr Direccionamiento y ubicación de circuitos FPGA. .gzip Utilidad de compresión de datos.perl bmk Perl. 254.bzip2 Utilidad de compresión de datos. 186.gap Teoría de grupo computational.vortex Base de datos orientada a objetos. 252. 300. Nombre Breve descripción 164. applu 177.fma3d 200. Modelado de aguas poco profundas. viento y distribución de contaminantes.swim 172.mgrid 173. Teoría de los números: prueba de primalidad.mesa 178.wupwise 171. .facerec 188. cuatro en FORTRAN90 y cuatro en C) que son usadas como benchmarks: • Nombre Breve 168.• CFP2000 contiene 14 aplicaciones (seis en Fortran77. Resolutor de problemas de temperatura. Simulación de elementos finitos: modelado de terremotos. Química computacional.ammp 189.apsi Descripción Cromodinámica de cuantos. Modelo de acelerador de partículas. Biblioteca de gráficos 3D. Dinámica de fluidos: análisis de inestabilidad oscilatoria. Simulación de red neuronal: teoría de la resonancia adaptativa. Simulación de elementos finitos en choque.equake 187.art 183.sixtrack 301.galgel 179.lucas 191. Resolutor de multi-grilla en campos potenciales 3D. Reconocimientos de imágenes: reconocimiento de rostros. Ecuaciones diferenciales parciales parabólicas/elípticas. construir y ejecutar SPEC CPU2000. una cuestión importante es que se asume que el equipo tiene al menos 256 MB de memoria principal. que los fallos de página no tengan efecto en las mediciones. . de tal manera de asegurarse que el benchmark sea intensivo en cómputos (SPEC requiere un gran tamaño de memoria para medir el rendimiento de aplicaciones grandes). y dependiendo del sistema bajo prueba. C++ y Fortran90 (Fortran77 puede ser usado para algunos benchmarks). • Además. – una unidad de CD-ROM. o sea.Requerimientos • El usuario debe tener corriendo – un sistema Unix o Windows NT con compiladores C. – aproximadamente 1 GB de disco para instalar. • El criterio – lo que hay que mejorar o modificar siempre es lo que más se usa frecuentemente 𝑛𝑠𝑖𝑠𝑡 𝑛𝑢𝑒𝑣𝑜 𝐴𝑐𝑒𝑙𝑒𝑟𝑎𝑐𝑖ó𝑛𝑛 = 𝑛𝑠𝑖𝑠𝑡 𝑎𝑛𝑡𝑖𝑔𝑢𝑜 𝑇𝑠𝑖𝑠𝑡 𝑛𝑢𝑒𝑣𝑜 𝐺𝑎𝑛𝑎𝑛𝑐𝑖𝑎 𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 = 𝑇𝑠𝑖𝑠𝑡 𝑎𝑛𝑡𝑖𝑔𝑢𝑜 .LEYES DE AMDAHL • Evalúan las modificaciones en el rendimiento de un computador cuando se introducen mejoras o más recursos. 𝑇𝑛𝑢𝑒𝑣𝑜 𝐹𝑟𝑎𝑐𝑐𝑖ó𝑛 𝑇𝑚𝑒𝑗𝑜𝑟𝑎𝑑𝑜 = 𝑇𝑎𝑛𝑡𝑖𝑔𝑢𝑜 ∗ + 𝐹𝑟𝑎𝑐𝑐𝑖𝑜𝑛 𝑇sin 𝑚𝑒𝑗𝑜𝑟𝑎 𝐺𝑎𝑛𝑎𝑛𝑐𝑖𝑎 𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 .Primera Ley de Amdahl • El aumento del rendimiento debido a la inclusión de una mejora con un nuevo recurso en el sistema está limitado por el tiempo que se utiliza dicha mejora en la ejecución de la tarea. . el incremento del rendimiento es menor que si se introduce la mejora sobre el sistema sin mejorar.Segunda Ley de Amdahl • Cuando se introduce una mejora a un computador previamente mejorado. La nueva ALU es dos veces más rápido que la anterior.• Se cambia la ALU de un procesador dedicado a una tarea la cual el 50% del tiempo lo hace la ALU. Calcular el tiempo de mejora. . Si inicialmente una computador tardaba 2seg.• Sustituimos la ALU por una nueva un 30% mayor. En hacer un programa ¿cuánto tarda ahora sabiendo que la ALU para este programa está funcionando el 50% del tiempo? . . sabiendo que la ALU participa durante el 40% del tiempo que dura la tarea.• Evaluar la aceleración del rendimiento del sistema computador cuando se cambio la ALU del procesador por otro 10 veces más rápida. Se sabe que un aumento de la frecuencia del reloj aumenta el CPI en 1.• Un programa se ejecuta en 10seg trabajando la cpu a 400 MHz.2 veces el que tenía ¿cuál debe ser la nueva frecuencia de funcionamiento? . Se desea diseñar una implementación para que dicho código se ejecute en 6seg. • Ignorando las prestaciones del sistema y suprimiendo una duración de ciclo de 2ns (f de reloj=500MHz) • ¿Cuál es la frecuencia en MIPS para el código optimizado frente al código sin optimizar? • ¿Están los resultados en MIPS de acuerdo con los del tiempo de ejecución? . un compilador generó la siguiente distribución de instrucciones Tipo de instrucc Operaciones ALU Cargas Almacenamiento Saltos Frec de una Instrucc 43% 21% 12% 24% CPI 1 2 2 2 • El compilador se optimiza de manera que para el mismo programa descarta el 50% de las instrucciones de la ALU aunque no pueda reducir cargas. almacenamientos. saltos.• Para un programa X.