Transcript Métrica
Métricas de Rendimiento de Sistemas Operativos Métricas de Rendimiento de Sistemas Operativos La medición es fundamental para cualquier disciplina de ingeniería. Según Loard Kelvin “Cuando pueda medir lo que está diciendo y expresarlo con números, ya conoce algo sobre ello; cuando no pueda medir, cuando no pueda expresar con números lo que dice, su conocimiento es precario y deficiente: puede ser el comienzo del conocimiento, pero en sus pensamientos, apenas está avanzando hacia el escenario de la ciencia”. Métricas de Rendimiento de Sistemas Operativos Indicadores Medida : Indicación cuantitativa de la extensión, cantidad, dimensiones, capacidad o tamaño de algunos atributos de un proceso o producto. Métrica: Medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado. Indicador: Es una métrica o combinación de métricas que proporcionan una visión profunda del proceso de SW, del proyecto o producto en sí. Permite al gestor de proyectos ajustar el producto, proyecto o proceso para que las cosas salgan mejor. Métricas de Rendimiento de Sistemas Operativos Formas de medir el rendimiento: Tiempo de respuesta Tiempo entre el comienzo y finalización de una tarea. También llamado tiempo de ejecución. Productividad (throughput) Cantidad total de trabajo realizado en un tiempo determinado. Una mejor medida desde el punto de vista del sistema pero no desde el punto de vista del usuario. Métricas de Rendimiento de Sistemas Operativos Métricas de software 1. Medidas directas: Ejm: costo, esfuerzo 2. Medidas indirectas: Ejm: LDC, velocidad de ejecución, defectos durante un período de tiempo. Métricas orientadas al Tamaño Provienen de la normalización de las medidas de calidad y/o productividad, considerando el “tamaño” del SW producido. Métricas orientadas a la Función Utilizan una medida de “funcionalidad” de la aplicación como valor de normalización Puntos de fusión y factores de complejidad El rendimiento de un computador X es inversamente proporcional al tiempo de ejecución: Re n dim iento X 1 Tiempo de ejecución X • Computador X es n% más rápido que el computador Y Re n dim iento X Re n dim iento Re n dim iento Y * 100 n Y • Computador Y es n% más lento que el computador X Re n dim iento X Re n dim iento Re n dim iento Estructura de Computadores (EUI: 2º ITIS) Y * 100 n X Cap 2: Rendimiento de un computador 6 de 22 Tiempo (segundos) Única medida completa y fiable del rendimiento de un computador. Comando Unix: time “programa” --> 90.7 u 12.9 s 2:39 65% ¿ Q u é tie m po m e dim o s? T ie m p o tra n s c u rrid o (to ta l: 2 :3 9) T ie m p o d e C P U (D e d ica do a n u e stra ta re a) 9 0 .7 s + 1 2.9 s = 1 0 3.6 s (6 5 % ) T ie m p o d e u s u a rio 9 0 .7 s Estructura de Computadores (EUI: 2º ITIS) T ie m p o d e d ica d o a: E n tra d a /s a lid a , o tro s p ro g ra m as 5 5 .4 s T ie m p o d e l S is te m a 1 2 .9 s Cap 2: Rendimiento de un computador 7 de 22 Reloj T CPU = Nº ciclos reloj por programa CPI MEDIO x Tiempo de ciclo Nº ciclos de reloj por programa = Recuento de instruccio nes (CPIMEDIO : Nos permite comparar dos implementaciones de una misma arquitectura) T CPU = Recuento de instruccio nes x CPI MEDIO x Tiempo de ciclo T CPU Estructura de Computadores (EUI: 2º ITIS) = N * CPI * T C Cap 2: Rendimiento de un computador 8 de 22 Tiempo _ CPU = Segundos = Pr o gra ma T Instrucion es Pr o gra ma Instrucció n CPI C o m p ila d o r x (x ) R e p e rto rio d e in stru ccio n e s O rg a n iz a ció n E stru ctu ra T e cn o lo g ía x x Estructura de Computadores (EUI: 2º ITIS) Ciclos x Segundos Ciclo = N x CPI x T C R e cu e n to d e In stru ccio n e s x P ro g ra m a x T ie m p o d e C iclo x Cap 2: Rendimiento de un computador x x 9 de 22 MIPS (millones de instrucciones por segundo) MIPS MIPS Frecuencia Nativos = Re lativos del reloj CPI x 10 6 = Tiempo Tiempo Re ferencia x MIPS Re ferencia No _ estimado Inconvenientes de la métrica: Los MIPS dependen del repertorio de instrucciones. No podemos comparar distintas arquitecturas. Los MIPS varían entre programas en el mismo computador. Los MIPS pueden variar inversamente al rendimiento. Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 10 de 22 MFLOPS (Millones de operaciones en punto flotante por segundo) MFLOPS Nº operacione s en punto flotante = Tiempo de ejecución . 10 6 Inconvenientes: Sólo aplicable a las operaciones en punto flotante. Instrucciones en punto flotante no comparables entre diferentes máquinas. Máquina A: *, -, * y / Máquina B: No tiene “/” (dará mas MFLOPS) Mezcla de operaciones rápidas y lentas. Los MFLOPS para 100 sumas serán mayores que para 100 divisiones. MFLOPS normalizados: Estructura de Computadores (EUI: 2º ITIS) O p e ra c io n e s + , - , * y co m p a ra r , ra íz cu a d ra d a E xp , se n o Cap 2: Rendimiento de un computador Pesos 1 4 8 11 de 22 Programas que forman una carga de trabajo con la que el usuario espera predecir el rendimiento de la carga de trabajo real. Programas reales típicos Núcleos obtenidos de programas reales (Kernels) Pequeñas partes intensivas en el tiempo de programas reales. Ejemplo: Livermore Loops y Linpack. Programas triviales o benchmarks reducidos (toys) Ejemplos: Compiladores (gcc), tratamiento de textos (TeX), herramientas CAD (spice). 10 -100 líneas de programa. Resultado conocido antes de ejecutarlo. Ejemplo:Quicksort, puzzle, ... Programas sintéticos Creados artificialmente (programas sintéticos). Ejemplo: Whetstone y Dhrystone. Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 12 de 22 SPEC: Cooperativa de Evaluación del Rendimiento de Sistemas (System Performance Evaluation Cooperative) En 1988 representantes de unas cuantas compañías - Apollo/Hewlett-Packard, DEC, MIPS y Sun- fundan una cooperativa para la evaluación del rendimiento de sistemas. Llegan al acuerdo de ejecutar todos un conjunto de programas y entradas reales. Factible debido en gran parte a: Sistemas Operativos portables (Unix) Popularidad de los Lenguajes de Alto Nivel. Ahora, los compiladores, también forman parte del rendimiento de un computador y deben ser medidos en cualquier evaluación. Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 13 de 22 Los benchmarks reducidos (toys) y los sintéticos no cargan la memoria principal del sistema de forma realista (todo el programa cabe en la memoria cache) Una vez que el benchmark se estandariza inmediatamente aparecen mejoras específicas para el mismo elevando los resultados de rendimientos. Si los benchmarks fuesen nuestros programas nos veríamos beneficiados ya que los interesados harían que nuestra aplicación fuese más rápida. Los benchmarks reales son difíciles de realizar, situación que se agudiza en los casos de: Máquina no construida, simuladores más lentos. Benchmarks no portables Compiladores no disponibles Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 14 de 22 ¿Cómo combinar el rendimiento de un conjunto de programas? Media aritmética T Medio 1 n Media armónica n n Ti n i 1 donde V i 1 V i 1 i 1 Peso ponderada n T Medio Ti Peso i * Ti i 1 Peso Frecuencia i del programa iésimo. Suma de los pesos igual a 1. (ej. MFLOPS, )) Media geométrica para tiempos normalizad os n 1 n 1 i (Si el rendimient o se expresa como una frecuencia Media armónica ponderada Media aritmética T Medio n Ti Normalizad o i 1 i Vi Normalizad o T i Tiempo de ejecución, normalizad o para la máquina de referencia , para el programa iésimo de un total de n. T i Tiempo de ejecución del programa Estructura de Computadores (EUI: 2º ITIS) iésimo n Número de programas de la carga de trabajo Cap 2: Rendimiento de un computador 15 de 22 El posible aumento de rendimiento para una mejora dada está limitado por la cantidad que se utiliza la característica mejorada. Ganancia velocidad Rendimient o después de la mejora Rendimient o antes de la mejora Tiempo de ejecución antes de la mejora Tiempo de ejecución después de la mejora Tiempo de ejecución después de la mejora Tiempo de ejecución afectado por la mejora Tiempo de ejecución no afectado por la mejora Cantidad de la mejora Si suponemos que la mejora acelera una fracción F de la tarea en un factor de S, entonces la ganancia de velocidad (speedup) vendrá dada por: 1 F F (1 F ) 1-F 1 S Corolario: Hacer rápido el caso común. Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 16 de 22 Suponga una aplicación que casi toda es paralela (90%) o lo que es lo mismo, una tarea que puede ejecutarse por varios procesadores simultáneamente. Número de procesadores: P Speedup P 1 0 .1 0 .9 Speedup 10 1 0 .1 Speedup 1000 1 0 .9 100 1 0 .1 0 .9 9 . 17 100 10 P 0 .9 5 .3 Speedup 9 . 91 Al pasar de 100 a 10000 .1 procesadores el aumento de 1000 rendimiento no ha sido tanto como el esperado. Para aumentarlo es necesario acelerar la parte secuencial del programa o que la fracción factible de ejecutarse en paralelo aumente. Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 17 de 22 Veamos que ocurre si mejoramos en cantidad 2 la parte 1 no paralela: Speedup 16 . 95 100 , 2 0 .1 2 0 .9 100 Veamos que ocurre si aumentamos la fracción paralelizable en 0.05 1 Speedup 100 0 . 05 0 . 95 16 . 80 100 Algunas direcciones de interés relacionadas con el rendimiento: http://www.specbench.org http://performance.netlib.org/performance/html/PDSreports. html Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 18 de 22 Métricas de Rendimiento de Sistemas Operativos Pruebas http://translate.google.com.mx/translate?hl=es&langpair=en%7Ces&u= http://www.pcmag.com/article2/0,2817,2355703,00.asp http://blog.itechtalk.com/2010/simple-tips-to-improve-windows-7performance/