1 / 42

Evaluando el rendimiento de la CPU

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

fiona-rios
Download Presentation

Evaluando el rendimiento de la CPU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Evaluando el rendimiento de la CPU

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. ¿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

  17. 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

  18. 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

  19. 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

  20. 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

  21. SPEC CPU 2000 Arquitectura de Computadoras

  22. 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

  23. Ejemplo de descripción de sistema Arquitectura de Computadoras

  24. 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

  25. Ejemplo • ¿Cómo resumir este comportamiento? Arquitectura de Computadoras

  26. 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

  27. 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

  28. 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

  29. 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

  30. Ejemplo Arquitectura de Computadoras

  31. 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

  32. 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

  33. 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

  34. Reporte de SPECfp 2000 Arquitectura de Computadoras

  35. 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

  36. Media geométrica • Usando logaritmos la raíz enésima no es necesaria. Arquitectura de Computadoras

  37. 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

  38. Desviación standard geométrica • Se usa en conjunto con la media geométrica. • Se calcula como: Arquitectura de Computadoras

  39. 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

  40. 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

  41. 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

  42. 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

More Related