Download Rendimiento - Escuela de Ingeniería Electrónica
Document related concepts
no text concepts found
Transcript
Escuela de Ingeniería Electrónica Rendimiento Capítulo 4 EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 1 Rendimiento Escuela de Ingeniería Electrónica Rendimiento Rendimiento • Relación entre el producto o el resultado obtenido y los medios utilizados. EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 2 (Tomado del diccionario de la Real Academia Española) Escuela de Ingeniería Electrónica Concepto de Rendimiento • En un contexto empresarial, el concepto de rendimiento hace referencia al – resultado deseado efectivamente obtenido por cada unidad que realiza la actividad, donde el término unidad puede referirse a un individuo, un equipo, un departamento o una sección de una organización. Rendimiento • En agricultura y economía agraria, EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 3 – rendimiento de la tierra o rendimiento agrícola es la producción dividida entre la superficie. – La unidad de medida más utilizada es la tonelada por hectárea (Tm/Ha). – Un mayor rendimiento indica una mejor calidad de la tierra (por suelo, clima u otra característica física) o una explotación más intensa, en trabajo o en técnicas agrícolas (abonos, regadío, productos fito sanitarios, semillas seleccionadas – transgénicos - etc.). Escuela de Ingeniería Electrónica Concepto de rendimiento • En física y en el campo tecnológico, Rendimiento – El rendimiento o la eficiencia de un dispositivo, máquina, ciclo termodinámico, etc. Expresa el cociente entre: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 4 – La energía obtenida (energía útil) de su funcionamiento y la energía suministrada o consumida por la máquina o el proceso. – El trabajo obtenido (trabajo útil) de su funcionamiento y el trabajo suministrado o consumido por la máquina o el proceso. Escuela de Ingeniería Electrónica Rendimiento Rendimiento (Performance) EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 5 • Mide, reporta y resume • Tomar decisiones inteligentes • Es un concepto para comprender la motivación organizacional • ¿Porqué un hardware es mejor que otros para diferentes programas? • ¿Cuáles son los factores de hardware más importantes en el rendimiento del sistema? – Con su respuesta podríamos decir, necesitamos una máquina nueva o un nuevo sistema operativo • ¿Cómo el conjunto de instrucciones afecta el rendimiento de la máquina? ? Escuela de Ingeniería Electrónica ¿Cuál de estos aviones tiene mejor rendimiento? Rendimiento Avión EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 6 Pasajeros Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC-8-50 375 470 132 146 Rango (mi) Velocidad (mph) 4630 4150 4000 8720 610 610 1350 544 • ¿Qué tan rápido es el Concorde comparado con el 747? • ¿Qué tan grande es un 747 con un Douglas DC-8-50? • ¿Cuál sería el que tiene mayor rendimiento? Escuela de Ingeniería Electrónica Definición de rendimiento Boeing 777 Boeing 777 Boeing 747 Boeing 747 BAC/Sud Concorde BAC/Sud Concorde Douglas DC-8-50 Douglas DC8-50 Rendimiento 0 EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 7 100 200 300 400 0 500 Boeing 777 Boeing 777 Boeing 747 Boeing 747 BAC/Sud Concorde BAC/Sud Concorde Douglas DC-8-50 Douglas DC8-50 500 1000 Cruising Speed (mph) 4000 6000 8000 10000 Cruising Range (miles) Passenger Capacity 0 2000 1500 0 100000 200000 300000 400000 Passengers x mph Escuela de Ingeniería Electrónica Variables involucradas en el rendimiento de un computador Rendimiento • Tiempo de respuesta EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 8 – Tiempo que transcurre entre el inicio y la conclusión de una tarea, también conocido como tiempo de ejecución. • Throughtput o ancho de banda – Cantidad total de trabajo realizado en un tiempo dado. Escuela de Ingeniería Electrónica Rendimiento de un computador: tiempo, tiempo, tiempo • Tiempo de respuesta (latency) Es el tiempo que tarda una tarea en realizarse desde su inicio hasta el final. También se conoce como tiempo de ejecución. Rendimiento — ¿Cuánto tiempo tarda mi trabajo en correr? — ¿Cuánto tiempo se tarda en ejecutar mi trabajo? — ¿Cuánto tiempo debo esperar en la cola de la base de datos? EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 9 • Throughput Es la cantidad de trabajo realizado en un tiempo dado. — ¿Cuántos trabajos puede la máquina correr al mismo tiempo? — ¿Cuál es la razón de ejecución promedio? — ¿Qué tanto trabajo se ha realizado? • CONCLUSIÓN Si disminuimos el tiempo de respuesta mejoramos la cantidad de trabajo por unidad de tiempo Escuela de Ingeniería Electrónica Ejercicio • CASO 1 Si actualizamos la máquina con un nuevo procesador, ¿qué es lo que incrementamos? – Rendimiento • EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 10 Mejoramos el tiempo de respuesta por lo tanto mejoramos la cantidad de trabajo CASO 2 Si agregamos una nueva máquina a el laboratorio, ¿Qué es lo que incrementamos? – – No se mejora el tiempo de respuesta solo se mejorar la cantidad de trabajo. ¿Qué sucede si la demanda de trabajo aumenta? • • El trabajo de apila CONCLUSION – En los computadores reales, si se cambia el tiempo de ejecución o el throughput se afectan entre ellos. Son variables que se relacionan entre ellas. Escuela de Ingeniería Electrónica Rendimiento Rendimiento de un computador EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 11 • El tiempo es la medida del rendimiento del computador. • El computador que realiza la misma tarea en un tiempo menor es el más rápido. Escuela de Ingeniería Electrónica Tiempo de ejecución • Tiempo de ejecución de un programa se mide en segundos por programa • Elapsed Time, tiempo de respuesta Rendimiento – Es el tiempo que se tarda en realizar la tarea EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 12 • Cuenta todo (accesos a memoria y disco, I/O , etc.) • Un dato de mucha ayuda, pero no siempre se puede utilizar para comparar. En el caso de multitarea. • Tiempo de CPU • Es el tiempo que tarda el CPU en realizar una tarea • No se cuenta con I/O o el tiempo en la ejecución de otros programas. • Se puede dividir en: – Tiempo que el CPU invierte en el programa (tiempo de usuario de CPU) – Tiempo de CPU que invierte en el rendimiento de las tareas del sistema operativo (tiempo del sistema de CPU) Escuela de Ingeniería Electrónica Propósito Rendimiento • Nuestro propósito: Tiempo de CPU del usuario EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 13 – Tiempo invertido en la ejecución de las líneas de código que contiene mi programa Escuela de Ingeniería Electrónica Ejemplo Rendimiento • Algunos sistemas operativos suministran información referente al tiempo de CPU. EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 14 Escuela de Ingeniería Electrónica Rendimiento Ejemplo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 15 Escuela de Ingeniería Electrónica Ejemplo • El comando time –p (pipeline) en Linux ofrece la siguiente información Rendimiento • Usuario • Syst • Real EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 16 0.000 seg 0.010 seg 0.11 seg • El tiempo de respuesta es: 0.000 + 0.010 = 0.010 seg • El porcentaje del tiempo de respuesta es: – 0.01/0.11 = 0.0909 o sea un 9.0% • CONCLUSION: – Un 91% aproximadamente estuvo esperando por I/O, corriendo otros programas o ambos Escuela de Ingeniería Electrónica Definición de Rendimiento • Para algunos programas que corren en la máquina X, Rendimiento RendimientoX = 1 / Tiempo de ejecuciónX EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 17 • "X es “n” veces más rápida que Y" RendimientoX / RendimientoY = n Escuela de Ingeniería Electrónica EJEMPLO • Problema: Rendimiento – Máquina A corre un programa en 10 segundos. – Máquina B corre el mismo programa en 15 segundos. EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 18 • ¿Qué tan rápida es A con respecto a B? Escuela de Ingeniería Electrónica SOLUCIÓN • PARA LA MAQUINA A • Rendimiento de A Re nA 1 tiempo de ejecución 1 0.1 10 1 0.0666 15 Rendimiento • PARA LA MAQUINA B EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 19 Re nB 1 tiempo de ejecución • La relación de rendimiento será: 1 rendimient o de A tiempo de ejecución de A tiempo de ejecución de B 15 n 1.5 1 rendimient o de B tiempo de ejecución de A 10 tiempo de ejecución de B • O sea la máquina A es 1.5 veces más rápida que la máquina B. Escuela de Ingeniería Electrónica Hacer distinción entre Rendimiento • El rendimiento basado en el tiempo de respuesta (rendimiento del sistema) • El rendimiento basado en el tiempo de ejecución del CPU (rendimiento del CPU) EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 20 Escuela de Ingeniería Electrónica Rendimiento Reloj EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 21 • Los eventos en el procesador ocurren bajo la sincronización del reloj. • Los intervalos de tiempo en que ocurren los eventos se llaman ciclos de reloj (pulsos, pulsos de reloj, reloj, ciclos) • Con el término períodos de reloj nos referimos a: – El tiempo para un ciclo completo. Por ejemplo 20 segundos – La razón de reloj. Por ejemplo 500 MHz, el cual es el inverso del período de reloj Escuela de Ingeniería Electrónica Ciclos de reloj • En lugar de utilizar segundos para los tiempos de ejecución, utilizamos ciclos. Rendimiento segundos segundos ciclos programa programa ciclo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 22 • Los pulsos de reloj indican cuando se deben realizar las actividades: • time Tiempo de ciclo = tiempo entre pulsos = segundos por ciclo • Razón de reloj (frecuencia) = ciclos por segundo (1 Hz. = 1 ciclo/segundo) • Un reloj de 200 Mhz. Tiene un tiempo de ciclo de: 1 109 5 nano segundos 200106 Escuela de Ingeniería Electrónica Mediciones • Recuerde para medir el rendimiento es necesario conocer el tiempo de ejecución del CPU • Los siguientes modelos relacionan el CPU con los pulsos de reloj Rendimiento de ejecución • tiempo O sea EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 23 de un programa ciclos de reloj del CPU para correr el programa * el tiempo de ciclo de reloj tiempo de ejecución de un programa ciclos de reloj del CPU para el programa razón de reloj • CONCLUSIÓN: – Los ingenieros en diseño de hardware pueden mejorar el rendimiento reduciendo el tiempo de ciclo de reloj o el número de ciclos de reloj requeridos por el programa. Las técnicas para decrementar el número de ciclos de reloj incrementan el tiempo de ciclo del reloj. Escuela de Ingeniería Electrónica Rendimiento Ejemplo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 24 • Nuestro programa favorito corre en 10 segundos en el computador A, el cual tiene un reloj de 400 MHz. Estamos tratando de ayudar a un diseñador de computadoras a desarrollar una máquina B, que corra el programa en 6 segundos. El diseñador puede utilizar una nueva tecnología para incrementar la razón de reloj, pero nos informó que esto podría afectar el resto del diseño del CPU, haciendo que la máquina B requiera de 1.2 veces más que los ciclos de reloj de la máquina A para el mismo programa. ¿Qué relación de reloj debemos decirle al diseñador que utilice? Escuela de Ingeniería Electrónica SOLUCIÓN T ejecución CPU CICLOS RAZON DE RELOJ • PARA EL PROGRAMA A Rendimiento 10 Seg EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 25 CPU CICLOS CPU 10 seg * 400 *10 6 4000 *10 6 CICLOS 400 MHz • PARA EL PROGRAMA B – Como la máquina B requiere 1.2 veces ciclos de reloj más que la máquina A entonces: 6 Seg 1.2 (4000 *10 6 ) 1.2 (4000 *10 6 ) XMHz 800 MHz X MHz 6 seg • CONCLUSIÓN – La máquina B debe correr al doble de la razón de reloj de la máquina A Escuela de Ingeniería Electrónica ¿Cómo se mejora el rendimiento? segundos ciclos segundos programa programa ciclos Rendimiento • Entonces para mejorar el rendimiento (conservando el resto igual) se podría : EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 26 _______ El número de ciclos requeridos por el programa, o _______ El tiempo de ciclo del reloj _______ La razón del reloj. Escuela de Ingeniería Electrónica ¿Cuántos ciclos requiere el programa? EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 27 ... VI Instrucción V Instrucción IV Instrucción III Instrucción II Instrucción I Instrucción Rendimiento • Si asumimos que: # de ciclos = # de instrucciones tiempo Este supuesto es incorrecto. Las instrucciones tienen tiempos diferentes en diferentes máquinas. PORQUE: Recuerde estas son líneas de instrucciones Escuela de Ingeniería Electrónica Diferentes número de ciclos para diferentes instrucciones Rendimiento tiempo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 28 • La multiplicación toma más tiempo que la suma. • Las operaciones en punto flotante toman más tiempo que las enteras. • El acceso a memoria que el acceso a registros • ASPECTO IMPORTANTE: • Cambiar el tiempo de ciclo algunas veces cambia el número de ciclos requeridos para varias instrucciones. Escuela de Ingeniería Electrónica Ahora que entendemos los ciclos • Un programa dado requiere – Un número de instrucciones (instrucciones máquina) – Algún número de ciclos – Algún número de segundos Rendimiento • EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 29 Tenemos un vocabulario que nos relaciona estas cantidades: – Tiempo de ciclo (segundos por ciclo) – Relación de reloj (ciclos por segundo) – CPI (ciclos por instrucción) • Es el número de promedio de ciclos de reloj que cada instrucción tarda en ejecutarse • Las aplicaciones intensivas en punto flotante podrían tener un alto CPI – MIPS (Millions of Instructions Per Second) para un programa esto podría ser alto si se utilizan instrucciones simples Escuela de Ingeniería Electrónica Rendimiento Rendimiento • El rendimiento se determina utilizando el tiempo de ejecución • ¿Cualquiera de las otras variables igual rendimiento? EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 30 – – – – – # de ciclos para ejecutar el programa? # de instrucciones en el programa? # de ciclos por segundo? # promedio de ciclos por instrucción? # promedio de instrucciones por segundo? • Error: pensar que una variable es significativa en el rendimiento cuando en realidad no lo es. Escuela de Ingeniería Electrónica CPI Ejemplo • Suponga que tenemos dos implementaciones de la misma arquitectura del conjunto de instrucciones (ISA). Para un programa, Máquina A tiene un tiempo de ciclo de reloj de 1 ns. y un CPI de 2.0 Rendimiento Máquina B tiene un tiempo de ciclo de reloj de 2 ns. y un CPI de 1.2 ¿Cuál máquina es más rápida ejecutando ese programa, y que tan rápida? • EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 31 Si las dos máquina tienen el mismo ISA, ¿Cuál de las variables (relación de reloj, CIP, tiempo de ejecución, # de instrucciones, MIPS) podrían ser siempre identicas? Escuela de Ingeniería Electrónica Rendimiento SOLUCION EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 32 • • • • MAQUINA A CPI=2.0 CLOCKSCPU=2.0*I CPUTIME=2.0*I*1 CPUTIME=2.0*I MAQUINA B •CPI=1.2 •CLOCKSCPU=1.2*I •CPUTIME=1.2*I*2 •CPUTIME=2.4*I rendimient o CPU A tiempo ejecución B 2.4 * I 1.2 rendimient o CPU tiempo de ejecución A 2.0 * I B CONCLUSION: La máquina A es 1.2 veces más rápida que la B Escuela de Ingeniería Electrónica Rendimiento # de instrucciones (Ejemplo) EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 33 • Un diseñador de un compilador trata de decidir entre dos secuencias de código para una máquina en particular. Basados en la la implementación del hardware, hay tres diferentes tipos de instrucciones: Clase A, Clase B, Clase C y requieren de un, dos y tres ciclos respectivamente. • La primera secuencia de código tiene 5 instrucciones: 2 de la Clase A, 1 de la B y 2 de la C. • La segunda secuencia tiene 6 instrucciones: 4 de la Clase A, 1 de la B y 1 de la C. • ¿Cuál secuencia es más rápida? ¿Qué tan rápida? • ¿Cuál es el CPI para cada una de las secuencias? Escuela de Ingeniería Electrónica SOLUCIÓN SECUENCIA 1 Rendimiento CPUciclos reloj =2*1+1*2+2*3=10 ciclos EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 34 CPI CPU ciclosrelo j # instruccio nes CPI 10 ciclos 2 5 instruccio nes SECUENCIA 2 CPUciclos reloj =4*1+1*2+1*3=9 ciclos CPI CPI CPU ciclosrelo j # instruccio nes 9 ciclos 1.5 6 instruccio nes CONCLUSION Este ejemplo muestra un peligro si solo se utiliza un factor (número de instrucciones) para el cálculo del rendimiento. Cuando se comparan dos máquinas, debe tomarse en cuenta los tres componentes, los cuales se combinan para calcular el tiempo de ejecución. Si alguno de los factores son idénticos, como la razón de reloj (como en el ejemplo anterior), el rendimiento puede determinarse comparando los factores no idénticos. Como el CPI varía por la mezcla de instrucciones el número de instrucciones y el CPI deben compararse, aunque las razones de reloj sean idénticas. Escuela de Ingeniería Electrónica ECUACION BASICA DEL RENDIMIENTO Rendimiento Tiempo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 35 CPU # Instruccio nes * CPI * Tiempo de ciclo del reloj tiempo CPU # de Instruccio nes * CPI razón de reloj Escuela de Ingeniería Electrónica COMPONENTES Rendimiento COMPONENTES DEL RENDIMIENTO EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 36 UNIDADES Tiempo de CPU en ejecución de un programa Segundos por programa Número de instrucciones Instrucciones ejecutadas por el programa CPI (Ciclos de reloj por Instrucción) Valor promedio de los ciclos de reloj por instrucción Tiempo de ciclo del reloj Segundos por ciclo de reloj Escuela de Ingeniería Electrónica RESUMEN Rendimiento tiempo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 37 instruccio nes ciclos de reloj segundos * * programas instruccio nes ciclos de reloj • La única medida en el rendimiento es el tiempo. • Si se reduce el conjunto de instrucciones nos conduciría a una arquitectura con un tiempo de ciclo menor que nos mejorará la cantidad de instrucciones Escuela de Ingeniería Electrónica Rendimiento ¿Cómo se pueden determinar los valores de estos factores en la ecuación general del rendimiento? EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 38 • Se puede medir el tiempo de ejecución de CPU de un programa. • El tiempo de ciclo del reloj, el cual aparece en las hojas de datos de la máquina • El número de instrucciones y CPI pueden ser un poco difíciles de obtener. • Se puede utilizar un programa para medir la cantidad de instrucciones • Recuerde que la cantidad de instrucciones depende de la arquitectura de la máquina. Escuela de Ingeniería Electrónica Cálculo de los ciclos de reloj • Los ciclos de reloj del CPU se pueden calcular como: Rendimiento CPU ciclos EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 39 de reloj (CPI * C ) n i i i 1 • Donde : Ci = es el número de instrucciones ejecutadas de la clase i CPIi = número promedio de ciclos por el tipo de instrucción n = cantidad de tipos de instrucciones • • RECUERDE El CPI de un programa depende del número de ciclos de cada tipo de instrucción y de la frecuencia de cada tipo de instrucción en el programa que se ejecuta. Escuela de Ingeniería Electrónica Benchmarks • El rendimiento es mejor determinarlo corriendo una aplicación real. – Utilice programas típicos para sobre carga esperada. – Una clase de aplicaciones esperada como: compiladores/editores, aplicaciones científicas, gráficos, etc. Rendimiento • Pequeños rendimientos EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 40 – Para arquitectos e ingenieros – Fácil de estandarizar – Puede ser un abuso • SPEC (System Performance Evaluation Cooperative) – Las compañías tienen gran credibilidad en un conjunto de programas reales y de entradas. – Puede seguir siendo un abuso (otra pulga de Intel) – Es un indicador de rendimiento y tecnología de compiladores. Escuela de Ingeniería Electrónica Rendimiento ¿Qué es SPEC? EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 41 • SPEC es el acrónico de “Standard Performance Evaluation Corporation” • Una organización sin fines de lucro compuesta por fabricantes de computadores, integradores de sistemas, universidades, centros de investigación, editoriales y consultores con el objetivo de establecer, mantener y estandarizar un conjunto de pruebas para los computadores. • Ningún conjunto de pruebas puede caracterizar el rendimiento completo del sistema. • SPEC cree que la comunidad de usuarios se puede ver beneficiada de una serie objetiva de pruebas que pueden servir como punto de referencia. Escuela de Ingeniería Electrónica ¿Qué mide SPEC CPU2000? • SPEC CPU2000 se concentra en medir el rendimiento intensivo de los computadores, las pruebas se especializan en el rendimiento de: – El procesador del computador (CPU), – La arquitectura de la memoria – El compilador Rendimiento • EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 42 • Es importante recordar que la contribución de los dos últimos componentes, pues el rendimiento es más que solo el microprocesador. SPEC CPU2000 esta compuesto por dos componentes que se especializan en dos tipos diferentes para el cálculo intensivo del rendimiento del computador: – CINT2000 para medir y comparar el rendimiento entero e intensivo del computador. – CFP2000 para medir y comparar el rendimiento intensivo en punto flotante del computador. Escuela de Ingeniería Electrónica SPEC ‘95 Rendimiento Benchmark EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 43 go m88ksim gcc compress li ijpeg perl vortex tomcatv swim su2cor hydro2d mgrid applu trub3d apsi fpppp wave5 Description Artificial intelligence; plays the game of Go Motorola 88k chip simulator; runs test program The Gnu C compiler generating SPARC code Compresses and decompresses file in memory Lisp interpreter Graphic compression and decompression Manipulates strings and prime numbers in the special-purpose programming language Perl A database program A mesh generation program Shallow water model with 513 x 513 grid quantum physics; Monte Carlo simulation Astrophysics; Hydrodynamic Naiver Stokes equations Multigrid solver in 3-D potential field Parabolic/elliptic partial differential equations Simulates isotropic, homogeneous turbulence in a cube Solves problems regarding temperature, wind velocity, and distribution of pollutant Quantum chemistry Plasma physics; electromagnetic particle simulation Escuela de Ingeniería Electrónica Pruebas Rendimiento • Para procesadores • Ejemplo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 44 Escuela de Ingeniería Electrónica Ley de Amdahl tiempo ejecución antes mejora tiempo ejec sin afectar tiempo ejecución afectado cantidad de mejoras Rendimiento • EJEMPLO: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 45 – Suponga que un programa corre en 100 segundos en una máquina con responsabilidades de multiplicación durante 80 segundos de ese tiempo. – ¿Cuánto debemos de mejorar la velocidad de multiplicación si queremos que el programa corra cuatro veces más rápido? Escuela de Ingeniería Electrónica Ejemplo Rendimiento • Suponga que reforzamos la máquina implementando instrucciones de punto flotante que hacen la máquina cinco veces más rápida. Si el tiempo de ejecución de algunas pruebas antes de la implementación del punto flotante es de 10 segundos, ¿Cuál sería la velocidad final si la mitad de eso 10 segundos se invierten en la ejecución de instrucciones de punto flotante?. EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 46 • Andamos en la búsqueda de una prueba que muestre la unidad de punto flotante de la sección anterior, y se quieren realizar pruebas para mostrar su velocidad de 3. una prueba que se esta considerando corre por 100 segundos con el hardware de la máquina vieja. ¿Cuánto del tiempo de ejecución deben de consumir las instrucciones de punto flotante, en este programa para cumplir con las especificaciones? Escuela de Ingeniería Electrónica MIPS • • • • Rendimiento • EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 47 • • • • Es el acrónico para million instructions per second. Es un viejo método para medir la velocidad y la potencia de un computador. MIPS mide el número de instrucciones máquina que un computador puede ejecutar en un segundo. No hay un método estándar para medir los MIPS ya que hay instrucciones que requieren más o menos tiempo que otras para ser ejecutadas. Adicionalmente, MIPS se refiere solo a la velocidad del procesador, mientras que las aplicaciones reales son limitadas por otros factores como la velocidad de los periféricos de entrada salida. Una máquina con un alto MIPS, no necesariamente corre una aplicación particular más rápido que una máquina con un bajo MIPS. Por estas razones las mediciones MIPS se dejaron de utilizar. Olvidándose de estos problemas las mediciones MIPS nos dan una idea general de la velocidad del computador. El computador IBM PC/XT (basado en el procesador (8088/86), presenta un MIPS de ¼, mientras que un PC basado en Pentium corre a más de 100 MIPS. Escuela de Ingeniería Electrónica MIPS COMO METODO DE MEDICION Rendimiento número de instruccio nes MIPS tiempo de ejecución * 10 6 EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 48 • Es una relación ejecución de instrucciones. • Especifica el rendimiento en forma inversa al tiempo de ejecución. • Las máquinas rápidas tienen un alto MIPS. • Los problemas son: – No toma en cuenta las capacidades de las instrucciones. (No se pueden comparar máquinas con diferente conjunto de instrucciones) – El valor del MIPS varía entre programas en el mismo computador. (No hay una calificación para todos los programas) – MIPS puede variar inversamente con el rendimiento. Escuela de Ingeniería Electrónica Rendimiento Ejemplo EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 49 • Dos compiladores diferentes se están probando en una máquina de 100 MHz. Con tres tipos diferentes de instrucciones: Clase A, Clase B y Clase C, las cuales requieren de uno, dos y tres ciclos respectivamente. Ambos compiladores son utilizados para generar código para una gran pieza de software. • El código del primer compilador utiliza 5 millones de instrucciones clase A, 1 millón de la clase B, y un millón de la clase C. • El código del segundo compilador utiliza 10 millones de instrucciones de la clase A, 1 millón de la clase B y 1 millón de la clase C. • ¿Cuál secuencia es más rápida de acuerdo a MIPS? • ¿Cuál secuencia podría ser más rápida de acuerdo al tiempo de ejecución? Escuela de Ingeniería Electrónica COMPILADOR 1 • Utilizando el modelo de ciclos de reloj del CPU CPU CICLOS DE RELOJ= (5*1+1*2+1*3)*109=10*109 Rendimiento • El tiempo de ejecución para el compilador es: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 50 Tiempo ejecución 10 * 10 9 20 segundos 6 500 * 10 • Aplicando el modelo MIPS: (5 1 1) * 10 9 MIPS 350 6 20 * 10 Escuela de Ingeniería Electrónica COMPILADOR 2 • Utilizando el modelo de ciclos de reloj del CPU CPU CICLOS DE RELOJ= (10*1+1*2+1*3)*109=15*109 Rendimiento • El tiempo de ejecución para el compilador es: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 51 Tiempo ejecución 15 * 10 9 30 segundos 6 500 * 10 • Aplicando el modelo MIPS: (10 1 1) * 10 9 MIPS 400 6 30 * 10 Escuela de Ingeniería Electrónica Rendimiento CONCLUSION EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 52 • El código del compilador 2 tiene un MIPS mayor. • El código del compilador 1 corre más rápido. • Este es un ejemplo donde el método MIPS nos da una visión equivocada de la máquina, aunque se comparen dos versiones del mismo programa en la misma máquina. Escuela de Ingeniería Electrónica Recuerde • El rendimiento es específico para programas particulares – El tiempo total de ejecución es un resumen consistente del rendimiento. • Para una arquitectura dada el incremento en el rendimiento está dado Rendimiento por: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Página 53 – Incrementos en la razón de reloj (sin efectos colaterales en el CPI) – Mejoras en la organización del procesador para lograr un CPI bajo. – El compilador mejora bajos CPI y o cuenta de instrucciones. • Error: tener la expectativa en las mejoras de un aspecto del rendimiento de la máquina creyendo que afecta el rendimiento total