Métricas de Rendimiento DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 6. RENDIMIENTO DE SISTEMAS COMPUTACIONALES (1 SEMANA) 6.1 Definición de rendimiento en términos computacionales 6.2 Medición del rendimiento de un computador Objetivo: Conocer la definición de rendimiento de un sistema computacional así como las métricas que permiten evaluar el rendimiento cuantitativamente.
Rendimiento Por qué un hardware es mejor que otro para diferentes programas? Qué factores del rendimiento del sistema están relacionados con el hardware? Ejemplo: debe cambiarse la máquina o sólo el sistema operativo? Cómo afecta el repertorio de instrucciones en el rendimiento? Qué se mejora al cambiar un procesador por otro más moderno? Hay mejora al incluir una máquina más a un sistema? Relación costo-rendimiento, consumo de potencia Factores que Afectan el Rendimiento Factores que afectan el rendimiento de un computador: Algoritmos utilizados Lenguaje de programación Compilador Arquitectura del repertorio de instrucciones Implementación de la arquitectura Microarquitectura Tecnología de fabricación Sistema de memoria Sistema de entrada/salida: hardware y sistema operativo Los factores resaltados en rojo se estudiaron en este curso
Evaluación n de ISAs Métricas en la etapa de diseño: Puede implementarse, en cuánto tiempo, a qué costo? Con qué facilidad se compila? Métricas estáticas: Cantidad de memoria ocupada por un programa Métricas dinámicas: Cuántas instrucciones se ejecutan? Cuántos bytes debe apuntar el procesador para ejecutar el programa? Cuántos ciclos de reloj se necesitan por instrucción? Definición n de Rendimiento Rendimiento 1 = Tiempo de Ejecución Aceleración o factor de mejora n: Rendimiento Rendimiento x = Máquina M1 es n veces más rápida que M2 (n>1, n=2) M1 es 2 veces más rápida que M2 y n Máquina M1 es % más rápida que M2(n>1, n=2) M1 es un 100% más rápida que M2 M1 es y% más rápida que M2 = (1 + y/100) veces más rápida
Métricas Temporales de Rendimiento Rendimiento total computacional (Throughput) Total de tareas realizadas por unidad de tiempo Tiempo de respuesta (latency) Incluye todos los eventos de la tarea (accesos a disco y memoria principal, operaciones de entrada/salida, etc.) Incluye tiempo de ejecución de CPU Tiempo de ejecución de CPU IC: número de instrucciones CPI: ciclos por instrucción T: período de reloj T CPU = IC CPI T Tiempo de Ejecución n de CPU El tiempo de ejecución de un programa depende de: Arquitectura del repertorio de instrucciones (CISC, RISC, etc.) Microarquitectura (ej., encauzamiento) Técnicas de compilación Tecnología de implementación del procesador El número de instrucciones de un programa depende de: Instrucciones disponibles Uso de instrucciones por parte del programador y el compilador CPI depende de Arquitectura del repertorio de instrucciones Microarquitectura Frecuencia de reloj depende de microarquitectura y tecnología de fabricación
CPI Efectivo CPI asume que todas las instrucciones se ejecutan en el mismo número de ciclos En realidad, cada instrucción puede tener un tiempo de ejecución diferente dependiendo de su complejidad y si incluye accesos a memoria CPI efectivo permite cálculo más realista del tiempo de ejecución Para el cálculo del CPI efectivo se toma el promedio de los ciclos de reloj de cada tipo de instrucción CPI = CPI efectivo n i = 1 i x IC i - IC i es el número de instrucciones de tipo i ejecutadas (en porcentaje) - CPI i es el número promedio de ciclos de reloj por instrucción para ese tipo de instrucción - n es el número de tipos de instrucciones Tiempo Promedio de Ejecución Objetivo: resumir el rendimiento en una única métrica tiempo total de ejecución tiempo promedio de ejecución Tiempo promedio de ejecución Cálculo basado en el promedio del tiempo de ejecución de los diferentes programas T = 1 n e T e, i n i = 1 n: número total de programas corridos T e,i : tiempo de ejecución del i-ésimo programa El tiempo promedio de ejecución puede incluir pesos específicos -Indican la frecuencia de ejecución de un programa en la carga de trabajo T e = 1 n ait a : peso específico del programa i en la i e, i n carga de trabajo i = 1
Otras Métricas M de Rendimiento MIPS: Millones de instrucciones por segundo (Millions of Instructions Per Second) La misma tarea puede tomar más instrucciones para su ejecución en una máquina que en otra Normalmente indica rendimiento pico MFLOPS: Millones de operaciones de punto flotante por segundo Million Floating Point OPs Per Second Benchmarks: Programas diseñados para medir características específicas de rendimiento Ejemplos: Dhrystones y Whetstones Relación n Entre las MétricasM Para ejecutarse, un programa requiere Un cierto número de instrucciones de máquina Un cierto número de ciclos Un cierto tiempo (en segundos) Estas cantidades se relacionan con: Frecuencia de reloj CPI (ciclos por instrucción) MIPS (millones de instrucciones por segundo) Esta métrica es mayor para un programa que utiliza instrucciones simples (ej: RISC)
Benchmarks El rendimiento se determina mejor cuando se corre una aplicación real Programas con una carga esperada típica Programas típicos del tipo de aplicación Ejemplo: compiladores/editores, aplicaciones científicas, manejo de gráficos, etc. Pequeños benchmarks Herramienta para arquitectos y diseñadores Fácil de estandarizar SPEC (System Performance Evaluation Cooperative) Determina estándar de programas de prueba y datos de entrada Indicador de rendimiento y tecnología de compiladores Vela por la reproducibilidad de los resultados para evitar manipulación de las pruebas Ejemplo: SPEC CPU2000 www.spec.org
Incremento en Rendimiento Para una arquitectura específica, el rendimiento puede mejorar debido a: Aumento en la frecuencia de reloj Mejora de la microarquitectura Mejora de los compiladores Disminuyendo CPI y/o el número de instrucciones por línea de código Escogencia de algoritmos o lenguajes que afecten el número de instrucciones Segmentación permite mejorar CPI No idealidades = CPI > 1 Atascos y otras no idealidades aumentan CPI Jerarquía de memoria permite disminuir el tiempo de ejecución de CPU Fallos aumentan tiempo de ejecución de CPU ideal: pena de fallos Organización de memoria influye en pena de fallos: ej: memorias intercaladas mejoran tiempos de transferencia Factores Determinantes de Rendimiento Tiempo de ejecución = T e = IC CPI T Factor # Instrucciones CPI Período Algoritmo Lenguaje de programación Compilador ISA Organización del procesador Rendimiento de la segmentación Rendimiento del sistema de memoria Tecnología
Ley de Amdahl No siempre la mejora de un aspecto en un factor n lleva a mejorar el rendimiento global en el mismo factor Ley de Amdahl permite determinar cómo la mejora de un aspecto influye en la mejora global del rendimiento T % Te afectado = Te, inicial + Te no afectado factor de mejora e, final %