1 / 72

Análisis comparativo de rendimiento

Análisis comparativo de rendimiento. ¿Qué sistema informático tiene mejor rendimiento para una carga determinada?. Usuarios, administradores y diseñadores. 1. Introducción ¿Qué es la referenciación? ¿Sistemas con rendimientos distintos? 2. Índices clásicos de rendimiento

Download Presentation

Análisis comparativo de rendimiento

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. Análisis comparativo de rendimiento ¿Qué sistema informático tiene mejor rendimiento para una carga determinada? Usuarios, administradores y diseñadores

  2. 1. Introducción ¿Qué es la referenciación? ¿Sistemas con rendimientos distintos? 2. Índices clásicos de rendimiento CPI, MIPS, MFLOPS 3. Benchmarks Microbenchmaks: toys y kernels Programas Sandra, PassMark, Bapco Consorcios SPEC, TPC Benchmark HINT 4. Resumen de rendimiento Tipos de medias Ponderación y normalización 5. Estrategias de análisis Empleo de medias Efectos perniciosos 6. Ejemplos reales CPU2000 SYSMark 2004 Contenido

  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 Prestaciones = f (carga) Índice de prestaciones Carga Sistema S1 S2 S3

  5. Índices de rendimiento

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

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

  8. Carga de trabajo y carga de prueba • 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 f (carga) Carga Medidas del rendimiento o prestaciones

  9. 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 Carga real Índices de prestaciones Variación de los parámetros del SO Variación del comportamiento de los usuarios

  10. Sistema informático o modelo Carga de prueba: real o modelo Medidas Carga real Modelo El modelado de la carga • 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

  11. Obtención de los índice de prestaciones Programas similares a los de la carga real Datos de entrada al modelo (analítico o simulación) Modelo de la carga real Carga real IP’’ IP’ IP

  12. Ejemplo de medida de rendimiento trilog.c #include <math.h> #define NTIMES 10000000 void main() { long y; float x=0.0, y=9.9; for(i=0; i<NTIMES; y++) x+=sin(atan(cos(log(y)))); } % gcc trilog.c -o trilog -lm % time trilog real 6m 0.38s user 3m 0.22s sys 2m 0.30s %_ Tiempo total: 398 s Tiempo de ejecución: 352s Modo usuario: 202 s Modo sistema: 150 s Tiempo de espera: 398-352 = 46 s Sistema real (máquina Unix) y carga de coma flotante modelada

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

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

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

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

  17. Programa A B Diferencias (A–B) P1 5.4 19.1 –13.7 P2 16.6 3.5 13.1 P3 0.6 3.4 – 2.8 P4 1.4 2.5 – 1.1 P5 0.6 3.6 – 3.0 P6 7.3 1.7 5.6 Ejemplo de rendimientos similares • Tiempos de ejecución en dos sistemas A y B ¿Son significativas estas diferencias?

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

  19. 2. Índices clásicos de rendimiento CPI, MIPS, MFLOPS

  20. Ciclos por intrucción de un programa • 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

  21. Relación entre tiempo y frecuencia • 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?

  22. Cálculo del CPI de un programa • 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

  23. MIPS • 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)

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

  25. MFLOPS • 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

  26. MFLOPS normalizados • 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

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

  28. 4. Benchmarks Microbenchmarks: toys, kernels Programas Sandra, WinBench y PassMark Corporaciones: BAPCO, SPEC, TPC

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

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

  31. Programa Sandra • Evalúa procesador, memoria, disco, tarjeta gráfica, red • Calcula MIPS (dhrystone) y MFLOPS (whetstone) • http://www.sisoftware.net

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

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

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

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

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

  37. Aspecto típico de gráficas con QUIPS

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

  39. 4. Resumen de rendimientos: aproximaciones Uso de medias Normalización de rendimientos

  40. ¿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 Espacio multidimensional Espacio unidimensional

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

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

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

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

  45. ProgramaRA B C D 1 1400 141 170 136 134 2 1400 154 166 215 301 3 1100 96.8 94.2 146 201 4 1800 271 283 428 523 5 1000 83.8 90.1 77.4 81.2 6 1800 179 189 199 245 7 1300 112 131 87.7 75.5 8 1800 151 158 138 142 9 1100 93.5 122 104 118 10 1900 133 173 118 142 11 1500 173 170 179 240 12 3000 243 264 338 508 Suma 19100 1831.1 2010.3 2166.1 2710.7 Ejemplo de comparación con tiempos

More Related