1 / 74

Desempeño: concepto

Desempeño: concepto. Desde el punto de vista de la compra de una maquina: Dado un conjunto de máquinas, cual tiene un mejor desempeño? el menor costo? la mejor relación desempeño/costo? Desde el punto de vista del diseño: Dadas varias decisiones de diseño, cual proporciona

vinnie
Download Presentation

Desempeño: concepto

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. Desempeño: concepto • Desde el punto de vista de la compra de una maquina:Dado un conjunto de máquinas, cual tiene • un mejor desempeño? el menor costo? la mejor relación desempeño/costo? • Desde el punto de vista del diseño:Dadas varias decisiones de diseño, cual proporciona • Mayor incremento de desempeño? Menor costo? • Mejor desempeño/costo? • Ambos necesitan de • Una base para comparación • Una métrica de avaluación • Objetivo: entender la implicaciones en el desempeño de las decisiones en el diseño.

  2. Contenido • Desempeño • Definición • Fórmulas para el desempeño en una CPU • Midiendo y evaluando el desempeño

  3. Métricas para el Desempeño Respuestas por mes Operaciones relevantes por segundo Aplicación Linguaje de programación Compilador (millones) de instruciones por – MIPS (millones) de (F.P.) operaciones de PF por segundo – MFLOP/s ISA Data path Megabytes por segundo Control Unidades funcionales Ciclos por segundo (clock rate) Transistores conexiones Pines Cada métrica tiene su lugar y un propósito, y cada una puede ser medida

  4. DC to Paris Speed Passengers Throughput (pmph) 6.5 hours 610 mph 470 286,700 3 hours 1350 mph 132 178,200 Dos nociones de desempeño • Cuál tiene el mejor desempeño? • Tempo para transportar un pasajero? 400 pasajeros? • Tempo para ejecutar un proceso:tempo de ejecución, tiempo de respuesta, latencia • Tareas por día, hora, segundo, …:throughput, ancho de banda Plan Boeing 747 BAD/Sur Concor

  5. Cuál es mejor? • Tiempo de el Concor vs. Boeing 747: • Concor 1350 mph / 610 mph = 2.2 veces mas rápido = 6.5 horas / 3 horas • Throughput de el Concor vs. Boeing 747: • Boeing = 286,700 pmph / 178,200 pmph = 1.6 veces mejor • Boeing es 1.6 veces (60%) más rápido en throughput • Concor es 2.2 veces (120%) más rápido en términos de tiempo de vuelo (tiempo de respuesta) Nos vamos concentrar en el tiempo de respuesta para una única tarea.

  6. Los cambios siguientes diminuyen el tiempo de respuesta, aumentan el throughput, o ámbos? • cambiar un procesador de un computador por otro más rápido; • Adición de más procesadores a un sistema multiprocesador, donde cada procesador corre un proceso en paralelo, a la misma velocidad. Ejemplo en el caso de computadores

  7. Solución • La caida en el tiempo de respuesta casi siempre mejora el throughput • el primer caso tanto el tiempo de respuesta como el throughput mejoran • En el segundo caso, ningúm proceso executará mas rapidamente (mejora solo en el throughput) • Si la demanda antes de la modificación fuese mayor que el throughput, el sistema seria obligado a secuenciar los programas. • En este caso la mejora de el througput (por la disposición de más procesadores) tambiém determina una mejoría en el tiempo de respuesta!!! • Resumen:Cambios en el tiempo respuesta en general afectan el throughput y vice-versa

  8. Como se mide el desempeño ? • Se utilizará el tiempo de respuesta • Cuando se consideran los sistemas de I/O se trabaja con los conceptos de throughput de el sistema

  9. Qué es el tempo en computador? • Definición mas intuitiva: • Tiempo total para completar una tarea, incluyendo accesos al disco, accesos a la memoria, actividades de I/O, overhead del sistema operacional, … • Puede incluir tiempo de ejecución de otros programas en un ambiente con multiprogramación • “tiempo real”, “tiempo de respuesta” o “tiempo transcurrido” • Hay un exceso de factores. • Definición alternativa: es el tiempo en que o procesador (CPU) trabaja solamente en su programa (una vez que múltiplos procesos pueden estar siendo ejecutados al mismo tempo) • “tiempo de ejecución en la CPU” o “tiempo de CPU” • Normalmente dividido en tiempo de CPU utilizado por el sistema (en el sistema operacional) y tiempo de CPU utilizado por el usuario (en el programa de el usuario) desempeño de la CPU: tiempo de la CPU utilizado por el usuário

  10. Definición de Desempeño • Desempeño de acuerdo con el tiempo:=> más rápido es mejor • Dadas dos máquinas X e Y si el desempeño de X fuera mejor que el de Y, tenemos: • o: Tiempo ejecución(y) > Tiempo ejecución(x)

  11. Comparando dos sistemas • Se estamos interesados en comparar dos sistemas: La proposición: “X es n veces más rápido que Y” significa:

  12. Desempeño relativo • Ejemplo: Sea una máquina A ejecutando un programa en 10 segundos y una máquina B ejecutando el mismo programa en 15 segundos, cuántas veces A es más rápida que B?? • Solución: sabemos que A es n veces más rápida que B si:

  13. Continuación ejemplo • La razón entre los desempeños es: 15/10 = 1,5 • Por lo tanto, A es 1,5 veces más rápida que B • En el ejemplo anterior podemos tambiém decir que B es 1.5 vezes más lenta que A, ya que

  14. Contenido • Desempeño • Definición • Fórmulas para el desempeño en una CPU • Midiendo y evaluando el desempeño

  15. Unidades de tiempo • En la perspectiva de el usuario: tiempo = segundos • Tiempo de CPU: computadores son construidos utilizando un clock que cambia a una razón constante y determina cuando los eventos sucede en el hardware • Intervalos discretos de tiempo son llamados ciclos de reloj (o informalmente clocks, ticks o ciclos) • Período d el reloj : tiempo de un ciclo de reloj(por ejemplo, 2 nanosegundos o 2 ns) • tasa de reloj o frecuencia (por ejemplo 500 megahertz, o 500 MHz), que es el inverso del período de reloj.

  16. Midiendo el tiempo utilizando ciclos de reloj Tiempo de ejecución en la CPU de un programa=Ciclos de reloj de el programa x Tiempo del ciclo de reloj Ciclos de reloj para el programa= --------------------------------------- frecuencia de el reloj Ciclos de reloj del programa= Número de instrucciones del programa X promedio de ciclos de reloj por instrucción (“CPI”) • CPI: es una forma de comparar dos máquinas con el mismo conjunto de instrucciones, una vez que el número de instrucciones es el mismo.

  17. Medidas de Desempeño • Es importante diferenciar entre el tiempo total de ejecución de un programa y el tiempo utilizado por el procesador trabajando en provecho de un programa • El tempo utilizado por el procesador se denomina tiempo de procesador • El tiempo de procesador es el tiempo utilizado en las instrucciones exclusivas de un programa • El tiempo de un procesador no incluye el tiempo utilizado con (I/O), ni el tiempo utilizado con programas diferentes (no caso de sistemas compartidos) • En general el tiempo total utilizado en un programa es mayor que el tiempo de procesador

  18. Desempeño • El tiempo de procesador puede ser dividido en: • tiempo de usuario: (tempo utilizado en la ejecución de las instrucciones de um programa) • tempo do sistema: tiempo utilizado por el sistema operacional trabajando en benefício de el programa • En la práctica esta diferencia es difícil de cuantificar. • El UNIX diferencia esos dos tiempos: Al ejecutar el comando time: • 90.7u 12.9s 2:39 65% • Lo que significa: • El tiempo de usuario es de 90,7 segundos • El tiempo de el sistema es de 12.9s • El tiempo total es 2 minutos y 39 segundos(159s) • El percentaje de el tiempo de procesador es: (90,7 + 12.9)/159 = 0,65

  19. Ejemplo • Tenemos un programa que se ejecuta en 10s en el computador A, que tiene 400MHz de clock. Queremos ayudar a un diseñador de computadores a construir un computador B, que debe ejecutar el mismo programa en 6s. El puede aumentar bastante la tasa del clock, pero esto afectar el resto de el diseño de la CPU, haciendo que la máquina B necesite de 1.2 veces más clocks de el que la máquina A para ejecutar el programa. Quál debe ser la velocidad de clock de la máquina B?

  20. Solución • Vamos calcular el número de ciclos de clock necesarios para ejecutar el programa en la máquina A

  21. Solución • Tiempo utilizado por el procesador B:

  22. Interfaz Hardware/Software • El tiempo de ejecución también depende de el número de instrucciones de el programa • Esto sucede, considerando que el compilador genera instrucciones a ser ejecutadas y que la máquina debe ejecutarlas una a una • Ciclos de clocks de el programa= Número de instrucciones de el programa x promedio de ciclos de clock por instrucción (“CPI”)

  23. Ejemplo 2 • Suponga que tenemos dos implementaciones para el mismo conjunto de instrucciones. La máquina A tiene un ciclo de reloj de 1ns y un CPI de 2.0 para un programa, en tanto que la máquina B tiene un ciclo de reloj de 2ns y una CPI de 1.2 para el mismo programa. Cuál máquina es más rápida, y por cuanto.

  24. Solución • Sabemos que ambas máquinas ejecutan el mismo número de instrucciones (estonces ejecutando el mismo programa y posen el mismo conjunto de instrucciones) • Vamos llamar I a el número de instrucciones ejecutadas por cada máquina • El número de ciclos de reloj puede ser obtenido de la siguiente forma:

  25. Continuación • Ahora podemos calcular el tiempo de el procesador para la Máquina A: • De manera similar para la máquina B:

  26. Continuación • Se puede concluir que la máquina A es más rápida. • El factor es calculado de la siguiente forma: • Se puede concluir que la máquina A es 1,2 veces más rápida que la máquina B, se estuvieran ejecutando e mismo programa

  27. Tiempo de el procesador usando CPI • Se puede escribir la ecuación básica de desempeño en terminos de la cantidad de instrucciones de un programa, del CPI y de el ciclo de reloj • Estas fórmulas son muy útiles para calcular el desempeño (performance) de un procesador • La última fórmula relaciona los tres factores principales que afectan el desempeño

  28. Fórmula de Desempeño La fórmula anterior puede ser re-escrita de la siguiente forma:

  29. Cálculo de el Desempeño (Resumen) Tiempo de CPU para un programa= # de Ciclos de clock para el programa x tiempo de un ciclo de clock • Substituyendo por ciclos de clock: Tiempo de CPU para un programa = Número de instrucciones x CPI x Tiempo de el ciclo de clock

  30. Cómo calcular lo 3 componentes de la eq? • Tiempo de ciclo de clock: en la especificación de el computador (frecuencia de clock en las propagandas) • Número de instrucciones: • Usar un simulador para contar las instrucciones • Utilización de un programa depurador/profiler • Contador en hardware – registrador especial (Pentium II) • CPI: • Afectado por las aplicaciones (diferentes mix de instrucciones), y implementación de la máquina (por ejemplo, sistema de memoria). • Cálculo: Tiempo de CPU N. de instrucciones x t. de el ciclo de clock • Contador en hardware – registrador especial (PII)

  31. Otra forma de calcular el CPI • Primero se calcula el CPI para cada una de las n instrucciones específicas (add, sub, and, etc.) • Se calcula la frecuencia de cada instrucción individual no conjunto de programas. • Multiplique estos valores para cada instrucción y sume estos resultados, para obtener el CPI final. = frecuencia de instrucciones

  32. Mix de Instrucciones Ejemplo de un procesador RISC • Si la operación de desvio fuera dos veces más rápida? • Y si dos instrucciones lógicas/aritméticas pudieran ser ejecutadas al mismo tiempo? requerimos saber los limites de la mejoras de la arquitectura Op Freci CPIi Prod (% Tiempo) ALU 50% 1 .5 (23%) Lectura 20% 5 1.0 (45%) Escritura 10% 3 .3 (14%) Salto 20% 2 .4 (18%) 2.2 (Consumo de tiempo)

  33. Mejorías en elementos de la arquitectura • Suponga que un programa utiliza 100 s. para ser ejecutado en una máquina, siendo las operaciones de multiplicación responsables por 80s. Cuál debe ser a aceleración de estas instrucciones para que el programa ejecute 5 veces más rápido?

  34. Problemas de Desempeño • En sistemas de computación podemos tener varios procesadores trabajando simultaneamente • Esto es denominado, en general como paralelismo • Un sistema puede poser dos elementos, con modalidades de operación caracterizadas por diferentes velocidades • En este caso, el desempeño global e determinado por la componente de más baja velocidad • Esto es conocido como la ley de Amdahl

  35. Ley de Amdahl • Los efectos de esta ley puden ser entendidos por un ejemplo bien simple • Considerese una correra de relevos cuya equipo está compuesto por una tortuga y un conejo

  36. Ejemplo da ley de Amdahl Ley de Amdahl

  37. Ley de Amdahl • L tortuga cubre el recorrido inicial de 100 metros en T minutos • Con la intención de mejorar el desempeño de el equipo, el conejo entra en la segunda parte de la carrera • Consideremos el conejo tan rápido que el segundo trecho es recorrido en un tiempo despreciable, o sea, equivalente a zero • La tortuga gasto T/2 minutos para recorrer su trecho • La pergunta es: cuál es el progreso de el equipo con la entrada de el conejo ultra-rápido?

  38. Ley de Amdahl • Como se pode ver, el tiempo total de la correra paso a ser: • Tiempo total = T/2 + 0 = T/2 minutos • No obstante la inmensa velocidad de el conejo, el tiempo total de el equipo fue solamente dos veces menor • Si reducimos la participación de la lenta tortuga para solamente 1/4 del recorrido, el tiempo total pasa a ser de 1/4* T • queda evidente, que la fracción de participación de la tortuga (o sea, de la parte más lenta) determina el desempeño global de el sistema

  39. Ley de Amdahl • El incremento de velocidad (Speedup) debido a una mejora E, es Suponga que la mejora E acelere una fracción F de una tarea por un factor S y que lo restante de la tarea no sea afectado, entonces

  40. Como puede ser aplicada la Ley de Amdahl??? • Vamos suponer que un programa es ejecutado en un computador que tiene un solo procesador • En este caso el programa gasta T minutos para ejecutarse • Ahora vamos suponer que el mismo programa es ejecutado en un sistema que tiene 10 procesadores • Cuanto será o grado de la mejora en el tiempo de ejecución de el programa???

  41. Speedup por el aumento de procesadores • Debemos tener en cuenta que solo una fracción F de el programa podrá ser ejecutado en paralelo • Esta fracción puede ser dada en % de el programa total (por ejemplo 80% de el programa, o 0,80 de el programa) • O sea, solo en esta fracción F los 10 procesadores podrán trabajar simultáneamente • En la otra fracción del programa (1 - F) o el 0,20 de el programa, solo un procesador podrá trabajar (el programa deberá ser ejecutado secuencialmente) • Los otros procesadores quedarán parados

  42. Ejemplo • Resumiendo: En este ejemplo, el tiempo de ejecución de la fracción F = 0.80 (o sea 80%) podrá ser disminuido para 1/10 de el tiempo anterior • 20% de el programa (el 0,20) solo puede ser ejecutado por un soloprocesador o sea: • El tiempo de ejecución de el resto de el programa (1- F) = 0.20 (o sea 20%) no será afectado • Aplicado la fórmula tenemos:

  43. Ejemplo (continuación) • Esto muestra que 10 procesadores serán capaces de ejecutar el programa 3.5 veces más rápido que un solo procesador • Si consideramos 100 el número de procesadores en paralelo, tenemos: • En este caso, el factor aumentará solo a 4,80!!!

  44. Conclusión sobre el problema • Queda claro que el desempeño de un sistema con múltiples procesadores (multiprocesador) está limitado por la fracción del programa que debe ser ejecutada de modo secuencial (sin usar paralelismo)

  45. Lei de Amdahl (enseñanzas para el diseñador de Sistemas de Computación) • Una mejora en un aspecto es limitada por el tiempo que consume ese aspecto Colorario de la Lei: • Haga que el caso más común sea ejecutado de la manera más rápida posíble. • Pequeñas mejorias en el caso común pueden ser más efectivas de que grandes mejoras en los casos raros

  46. Resumen: Fórmula de Tiempo de CPU

  47. Contenido • Desempeño • Definición • Fórmulas para el desempeño en una CPU • Midiendo y evaluando el desempeño • Programas benchmarks • Resumiendo el desempeño • Informando el desempeño

  48. Cuáles programas utilizar para hacer una comparación de desempeño? • Idealmente se debe ejecutar programas típicos, con entradas típicas antes de comprar o antes de construir una máquina • Llamado “workload”; Por exemplo: • Ingeniero utiliza un compilador, planilla • Un escritor utiliza procesador de textos, programas de diseño, programas de compresión • En algunas situaciones, esto es difícil porque: • No tenemos acceso a la máquina para hacer la medida de desempeño (“benchmark”) antes de la compra • No está bien definido el tipo de programa y/o el tipo de entrada a que va ser utilizada en el futuro

  49. Escogiendo Programas para la evaluación • Pros • representativo • portable • Ampliamente usado • Mejorías realmente útiles • Fácil de ejecutar, aún en el inicio de diseño • Descubrir cuellos de botella en potencia/ capacidad “pico” • Contras • No es portable • Difícil de medir, de descubrir la causa • Menos representativo • Fácil de manipular • Pico no muestra el desempeño de las aplicaciones Workload basado en objetivos reales Benchmarks com apli- cacioes completas Benchmarks de pequeños núcleos Micro-benchmarks

  50. Benchmarks • Obviamente, velocidad aparente del procesador depende del código usado para probarlo • Necesidad de estándares de la industria para que procesadores diferentes puedan ser comparados de forma justa => programas benchmark Existen compañías que crean estos benchmarks: código “típico” usado para avaluar sistemas • Trucos en el benchmarking: • Configuraciones diferentes de sistemas • Compilador y bibliotecas optimizadas (talvez manualmente) para los benchmarks • Especificación de pruebas direccionadas para una máquina • Uso de benchmarks muy pequeños. • Necesitan ser cambiados cada 2 o 3 años una vez que diseñador se puede guiar para obtener buenos resultados en estos benchmarks estandard.

More Related