E N D
1. Análisis comparativo de rendimiento Usuarios, administradores y diseñadores
3. 1. Introducción ¿Qué es la referenciación? Factores influyentes
Las cargas de prueba
Comparación del rendimiento de dos sistemas
4. ¿Qué es la referenciación? Referenciación (benchmarking)
Técnicas usadas en la comparación del rendimiento de diferentes sistemas informáticos
Todos los sistemas se han de someter a la misma carga
7. Medidas del rendimiento Tiempo: el computador que hace la misma cantidad de trabajo en el mínimo tiempo es el más rápido
Las medidas de rendimiento han de ser reproducibles, indicando las condiciones en que se han obtenido
Procesador, frecuencia de funcionamiento, memoria, cache, ...
No hay que confundir el rendimiento del sistema con el rendimiento del procesador
8. Factores influyentes en la referenciación Elementos hardware de cada equipo
Procesador, placa base y chipset, memoria principal, discos, ...
Sistema operativo
Sistema de memoria
Configuraciones de las memorias cache y virtual
Efecto del compilador sobre el código ejecutable
Cuidado con las posibles optimizaciones
j=log(5.0); por for(i=1;i<=5000;i++) j=log(5.0);
x=exp(log(x)/2*T1) por la expresión x=sqrt(exp(log(x)/T1)), ya que sqrt(exp(x))=exp(x/2)
Hay compiladores “listos” que detectan los benchmarks clásicos
9. Carga de trabajo (workload)
Conjunto de todas las demandas a que está sometido un sistema informático durante un periodo de tiempo
Programas, datos, órdenes, usuarios, ...
Carga de prueba (test workload)
Carga a que se somete un sistema informático durante una sesión de medida de rendimiento Carga de trabajo y carga de prueba
10. La carga real Difícil de utilizar en la evaluación de sistemas
Resulta complicado reproducirla
Varía a lo largo del tiempo
Interacciona con el sistema informático
11. Caracterización o modelado de la carga
Descripción cuantitativa
Toma de medidas de rendimiento
A partir del sistema y carga reales, o bien a partir de modelos El modelado de la carga
12. Obtención de los índice de prestaciones
13. Ejemplo de medida de rendimiento
14. Terminología Perspectivas de rendimiento
Usuario: tiempo de respuesta o tiempo de ejecución
Administrador: cantidad de trabajo hecha por unidad de tiempo o productividad
Hay que evitar terminología ambigua
“Este sistema es tantas veces más lento que aquel”
“Este sistema es tantas veces mejor que aquel”
Hablaremos de
Mejora del rendimiento
Mejora del tiempo de respuesta o de ejecución
15. ¿Qué sistema es más rápido? El rendimiento del computador A es n veces mejor que el rendimiento del computador B si
Ejemplo: TA=10 s y TB=15 s
El computador A es 1.5 veces más rápido que el B
16. ¿Qué sistema es más rápido? El rendimiento del computador A es un n% superior al rendimiento del computador B si
Ejemplo: TA=10 s y TB=15 s
El computador A es un 50% más rápido que el B
17. ¿Rendimientos diferentes? Ejecución de n programas en dos máquinas A y B
¿Son significativas las diferencias obtenidas?
Hay que usar mecanismos estadísticos
Intervalo de confianza para las diferencias
Nivel de confianza, por ejemplo, del 95% (?=0.05)
Si incluye el cero, entonces no hay diferencias significativas
Si no incluye el cero, entonces las máquinas tienen rendimientos significativamente diferentes
18. Ejemplo de rendimientos similares Tiempos de ejecución en dos sistemas A y B
19. Cálculo del intervalo de confianza
Como el intervalo calculado es (-9.80, 9.17) e incluye el cero podemos afirmar, con un nivel de confianza del 95%, que las diferencias NO SON SIGNIFICATIVAS
20. 2. Índices clásicos de rendimiento CPI, MIPS, MFLOPS
21. CPI (cycles per instruction)
Es un valor medio que interesa minimizar
Depende de la organización y arquitectura (lenguaje máquina)
Inconveniente: ignora el tiempo imprevisible que hace falta para sincronizar procesador y memoria cache (ciclos de espera, fallos en cache, ...)
El valor mínimo es 1
Ciclos por intrucción de un programa
22. Ejemplo de cómputo
Procesador con un reloj a 500 MHz o 0,5 GHz
¿Cuál es la duración del tiempo de ciclo del reloj? Relación entre tiempo y frecuencia
23. Cada instrucción necesita un determinado número de ciclos, y por tanto, el valor de CPI depende de las instrucciones ejecutadas por cada programa
Instrucciones de escritura (store): 12% 2 ciclos
Instrucciones de lectura (load): 21% 2 ciclos
Instrucciones de la ALU: 43% 1 ciclo
Instrucciones de salto: 24% 2 ciclos Cálculo del CPI de un programa
24. MIPS (million of instructions per second)
Se denominan MIPS nativos
Depende del juego de instrucciones y los MIPS medidos varían entre programas en el mismo computador
Meaningless indicator of processor speed
MIPS relativos: referidos a una máquina de referencia (proceso de normalización) MIPS
25. Ejemplo con MIPS El programa P contiene 200?106 instrucciones
Procesador 1 (175 MHz): ejecuta P en 10 s
Procesador 2 (300 MHz): ejecuta P en 5 s
26. MFLOPS (million of floating-point operations per second)
Se denominan MFLOPS nativos
Basado en operaciones y no en instrucciones
El tiempo de ejecución de la fórmula es el del programa, incluyendo el tiempo consumido por las instrucciones de enteros
La dura realidad
El juego de instrucciones en coma flotante varia de una arquitectura a otra y, dentro de una misma arquitectura, cada instrucción tiene un tiempo distinto que puede variar según los operandos MFLOPS
27. Consideran la complejidad de las operaciones en coma flotante
Suma, resta, multiplicación, comparación, negación: poco costosas
División, raíz cuadrada: costosas
Trigonométricas: muy costosas
Ejemplo de normalización de operaciones en coma flotante
ADD, SUB, COMPARE, MULT ? 1 operación normalizada
DIVIDE, SQRT ? 4 operaciones normalizadas
EXP, SIN, ATAN, ... ? 8 operaciones normalizadas MFLOPS normalizados
28. Cálculo de los MFLOPS de un programa Programa Spice: el computador DECStation 3100 tarda en 94 segundos en ejecutarlo
Contiene 109.970.178 operaciones en coma flotante de las cuales:
15.682.333 son divisiones (DIVD)
El resto tiene una complejidad similar a la de la suma
29. 4. Benchmarks Microbenchmarks: toys, kernels
Programas Sandra, WinBench y PassMark
Corporaciones: BAPCO, SPEC, TPC
30. Microbenchmarks: toys Sieve (algoritmo criba de Eratóstenes)
Encuentra los números primos entre 1 y n
Comparación de microprocesadores y lenguajes de alto nivel
Función de Ackermann
Programa recursivo
Evaluación del mecanismo de llamada a procedemiento
Otros ejemplos
Función de Fibonacci
Métodos de ordenación de vectores
Un largo etcétera
31. Microbenchmarks: kernels Whetstone (1976)
Pequeñas aplicaciones científicas (coma flotante)
Estructurado en módulos independientes
Linpack (1983)
Aplicaciones científicas de cálculo numérico de coma flotante
Resolución de sistemas densos de ecuaciones lineales
Dhrystone (1984)
Entornos típicos de programación: aspectos de los lenguajes fuente de sistemas operativos, editores, compiladores, etcétera
Aspectos no numéricos: manejo de cadenas de caracteres
Inicialmente diseñado en Ada, hay versiones en C y Pascal
32. Programa Sandra Evalúa procesador, memoria, disco, tarjeta gráfica, red
Calcula MIPS (dhrystone) y MFLOPS (whetstone)
http://www.sisoftware.net
34. PassMark Software Variedad de programas para evaluar el rendimiento y fiabilidad de los computadores personales
Hardware benchmarking and reliability testing software
Ejemplos de productos
Simple PC Benchmarking
PC Reliability and Load Testing
http://www.passmark.com
35. BAPCO BAPCo (Business Applicationn Performance Corporation)
http://www.bapco.com
Evaluación de computadores en entornos empresariales
Benchmarks desarrollados
SYSmark 2004
MobileMark 2005
WebMark 2004
Intervienen muchas empresas
Toshiba, Microsoft, IBM, Dell
HP, Intel, AMD, ZDNet, ...
36. SPEC SPEC (Standard Performance Evaluation Corporation)
MISSION: to establish, maintain, and endorse a standardized set of relevant benchmarks and metrics for performance evaluation of modern computer systems
Funciones de SPEC
Desarrollar benchmarks
Hacer públicos los resultados
Intervienen muchas empresas
HP, MIPS, Sun, AT&T, Compaq, IBM, Intel,
Motorola, DEC, etc.
http://www.spec.org
38. TPC TPC (Transactions Processing Performance Council)
Entornos transaccionales (OLTP: on-line transaction processing)
http://www.tpc.org
Compuesto por varios programas
TPC-App, TPC-C, TPC-H
Aspectos tratados
Sistemas de bases de datos distribuidas
Arquitectura cliente/servidor, servidores web
Unidades: peticiones procesadas por segundo (tps)
41. HINT (Hierarchical INTegration ) Coste de computación y tiempo de ejecución variables
Se resuelve un problema matemático cuya solución se puede ir mejorando paulatinamente
Cálculo de los límites racionales inferior y superior de:
Medida de prestaciones: QUIPS (quality improvement per second)
Útil para explorar los límites computacionales de los computadores así como la calidad del resultado
42. Aspecto típico de gráficas con QUIPS
43. ¿Impacto futuro de HINT? John Gustafson (derecha) y Quinn Snell (Ames Lab) afirman que HINT es posiblemente el benchmark más portable jamás escrito
Con HINT se pueden medir las prestaciones de cualquier supercomputador, por sofisticado que sea, como si de una simple calculadora se tratara
44. 4. Resumen de rendimientos: aproximaciones Uso de medias
Normalización de rendimientos
45. ¿Cómo expresar el rendimiento? El rendimiento es una variable multidimensional
Habría de expresarse mediante múltiples índices
Sin embargo, las comparaciones son más sencillas si se usa un único índice de rendimiento (a minimizar o maximizar)
¿Cómo concentrar todas las variables en una sola?
Utilizar la mejor variable que represente el rendimiento
Asegurar que su obtención es válida
Método habitual de síntesis: uso de medias
Hay que tener especial cuidado con la normalización de valores
46. Puntos de partida Está aceptado universalmente que
El tiempo necesario para llevar a terme un determinado cómputo refleja la esencia del rendimiento de un computador
Dos propiedades indispensables
Si resumimos el rendimiento de un computador para un conjunto de benchmarks en una única cantidad expresada en unidades de tiempo, entonces ha de ser directamente proporcional al tiempo total (ponderado) consumido por los benchmarks
Si resumimos el rendimiento de un computador para un conjunto de benchmarks en una única cantidad expresada en ratio, entonces ha de ser inversamente proporcional al tiempo total (ponderado) consumido por los benchmarks
47. La media aritmética Útil para tiempos de respuesta
No se ha de utilizar con ratios
Recomendación: normalizar el resultado final (no cada xi)
48. La media armónica Útil cuando los valores son ratios con unidades de tiempo en el denominador (MIPS, MFLOPS)
No se ha de utilizar con tiempos de respuesta
Recomendación: normalizar el resultado final (no cada xi)
49. La media geométrica No es útil ni para tiempos de respuesta ni para ratios
Única virtud: mantiene el mismo orden en las comparaciones con valores normalizados (consistencia)
Usado en los benchmarks de SPEC y BAPCO
Sin embargo, este orden puede no ser el correcto
50. Ejemplo de comparación con tiempos
51. Comparación con el tiempo total Ordenación con el tiempo total:
De más rápida a más lenta: A, B, C, D
Esto no significa que A sea siempre la más rápida (depende del programa), aunque, en conjunto, sí que lo es
52. Resumen con la media aritmética
53. Dividimos el valor obtenido en una máquina de referencia entre los valores de cada fila (aceleraciones)
A partir de aquí el resumen con las medias se hace con los valores normalizados (aceleraciones)
Ahora la aceleración es un índice a maximizar
Normalización de rendimientos: ratios
54. Comparación con valores normalizados
55. Lecturas de la gráfica anterior A obtiene mejor índice en todos los casos
Altibajos en la media aritmética
Comparación de B y C con tiempos
B es más rápido que C: 2010,3 s frente a 2166,1 s
Relación de tiempos: 2166,1/2010,3 = 1,08
Comparación de B y C con la media geométrica
B y C son casi igual de rápidos: 9,60 s frente a 9,59 s
Relación de medias geométricas: 9,60/9,59 = 1,00
56. 5. Estrategias de análisis
Efectos de la normalización y de la ponderación
57. Estrategias de análisis Muy raramente un estudio comparativo de prestaciones es un trabajo aburrido, sobre todo cuando intervienen los diseñadores e inteseres económicos
Caso de estudio
Tres sistemas: A, B y C
Dos programas de prueba: P1 y P2
Tiempo de ejecución en segundos de cada programa
58. Tiempo individual de cada máquina
A es 10 veces más rápido que B para P1
B es 10 veces más rápido que A para P2
C es 50 veces más rápido que A para P2
B es 2 veces más rápido que C para P1
C es 5 veces más rápido que B para P2
Sin embargo, la comparación entre los tres sistemas resulta confusa Tiempo individual de cada programa
59. Tiempo total de respuesta
Buena aproximación si los programas de prueba se ejecutan en tiempo no demasiado diferentes
B es 9.1 (1001/110) veces más rápido que A para P1 y P2
C es 25 (1001/40) veces más rápido que A para P1 y P2
C es 2.75 (110/40) veces más rápido que B para P1 y P2
Tiempo total de ejecución
60. Resumiendo las datos con una media
Buena aproximación si los programas de prueba se ejecutan las mismas veces
Resumiendo las datos con una media ponderada
Por ejemplo, si el responsable del 80% de la carga es P1 y del 20% es P2, entonces el peso del primero es 0.8 y el del segundo es 0.2 Utilizando medias aritméticas
61. Aproximación si no se conoce la proporción de cada programa
Se supone que el tiempo se distribuye entre los n programas
Cálculo de los pesos para cada programa
Medias aritméticas ponderadas
62. Cálculo de medias aritméticas ponderadas
Problema de la media aritmética ponderada
Hay dependencia de la máquina de referencia
Hay dependencia del tiempo usado en cada programa de prueba Medias aritméticas ponderadas: resumen
63. Normalización de los tiempos Normalización sobre diferentes bases
64. Principales conclusiones Análisis de los resultados
El rendimiento calculado con la media aritmética varia según la máquina de referencia
Col. 2: B es más lenta que A (referencia A)
Col. 4: A es más lenta que B (referencia B)
Col. 3: C es más lenta que A y B (referencia A)
Col. 9: C es más rápida que A y B (referencia C)
Las medias geométricas son consistentes independientemente de la máquina de referencia
A y B tienen el mismo rendimiento
El tiempo de ejecución de C es el 63% de A o B
Sin embargo, el tiempo total de ejecución de A es 9 veces el de B, y el de B tres veces el de C
65. 6. Ejemplos reales CPU2000 (SPEC)
SYSMark 2004 (BAPCO)
66. El paquete SPEC CPU2000 Compuesto por dos partes
CINT2000: rendimiento en aritmética entera intensiva
CFP2000: rendimiento en aritmética de coma flotante intensiva
¿Qué quiere decir la “C”?
Se evalúan componentes, no el sistema entero
¿Qué componentes se evalúan?
Procesador
Arquitectura de memoria
Compilador
¿Qué componentes no se evalúan?
Subsistema de disco, red o gráficos
67. Criterios de selección de programas Portabilidad a muchas arquitecturas
32 y 64 bits: Alpha, Intel, PA-RISC, Rxx00, SPARC, etc
Portabilidad a muchos sistemas operativos
Unix, Linux y Windows
No han de contener I/O, ni red ni gráficos
Han de caber en 256 MB de memoria principal para no provocar intercambio (swapping) con el disco
No han de pasar más del 5% del tiempo ejecutando código que no sea especificado por SPEC
68. Programas dentro de CPU2000 CINT2000: 12 programas
Todos en lenguaje C
164.gzip Utilidad de compresión
176.gcc Compilador de C
186.crafty Programa para jugar al ajedrez
197.parser Procesador de lenguaje natural
254.gap Teoría computacional de grupos
CFP2000: 14 programas, en lenguajes FORTRAN y C
6 en FORTRAN77, 4 en FORTRAN90 y 4 en C
173.applu Ecuaciones diferenciales parciales
178.galgel Dinámica de fluidos
200.sixtrack Modelo de acelerador de partículas
69. Índices prestaciones en SPEC CPU2000 Índices de prestaciones
Aritmética entera
SPECint2000, SPECint_base2000
Aritmética en coma flotante
SPECfp2000, SPECfp_base2000
Significado de “base” y “non-base”
Compilación en modo conservativo o agresivo
Cálculo
Media geométrica de los valores normalizados respecto de la máquina de referencia Sun Ultra5_10 con un procesador a 300 MHz
Tarda aproximadamente 2 días en ejecutar todos los benchmarks del paquete
70. Cálculo del índice SPECfp_base Hardware
AMD Gigabyte GA-7ZM motherboard 1.1 GHz Athlon
L1 cache: 64KB I+64KB D on chip
L2 cache: 256KB (I+D) on chip
Memory: 256MB PC133 SDRAM
Software
Windows 2000
Compiler: Visual Fortran 6.5
71. Benchmark SYSMark 2004 Considera la carga en dos categorías
Internet Content Creation (ICC)
Dreamweaver, Photoshop, Flash, Premiere...
Office Productivity (OP)
Word, Excel, Access, Netscape, WinZip, ...
Con cada programa se ejecuta un conjunto de tareas (tasks) de acuerdo con un modelo de comportamiento del usuario
Las medidas se basan en el tiempo de respuesta
Se mide el tiempo de ejecución de cada tarea individual
Para cada categoría se calcula el tiempo medio de ejecución de todas las tareas incluidas en ella
72. Cálculo del índice SYSMark 2004 El tiempo medio de cada categoría se normaliza (ratio) respecto de una máquina de referencia (calibration platform) y se multiplica por 100
Si ratio = 200 ? doble de rápida que la de referencia
Finalmente, el índice SYSMark se calcula mediante la media geométrica de los dos ratios obtenidos