Tarea 2 - EL PAPEL DEL RENDIMIENTO EN UNA CPU

5 de marzo de 2012

ARQUITECTURA DE COMPUTADORAS AVANZADA

El papel del Rendimiento en una CPU. Introducción.
El usuario de una computadora individual puede decir que ésta es más rápida cuando ejecuta un programa en menos tiempo, mientras que el director de un centro de cálculo puede decir que una computadora es más rápida cuando completa más tareas en una hora. El usuario de la computadora está interesado en reducir el tiempo de respuesta – el tiempo transcurrido entre el comienzo y el final de un evento - denominado también tiempo de ejecución o latencia. El director del centro de cálculo está interesado en incrementar la productividad (throughput) - la cantidad total de trabajo realizado en un tiempo determinado. Los siguientes cambios en un sistema de cómputo, ¿incrementan la productividad, decrementan el tiempo de respuesta, o ambas? 1. Reemplazar el procesador en una computadora con una versión más rápida. 2. Agregar un procesador a un sistema que utiliza múltiples procesadores para tareas separadas Cuando se comparan alternativas de diseño, con frecuencia se quiere relacionar el rendimiento de dos máquinas diferentes, por ejemplo X e Y. La frase «X es más rápida que Y» se utiliza para indicar que el tiempo de respuesta o tiempo de ejecución es inferior en X con respecto a Y para una tarea dada. En particular, «X es en n veces más rápida que Y» significa

El rendimiento mantiene una relación inversa al tiempo de ejecución, es decir, a un menor tiempo de ejecución se tiene un mayor rendimiento; y viceversa. Por lo que se mantiene la siguiente relación:

Oscar Eduardo Escobedo Vázquez

Página 1

En efecto. Cuando se quieren comparar diferentes procesadores es necesario establecer el criterio de medida que permita cuantificar los resultados de la comparación. En cambio el responsable de un centro de cálculo entenderá que A es mejor que B si es capaz de ejecutar mayor número de trabajos por unidad de tiempo. que posiblemente no coincida con el punto de vista del usuario de un programa de diseño gráfico. Fijar de la forma más objetiva posible los patrones o programas respecto a los cuales se mida el rendimiento de un procesador será pues una tarea polémica y siempre cuestionada por la comunidad de interesados en los resultados de la medida. la diferencia estriba en si medimos una tarea (tiempo de respuesta) o muchas (productividad).   Fáciles de entender. Pero en ambos casos la clave es el tiempo: el procesador que realiza la misma cantidad de trabajo en el menor tiempo posible será el más rápido. Mayor MIPS mayor rapidez de ejecución. Sin embargo aquí surge de nuevo y con más intensidad la diversidad de puntos de vista. aunque no siempre coincidan los puntos de vista de los diferentes observadores. El tiempo es la unidad de medida por excelencia cuando se comparan varios procesadores. El patrón de medida más significativo es el conjunto de programas reales que se ejecutan en los procesadores. el usuario de un procesador puede decir que el procesador A es mejor que el procesador B cuando A ejecuta su programa en menor tiempo que B. El primero se refiere a la métrica utilizada para cuantificar la comparación.EL PAPEL DEL RENDIMIENTO EN UNA CPU 5 de marzo de 2012 Mediciones del Rendimiento. Una forma de intentar indicar el rendimiento de un computador. Así. MIPS: Millones de Instrucciones por segundo. Oscar Eduardo Escobedo Vázquez Página 2 . Y el segundo a la carga de trabajo respecto a la que se realiza la comparación. MIPS  NI Freloj  6 t ejecucion * 10 CPI * 106 su relación con el tiempo de ejecución: t ejecucion  NI MIPS *10 6 Ventajas de la métrica de MIPS. el usuario de un editor de texto querrá medir el rendimiento de un procesador respecto a la eficiencia para ejecutar su programa.Tarea 2 . En este sentido existen dos conceptos que conviene aclarar previamente: la unidad de medida y el patrón de medida. El primero estará interesado en el tiempo de respuesta (response time) del procesador mientras que el segundo lo estará en la productividad (throughput).

MIPS relativos    tiempo referencia * MIPS referencia tiempo no estimado tiempo referencia: tiempo del programa en la maquina de referencia tiempo no estimado: tiempo de ejecución del programa en la máquina a medir MIPSreferencia: MIPS de la máquina de referencia Problema de encontrar una máquina de referencia (VAX-11/780 en los años ochenta) A medida que el software se desarrolla (modernos computadores) hay dificultades de acoplarlos a máquinas de referencia. ej.EL PAPEL DEL RENDIMIENTO EN UNA CPU 5 de marzo de 2012 Inconvenientes:     Los MIPS dependen del repertorio de Instrucciones. MFLOPS  nº de operaciones en p. Difícil comparar máquinas con diferente conjunto de instrucciones. para un compilador no sirve).F.F. flotante del programa tiempo de ejecucion * 10 6 Son aplicables a problemas que impliquen cálculo en P. el programa y la entrada. (p. Los MIPS no reflejan el tiempo de computación y pueden fallar al dar una visión del rendimiento del computador. No todas las operaciones en P. Los MIPS relativos no aportan demasiadas ventajas ya que hay que conocer el tiempo de ejecución. Los MIPS pueden variar inversamente al rendimiento. MFLOPS: Millones de operaciones en punto flotante por segundo. Oscar Eduardo Escobedo Vázquez Página 3 . Ejemplo de máquinas con hardware en punto flotante.   Si dispone baja los MIPS Si no dispone suben los MIPS. Se puede dar como medida los MIPS relativos a una máquina patrón. tienen la misma importancia.Tarea 2 . Los MIPS varían entre programas en un mismo computador.

O.O.9s 2:39 65%. Es el tiempo que el S. Tiempo de CPU utilizado por el S. incluyendo los accesos al disco. que tienen tiempos de respuesta que son independientes de la frecuencia de reloj del ordenador. Es el tiempo que la CPU utiliza para ejecutar el programa del usuario. las actividades de E/S y los gastos del S. El tiempo que tarda un programa en ser ejecutado por un computador puede ser difícil de medir.9seg = 103. el tiempo que utiliza el S.35 = 55. donde: Tiempo de CPU del usuario = 90. Tiempo de respuesta Es el tiempo necesario para completar una tarea. Tiempo de CPU utilizado por el S. Por ello es necesario diferenciar entre el tiempo que tarda una CPU en ejecutar el código de un programa.  La función time de Unix produce una salida de la forma: 90. El tiempo de ejecución de un programa lo dividiremos en las siguientes componentes: • • Tiempo de respuesta Tiempo de CPU A su vez.Tarea 2 . Tiempo de CPU Es el tiempo que tarda en ejecutarse un programa.65 = 103. mientras que el rendimiento de la CPU normalmente hace referencia al tiempo de CPU del usuario sobre un sistema no cargado.O. y el tiempo necesario para acceder a los dispositivos de E/S. El tiempo de respuesta se utiliza como medida del rendimiento del sistema (con el sistema no cargado). Oscar Eduardo Escobedo Vázquez Página 4 .6 Tiempo esperando operaciones de E/S y/o el tiempo ejecutando otras tareas 35% del tiempo de respuesta = 159 segundos*0. el tiempo de CPU lo dividimos en: • • Tiempo de CPU utilizado por el usuario.7 seg. Se divide en:  Tiempo de CPU utilizado por el usuario. Es el tiempo que percibe el usuario. emplea para realizar su gestión interna.7 segundos Tiempo de CPU utilizado por el sistema = 12.6 segundos.9 segundos Tiempo de CPU= 90. para realizar sus tareas.6 Tiempo de respuesta = 2 minutos 39 segundos =159 segundos Tiempo de CPU = 65% del tiempo de respuesta = 159 segundos*0. debido a los Sistemas Operativos Multitarea y a los dispositivos de E/S.+ 12.O. No se tiene en cuenta el tiempo de espera debido a la E/S o el tiempo utilizado para ejecutar otros programas. a la memoria.EL PAPEL DEL RENDIMIENTO EN UNA CPU 5 de marzo de 2012 Relación de medidas.O.7u 12. sin tener en cuenta el tiempo de espera debido a la E/S o el tiempo utilizado para ejecutar otros programas.

El usuario de un computador que ejecute día tras día un conjunto de programas es el ideal para evaluar. Herramientas CAD (Spice).EL PAPEL DEL RENDIMIENTO EN UNA CPU 5 de marzo de 2012 El tiempo de CPU de un programa podemos expresarlo como: Tiempo_de_CPU = Número_de_ciclos_de_reloj_de_la_ CPU • Tc donde Tc = Duración_del_ciclo_de_reloj Fc Tiempo _ de _ CPU = Número _ de _ ciclos _ de _ reloj _ de _ la _ CPU/Fc Elección de programas para evaluar el rendimiento. Estos núcleos sólo se utilizan para evaluar rendimiento. Software de tratamiento de textos. Criba de Eratóstenes. entre 10 y 100 líneas. Programas reducidos. “Livermore Loops” y “Linpack”. Oscar Eduardo Escobedo Vázquez Página 5 . con resultados conocidos antes de ejecutar.   Whetstone. Benchmarks Sintéticos. Hay diferentes niveles de programas usados para evaluar el rendimiento. Puzzle. Se extrae piezas claves de programas para evaluar el rendimieto. Programas reales: Compiladores C. Clasificación rápida (Quick sort). Estos tienen entradas. Dhrystone. Intentar determinar la frecuencia media de operaciones y operandos de un gran conjunto de programas.       Bechmarks reducidos. Núcleos (Kernels). salidas y opciones que actúan mientras se ejecute el programa. No son parte de programas reales y no los ejecutan los usuarios porque no dan nada.Tarea 2 .

No puede extenderse para evaluar el rendimiento de sistemas computadores en funcionamiento. son fáciles de standarizar. se pueden hacer a mano. pueden ejecutarse aunque no exista todavía compilador. DOS. Poder ejecutar todo programa real en cualquier máquina.EL PAPEL DEL RENDIMIENTO EN UNA CPU 5 de marzo de 2012 Peligro de dirigir la optimización de los computadores a dar buenos valores de Benchmarks sintéticos. La utilización de “Benchmarks” y “Núcleos” puede ser atractiva cuando se empieza con un diseño.    Standarización de Sistemas Operativos: UNIX.     son pequeños y fácilmente simulables. Existencia de software de distribución libre. Comparación y resumen del rendimiento. Oscar Eduardo Escobedo Vázquez Página 6 .Tarea 2 .