Evaluando el rendimiento de la CPU

Transcripción

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
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.
Universidad de Sonora
Arquitectura de Computadoras
2
Evaluación del rendimiento
Para comparar dos sistemas computacionales:
1. Correr la carga de trabajo (workload) del usuario en
los dos sistemas.
2. Correr un benchmark. Un programa o conjunto de
programas usados específicamente para medir el
rendimiento de una computadora.
Universidad de Sonora
Arquitectura de Computadoras
3
Tipos de benchmarks
Programas de juguete tipo quicksort.
2. Benchmarks sintéticos. No hacen nada aparte de
evaluar el rendimiento de la CPU como Whetstone y
Dhrystone.
3. Aplicaciones reales como los benchmarks de SPEC
(Standard Performance Evaluation Corporation) y
de TPC (Transaction Processing Council).
1.
La tercera es la opción con mejor reputación.
Universidad de Sonora
Arquitectura de Computadoras
4
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:
Universidad de Sonora
Arquitectura de Computadoras
5
Benchmarks clásicos
1.
Benchmarks sintéticos: No realizan ninguna
computación util.
Whetstone.
Dhrystone.
2. Benchmarks de kernel. Obtenidos de un programa
(o librería) real.
Linpack.
Livermore loops.
Universidad de Sonora
Arquitectura de Computadoras
6
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.
Universidad de Sonora
Arquitectura de Computadoras
7
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.)
Universidad de Sonora
Arquitectura de Computadoras
8
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.
Universidad de Sonora
Arquitectura de Computadoras
9
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.
Universidad de Sonora
Arquitectura de Computadoras
10
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.
Universidad de Sonora
Arquitectura de Computadoras
11
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.
Universidad de Sonora
Arquitectura de Computadoras
12
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.
Universidad de Sonora
Arquitectura de Computadoras
13
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.
Universidad de Sonora
Arquitectura de Computadoras
14
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.
Universidad de Sonora
Arquitectura de Computadoras
15
¿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.
Universidad de Sonora
Arquitectura de Computadoras
16
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.
Universidad de Sonora
Arquitectura de Computadoras
17
Benchmarks de SPEC
1.
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.
Universidad de Sonora
Arquitectura de Computadoras
18
Benchmarks de SPEC
2. 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.
Universidad de Sonora
Arquitectura de Computadoras
19
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.
Universidad de Sonora
Arquitectura de Computadoras
20
SPEC CPU 2006
http://www.spec.org/cpu2006/publications/CPU2006benchmarks.pdf
Universidad de Sonora
Arquitectura de Computadoras
21
Reportando resultados
Seleccionar los benchmarks.
2. Obtener resultados de rendimiento.
3. Escribir un reporte.
1.
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.
Universidad de Sonora
Arquitectura de Computadoras
22
Ejemplo de descripción de sistema
Universidad de Sonora
Arquitectura de Computadoras
23
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.
Universidad de Sonora
Arquitectura de Computadoras
24
Ejemplo
Computadora A
Computadora B
Programa 1 (segundos)
1
10
Programa 2 (segundos)
1000
100
Tiempo total (segundos)
1001
110
¿Cómo resumir este comportamiento?
Universidad de Sonora
Arquitectura de Computadoras
25
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.
Universidad de Sonora
Arquitectura de Computadoras
26
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.
Universidad de Sonora
Arquitectura de Computadoras
27
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).
Universidad de Sonora
Arquitectura de Computadoras
28
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.
n
T = ∑i =i (ti × wi )
Donde
T = tiempo total de ejecución en cada computadora.
ti = tiempo de ejecución del programa i.
wi = peso asignado a ti.
Universidad de Sonora
Arquitectura de Computadoras
29
Ejemplo
Peso Computadora A Computadora B
Programa 1 (segundos)
0.9
1 x 0.9 = 0.9
10 x 0.9 = 9
Programa 2 (segundos)
0.1
1000 x 0.1 = 100
100 x 0.1 = 10
100.9
19
Tiempo total (segundos)
Universidad de Sonora
Arquitectura de Computadoras
30
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.
Universidad de Sonora
Arquitectura de Computadoras
31
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.
Universidad de Sonora
Arquitectura de Computadoras
32
Reportando resultados
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.
Universidad de Sonora
Arquitectura de Computadoras
33
Reporte de SPECfp 2000
Universidad de Sonora
Arquitectura de Computadoras
34
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.
Universidad de Sonora
Arquitectura de Computadoras
35
Media geométrica
Usando logaritmos la raíz enésima no es necesaria.
Universidad de Sonora
Arquitectura de Computadoras
36
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:
Universidad de Sonora
Arquitectura de Computadoras
37
Desviación standard geométrica
Se usa en conjunto con la media geométrica.
Se calcula como:
Universidad de Sonora
Arquitectura de Computadoras
38
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].
Universidad de Sonora
Arquitectura de Computadoras
39
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.
Universidad de Sonora
Arquitectura de Computadoras
40
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]
Universidad de Sonora
Arquitectura de Computadoras
41
Ejemplo
Porcentaje de benchmarks dentro de una desviación
standard de la media:
Itanium 2: 10 / 14 = 71%
Opteron: 11 / 14 = 78%
Universidad de Sonora
Arquitectura de Computadoras
42

Documentos relacionados