ARQUITECTURA DE COMPUTADORES - PERFORMANCE DESEMPEÑO TEMAS PRELIMINARES DEFINICIONES TIEMPO DE EJECUCION PERFORMANCE INCREMENTO EN EL RENDIMIENTO LEY DE AMDAHL CICLOS DE RELOJ – TIEMPO DE PROGRAMA TCPU = CPU TIME MIPS ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE DEFINICIONES EXECUTION TIME: Tiempo transcurrido desde que inicia hasta que termina una determinada tarea THROUGHPUT Cantidad total de tareas realizadas ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE “El computador A es más rápido que el computador B” Como se determina el rendimiento de un computador para: El usuario de un computador El director de una sala de computo ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE RESPUESTAS El usuario de un computador: “El computador más rápido corre un programa en menos tiempo” (EXECUTION TIME) El director de una sala de computo: “El computador mas rápido completa más trabajos en una hora”. (THROUGHPUT) ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE EJEMPLO !!! De las siguientes modificaciones a un sistema, se obtiene un mayor número de trabajos hechos, un tiempo de respuesta menor para un solo trabajo, o las dos: Ciclo de reloj mas rápido Varios procesadores para tareas separadas Procesamiento paralelo ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE RESPUESTAS AL EJEMPLO Ciclo de reloj mas rápido: las dos Varios procesadores para tareas separadas: mayor numero de trabajos hechos. Procesamiento paralelo: las dos ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE TIEMPO DE EJECUCION Algunas veces es mejor describir la relación de desempeño de dos máquinas en porcentajes: Por ejemplo, “X es n% más rápido que Y” significa: ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE Como el tiempo de ejecución es inversamente proporcional a rendimiento: ARQUITECTURA DE COMPUTADORES - PERFORMANCE
INCREMENTO EN EL RENDIMIENTO El incremento en rendimiento entre X y Y es n: ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE EJEMPLO Si el computador A corre un programa en 10 segundos y B corre el mismo programa en 15 segundos, indique cual frase es verdadera: A es 50% mas rápido que B A es 33% mas rápido que B ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE RESPUESTA Luego, A es 50% más rápido que B ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE LEY DE AMDAHL En ocasiones la mejora del desempeño es parcial, o por una fracción de tiempo. Donde: Es la porción de tiempo que usa la mejora ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE SPEEDUP Donde el tiempo de ejecución total se refiere al tiempo de ejecución de la tarea completamente ejecutado por una máquina con características A. ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE SPEEDUP Luego: ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE EJEMPLO Se considera una mejora que corre 10 veces más rápido que la máquina original, pero sólo se usa 40% del tiempo. Cual es la ganancia cuando se incorpora la mejora? ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE LEY DE AMDAHL- RESUMEN La ley de Amdahl sirve como guía para saber que tanto una modificación mejora el rendimiento y como distribuir recursos para obtener costo/ desempeño. ARQUITECTURA DE COMPUTADORES - PERFORMANCE
MEJORANDO RENDIMIENTO Tiempo de Respuesta Productividad (Número de Tareas en t seg.) Para aumentar rendimiento hay que disminuir el tiempo de respuesta o el tiempo de ejecución Rendimiento X = Tiempo de ejecución X 1 ARQUITECTURA DE COMPUTADORES - PERFORMANCE
CICLOS DE RELOJ – TIEMPO DE PROGRAMA Tc Instrucción PROGRAMA CICLOS DE RELOJ ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE TCPU = CPU TIME Tcpu= Tiempo de ejecución de la CPU en un programa Tcpu= (Ciclos de reloj para el programa) X (Duración del ciclo) ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE EJEMPLO TCPU Un programa corre en 10 s en un computador A con un reloj de 100Mhz. Que reloj se necesita en un computador B para correr el mismo programa en 6 s si correr este programa en B necesita 1.2 veces el numero de ciclos de A? ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE RENDIMIENTO CPI= Número de Ciclos de reloj por instrucción Ciclos de reloj = (# instrucciones) x CPI promedio TCPU = (# instrucciones) x CPI Promedio fc fc Tecnología Hardware y Diseño CPI Diseño #Instr. Tecnología Compiladores ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE MIPS Métricas para el Rendimiento MIPS =___NI___ = _ fc__ TCPUx106 CPIx106 No depende del repertorio de instrucciones Varia entre programas sobre el mismo computador Puede variar inversamente con el rendimiento MFLOPS = #oper en punto flotante Tiempo de ejecución x106 ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE EJEMPLO - CPI Se tienen dos implementaciones de una arquitectura con el mismo conjunto de instrucciones. El computador A tiene un tiempo de ciclo de reloj de 10 ns y un CPI de 2.0 para un programa. El computador B tiene un tiempo de ciclo de reloj de 20ns y un CPI de 1.2 para el mismo programa. Cual computador es más rápido? ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE SOLUCION Cada máquina ejecuta el mismo número de instrucciones para este programa, que llamaremos I. El número de ciclos de reloj se calcula como: Ciclos de reloj = I * 2.0 A Ciclos de reloj = I * 1.2 B = Tiempo CPU I*2.0*10ns Tiempo CPU = I*1.2*20ns A B Computador A es más rápido ARQUITECTURA DE COMPUTADORES - PERFORMANCE
EJEMPLO INSTRUCTION CLASS CPI FOR THIS INSTRUCTION CLASS A 1 B 2 C 3 Usar MIPS para determinar que programa es mejor que otro y calcular el TCPU Sea un computador de 150Mhz con tres tipos de instrucciones y medidas de CPI por instrucción como se muestran en la tabla. Se obtuvo la siguiente tabla para dos compiladores CODE FROM INSTRUCTION COUNT (IN MILLIONS) FOR EACH INSTRUCTION CLASS A B C COMPILER 1 5 2 1 COMPILER 2 3 ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE SOLUCION CPU clock cycles = SUMATORIA (CPIi x Ci) CPU clock cycles (A) = [ (5*1+2*2+1*3) E6 ]=12 E6 CPU clock cycles (B) = [ (2*1+3*2+1*3) E6 ]=11 E6 EXECUTION TIME CPU CLOCK CYCLES / FRECUENCIA Execution Time (A) = 12 E6 / 150 E 6 = 0.0800 secs Execution Time (B) = 11 E6 / 150 E 6 = 0.0733 secs MIPS= INTRUCTION COUNT / EXECUTION TIEM X E6 MIPS (A) = [ (5*1+2*2+1*3) E6 ] / 0.0800 E6= 150 MIPS (B) = [ (2*1+3*2+1*3) E6 ] / 0.0733 E6=150.068 ARQUITECTURA DE COMPUTADORES - PERFORMANCE
SOFTWARE PARA LA EVALUACION DEL DESEMPEÑO Programas / Aplicaciones reales. Toys Programs Synthetic benchmarks: programas artificiales que tratan de concordar con un gran conjunto de programas (Dhrystone y Whetstone ) Kernel benchmarks: son pequeñps, time-intensive pieces (Livermore Loops , Linpack ) Benchmarks are programs chosen to measure the performance of a computer system SPEC (System Performance Evaluation Cooperative) Benchmarks are more realistic. ARQUITECTURA DE COMPUTADORES - PERFORMANCE
ARQUITECTURA DE COMPUTADORES - PERFORMANCE REVISAR Problemas de las diferentes formas de medición del rendimiento. ARQUITECTURA DE COMPUTADORES - PERFORMANCE