420 likes | 570 Views
Evaluando el rendimiento de la CPU. Evaluación del rendimiento. El rendimiento de la CPU es el tiempo de ejecución. Ecuación del rendimiento de la CPU Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj Alternativamente
E N D
Evaluación del rendimiento • El rendimiento de la CPU es el tiempo de ejecución. • Ecuación del rendimiento de la CPU Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj • Alternativamente Tiempo CPU = Número de instrucciones x CPI x Periodo del reloj Donde CPI es el número de ciclos en promedio por instrucción. Arquitectura de Computadoras
Evaluación del rendimiento • Para comparar dos sistemas computacionales: • Correr la carga de trabajo (workload) del usuario en los dos sistemas. • Correr un benchmark. Un programa o conjunto de programas usados específicamente para medir el rendimiento de una computadora. Arquitectura de Computadoras
Tipos de benchmarks • Programas de juguete tipo quicksort. • Benchmarks sintéticos. No hacen nada aparte de evaluar el rendimiento de la CPU como Whetstone y Dhrystone. • Aplicaciones reales como los benchmarks de SPEC (Standard Performance Evaluation Corporation) y de TPC (Transaction Processing Council). • La tercera es la opción con mejor reputación. Arquitectura de Computadoras
Benchmarks clásicos • Utilizados hasta principios de los 1990s. • Todavía son populares porque son gratis y fáciles de usar y entender. • Dos clases de benchmarks clásicos: Arquitectura de Computadoras
Benchmarks clásicos • Benchmarks sintéticos: No realizan ninguna computación util. • Whetstone. • Dhrystone. • Benchmarks de kernel. Obtenidos de un programa (o librería) real. • Linpack. • Livermore loops. Arquitectura de Computadoras
Benchmarks clásicos • Cada benchmark viene en dos versiones. • Versión optimizada. El benchmark fue compilado con las opciones de optimización del compilador. • Versión no optimizada. El benchmark fue compilado sin las opciones de optimización del compilador. • La versión optimizada debe correr mas rápido que la versión no optimizada. Arquitectura de Computadoras
Whetstone • Publicado en 1976 originalmente en Algol 60. • Intenta replicar el comportamiento de un típico programa científico en la computadora KDF9. • Contiene varios módulos, cada uno contiene instrucciones de un tipo en particular: • Aritmética entera. • Aritmética de punto flotante. • ifs. • Llamadas a funciones (coseno, seno, etc.) Arquitectura de Computadoras
Whetstone • Un buen número de las instrucciones son de punto flotante. • Se usa para medir el rendimiento de instrucciones de punto flotante. • Reporta resultados: • KWIPS o MWIPS (kilo/mega instrucciones Whetstone por segundo) • Comparación con una VAX 11/780 de 1977. • MFLOPS (millones de operaciones de punto flotante por segundo) o MOPS (millones de operaciones por segundo) para cada módulo. Arquitectura de Computadoras
Dhrystone • Publicado en 1984 originalmente en Ada. • Intenta replicar el comportamiento de un programa no científico. • No tiene instrucciones de punto flotante. • Menos ciclos y mas ifs y llamadas a procedimiento. • Mide el rendimiento de instrucciones enteras. Arquitectura de Computadoras
Dhrystone • Reporta resultados en DPS (Dhrystone por segundo) o en DMIPS (Dhrystone MIPS). • DMIPS = DPS / 1757. • 1757 es el número de DPS obtenido en una VAX 11/780 que supuestamente era una máquina de 1 MIPS. Arquitectura de Computadoras
Linpack • Publicado en 1976, Linpack es un conjunto (paquete) de subrutinas de algebra lineal en Fortran. • El benchmark basado en Linpack mide cuánto tarda una computadora en resolver un sistema denso de N x N ecuaciones lineales. • Típicamente N = 100, pero puede ser mayor. • Hay versiones de precisión sencilla y doble. • Los resultados se reportan en MFLOPS. Arquitectura de Computadoras
Livermore loops • Publicado en 1986 originalmente en Fortran. • Mide el rendimiento de computadoras paralelas. • Consiste en 24 ciclos (kernels). • Cada ciclo hace una función matemática distinta: • Fragmento de hidrodinámica. • Gradiente conjugado de Cholesky incompleto. • Búsqueda de Montecarlo. • Reporta MFLOPS para cada uno de los ciclos. Arquitectura de Computadoras
Desventajas • De los benchmarks clásicos: • Es fácil hacer trampa, un compilador puede reconocer el benchmark y generar código especial. • Reflejan el estilo de programación de 1970 y 1980. • No miden las capacidades de las CPUs actuales. • No hay control del código fuente. • Nadie certifica los resultados. • No hay reglas standard. Arquitectura de Computadoras
Desventajas • MIPS y MFLOPS ya no son relevantes. Ejemplo: a = b + c CISC add (a), (b), (c) RISC load $t1, (b) load $t2, (c) add $t3, $t1, $t2 store $t3, (a) Si se tardan el mismo tiempo, la RISC hace 4 MIPS y la CISC hace 1 MIPS. Arquitectura de Computadoras
¿Por qué se estudian? • Todavía se mencionan. • Son gratis y fáciles de usar. • Son útiles como una primera aproximación. • En algunos sistemas (por ejemplo controladores) no hay otra cosa. Arquitectura de Computadoras
SPEC • Standard Performance Evaluation Corporation • Organización sin fines de lucro fundada en 1988. • Miembros originales: Apollo, HP, MIPS y Sun. • Objetivo: producir benchmarks justos e imparciales. • Los resultados se conocen como SPECmarks. Arquitectura de Computadoras
Benchmarks de SPEC • Desktop (computadoras de escritorio) Mide el rendimiento de: • CPU. SPEC CPU 2006. • La máquina virtual de Java. SPECjvm2008. • Sistemas de gráficas: • SPECviewperf para OpenGL 3D. • SPECapc para aplicaciones en 3D como Maya, 3ds Max, SolidWorks, etc. Arquitectura de Computadoras
Benchmarks de SPEC • Server (servidores) Mide el rendimiento en: • Servidores de correo. SPECmail2008. • Servidores de archivos. SPECsfs2008. • Servidores de Web. SPECweb2005. • Servidores basados en JMS (Java Message Service). SPECjms2007. • Servidores de aplicaciones en Java. SPECjAppServer2004. Arquitectura de Computadoras
SPEC CPU 2006 • 12 programas para evaluar instrucciones enteras. • 9 escritos en C. • 3 escritos en C++. • 17 programas para evaluar instrucciones de punto flotante. • 6 escritos en FORTRAN. • 4 en C y FORTRAN. • 4 en C++. • 3 en C. Arquitectura de Computadoras
SPEC CPU 2000 Arquitectura de Computadoras
Reportando resultados • Seleccionar los benchmarks. • Obtener resultados de rendimiento. • Escribir un reporte. • Los resultados deben ser reproducibles. • El reporte debe decir todo lo necesario para que otra persona obtenga los mismos resultados. • Incluyendo sistema operativo y compiladores usados, datos de entrada, etc. Arquitectura de Computadoras
Ejemplo de descripción de sistema Arquitectura de Computadoras
Reportando resultados • Una vez que se tienen los resultados de los benchmarks hay que resumirlos en un número. • Medida sumaria. Es un número que resume alguna característica de una secuencia de números. Por ejemplo, el promedio, la desviación standard, etc. • El problema es decidir que medida sumaria es representativa de los datos. Arquitectura de Computadoras
Ejemplo • ¿Cómo resumir este comportamiento? Arquitectura de Computadoras
Ejemplo • Una opción es: • A es 10 veces más rápida que B en el programa 1. • B es 10 veces más rápida que A en el programa 2. • Problema: no está claro el rendimiento relativo. Arquitectura de Computadoras
Ejemplo • Otra opción mejor es reportar el tiempo total de ejecución. RendimientoB / RendimientoA = Tiempo de ejecuciónA / Tiempo de ejecuciónB = 1001 / 110 = 9.1 • B es 9.1 veces más rápida que A tomando los programas 1 y 2 juntos. Arquitectura de Computadoras
Ejemplo • El resultado anterior está usando la media aritmética (AM) de los tiempos de ejecución: • La media aritmética es válida solo si los programas 1 y 2 se corren el mismo número de veces (50% y 50% del tiempo total). Arquitectura de Computadoras
Ejemplo • Supongamos que el programa 1 se corre el 90% de las veces y el programa 2 se corre solo el 10%. • Se asignan pesos a cada tiempo de ejecución. • Se calcula la media ponderada. • Donde • T = tiempo total de ejecución en cada computadora. • ti = tiempo de ejecución del programa i. • wi = peso asignado a ti. Arquitectura de Computadoras
Ejemplo Arquitectura de Computadoras
Ejemplo • Usando la media ponderada Tiempo de ejecuciónA / Tiempo de ejecuciónB = 100.9 / 19 = 5.311 • Ahora B solo es 5.3 veces más rápida que A. Arquitectura de Computadoras
Reportando resultados • Una tercera medida sumaria es la media geométrica. • Es apropiada para comparar ratios como el SPECRatio usado por SPEC. • El SPECRatio de una computadora A para un benchmark i es: Tiempo de ejecución de i en A / Tiempo de ejecución de i en R • Donde R es una computadora de referencia. Arquitectura de Computadoras
Reportando resultados • En SPEC CPU 2000 la referencia fue una estación de trabajo Sun Ultra 5/10 con un procesador SPARC de 300-MHz y 256MB de memoria. • A esa máquina le fue dado un score de 100 para SPECint2000 y SPECfp2000. • En SPEC CPU 2006 la referencia es una estación de trabajo Sun Ultra Enterprise 2 con un procesador UltraSPARC II de 296-MHz. • A esa máquina le fue dado un score de 1.0 para SPECint2006 y SPECfp2006. Arquitectura de Computadoras
Reporte de SPECfp 2000 Arquitectura de Computadoras
Media geométrica • La media geométrica es: • En el reporte de SPEC, samplei es el SPECRatio de la computadora A para el benchmark i. Arquitectura de Computadoras
Media geométrica • Usando logaritmos la raíz enésima no es necesaria. Arquitectura de Computadoras
Desviación standard • Da una medida de la variabilidad de los datos. • Sirve para decidir si la media es un buen predictor. • La desviación standard aritmética se calcula: Arquitectura de Computadoras
Desviación standard geométrica • Se usa en conjunto con la media geométrica. • Se calcula como: Arquitectura de Computadoras
Desviación standard • Para una distribución lognormal: • 68% de las muestras caen en el rango [gmean/gstdev, gmean x gstdev]. • 95% de las muestras caen en el rango [gmean/gstdev2, gmean x gstdev2]. Arquitectura de Computadoras
Ejemplo • Usando los datos del SPECfp 2000 • Calcular la desviación standard geométrica de los SPECRatio del Itanium 2 y el Opteron. • Calcular el porcentaje de benchmarks que caen dentro de una desviación standard de la media geométrica. Arquitectura de Computadoras
Ejemplo • Media geométrica: • Itanium 2: 27.12 • Opteron: 20.86 • Desviación standard geométrica: • Itanium 2: 1.93 • Opteron: 1.38 • Rango de una desviación standard: • Itanium 2: [27.12 / 1.93, 27.12 x 1.93] = [14.06, 52.30] • Opteron: [20.86 / 1.38, 20.86 x 1.38] = [15.12, 28.76] Arquitectura de Computadoras
Ejemplo • Porcentaje de benchmarks dentro de una desviación standard de la media: • Itanium 2: 10 / 14 = 71% • Opteron: 11 / 14 = 78% Arquitectura de Computadoras