EL RENDIMIENTO EN LOS COMPUTADORES EJEMPLO1 Para entender mejor el concepto de rendimiento analizaremos el siguiente ejemplo, se trata de determinar cuál de los dos automóviles tiene mejor rendimiento. COCHE A B CONSUMO 4.5 7.1 VELOCIDAD 145 185 PLAZAS 4 7 C.V 90 110 PRECIO 13.400e 15.300e Como hemos comentado anteriormente, el rendimiento dependerá de la finalidad a la que se quiera destinar el vehículo y de unos parámetros, en este caso consumo, velocidad, etc : • Si se utiliza para transportar2personas diariamente teniendo en cuenta el coste, el rendimiento mejor será el del vehículo A. • Si el vehículo es requerido para recorrer 100 km y transportar 6 personas, el rendimiento mejor será el del vehículo B. • Si lo que prima es el tiempo en un determinado recorrido la elección acertada es el B. ------------------------------------------------------------------------------------------------------------------------------ EJEMPLO2 Dadas las características de un programa calcular el tiempo que tarda en ejecutarse el Programa y su rendimiento. Se sabe que la CPU trabaja a 1GHz. El programa se compone de 19 instrucciones de tres tipos: A, B y C y cada tipo de instrucción tiene un número de microinstrucciones diferente según indica la tabla: TIPO DE INSTRUCCION A B C INSTRUCCIONES/PROG 5 6 8 CPI 2 3 1 Tiempo de programa: 𝐶𝑃𝐼 = ∑ 𝑁° 𝑖𝑛𝑠𝑡𝑟𝑢𝑐.∗ 𝐶𝑃𝐼 (5 ∗ 2 + 6 ∗ 3 + 8 ∗ 1) = = 1.89 𝑁° 𝑖𝑛𝑠𝑡𝑟𝑢𝑐. 𝑇𝑂𝑇𝐴𝐿 19 𝑇𝑝𝑟𝑜𝑔 = 𝑁°𝑖𝑛𝑠𝑡𝑟𝑢𝑐.∗ 𝐶𝑃𝐼 ∗ 𝑇𝑐𝑝𝑢 = 19 ∗ 1.89 ∗ 1 = 36𝑛𝑠 1000 ∗ 106 Rendimiento: 𝑁 𝑝𝑟𝑜𝑔 = 1 1 = = 27777777.78𝑠 −1 𝑇𝑝𝑟𝑜𝑔 36𝑛𝑠 -----------------------------------------------------------------------------------------------------------------------------EJEMPLO3 Se dispone de un computador basado en un Pentium IVa2GHz.Se ejecuta un programa compuesto por 1000 instrucciones. Según los datos de la siguiente tabla, calcular el rendimiento: TIPO DE INSTRUCCION Lógico-Aritmética Salto incondicional Salto condicional Carga Almacenamiento INSTRUCCIÓN/PROG. 20% 10% 10%/10% 30% 20% CPI 4 3 7/5 3 4 Tiempo de programa: 𝐶𝑃𝐼 = (200 ∗ 4 + 100 ∗ 3 + 100 ∗ 7 + 100 ∗ 5 + 300 ∗ 3 + 200 ∗ 4) =4 1000 𝑇𝑝𝑟𝑜𝑔 = 𝑁°𝑖𝑛𝑠𝑡𝑟𝑢𝑐.∗ 𝐶𝑃𝐼 ∗ 𝑇𝑐𝑝𝑢 = 1000 ∗ 4 ∗ 1 = 2000𝑛𝑠 2000 ∗ 106 Rendimiento: 1 1 109 𝑁 𝑝𝑟𝑜𝑔 = = = = 2000𝑠 −1 𝑇𝑝𝑟𝑜𝑔 2000𝑛𝑠 2000 ∗ 106 -----------------------------------------------------------------------------------------------------------------------------EJEMPLO4 Tenemos un PentiumIV a 500 MHz y ejecuta un programa de 1000 instrucciones, según la siguiente tabla calcular el rendimiento. Si sustituimos el procesador por un Pentium IVa1GHz, ¿cómo varia el rendimiento?. TIPO DE INSTRUCCION Carga y Almacenamiento Lógica Aritmética Salto INSTRUCCIONES/PROG. 30% 50% 20$ CPI 3 4 2 𝑎) 𝐶𝑃𝐼 = 𝑁 𝑝𝑟𝑜𝑔 = (300 ∗ 3 + 500 ∗ 4 + 200 ∗ 2) = 3,3 1000 𝑓 𝑐𝑝𝑢 500 ∗ 106 = = 151515,15𝑠 −1 𝑁°𝑖𝑛𝑠𝑡𝑟𝑢𝑐.∗ 𝐶𝑃𝐼 1000 ∗ 3,3 b) El rendimiento se multiplicará por 2 ya que es directamente proporcional a la frecuencia. -----------------------------------------------------------------------------------------------------------------------------EJEMPLO5 Tenemos un PentiumIV a 2GHz y ejecuta un programa de 1000 instrucciones, según la siguiente tabla calcular el rendimiento. Para aumentar el rendimiento se añade posteriormente una caché que ahorra1ciclo en accesos di el dato está en la caché y si no está dura lo mismo. El porcentaje de acierto es del 90%. Calcular el rendimiento y la aceleración del rendimiento con respecto del anterior sin caché. TIPO DE INSTRUCCIÓN Lógica-Aritmética Llamadas a subrutinas Salto incondicional Salto condicional Carga Almacenamiento Mov 𝐶𝑃𝐼 = INSTRUCCIONES/PROG 300 100 100 50/50 100 100 200 300 ∗ 5 + 100 ∗ 9 + 100 ∗ 6 + 50 ∗ 9 + 50 ∗ 3 + 100 ∗ 2 + 100 ∗ 4 + 200 ∗ 2 = 3,3 1000 𝑁 sin 𝑐𝑎𝑐ℎ𝑒 = 𝐶𝑃𝐼 = 2 ∗ 109 = 434708,6𝑠 −1 1000 ∗ 4,6 . .100 ∗ 6 + 50 ∗ 9 + 50 ∗ 3 + 90 ∗ 1 + 10 ∗ 2 + 90 ∗ 3 + 10 ∗ 4 + 200 ∗ 2 = 4,42 1000 𝑁 con 𝑐𝑎𝑐ℎ𝑒 = 𝐶𝑃𝐼 = CPI 5 9 6 9/3 2 4 2 2 ∗ 109 = 452488𝑠 −1 1000 ∗ 4,2 300 ∗ 5 + 100 ∗ 9 + 100 ∗ 6 + 50 ∗ 9 + 50 ∗ 3 + 100 ∗ 2 + 100 ∗ 4 + 200 ∗ 2 = 3,3 1000 𝐴𝑁 = 𝑟𝑒𝑛𝑑. 𝑐𝑜𝑛𝑐𝑎𝑐ℎ𝑒 452488 = = 1,0407𝑠 −1 𝑟𝑒𝑛𝑑. 𝑠𝑖𝑛𝑐𝑎𝑐ℎ𝑒 434782 Hemos conseguido un aumento en el rendimiento de un1%al incorporar caché. -----------------------------------------------------------------------------------------------------------------------------EJEMPLO6 Se dispone de una máquina con dos clases de instrucciones, la instrucción 1 tendrá un CPI De 3 y la instrucción2un CPI de 2. Al medir el código para el mismo programa para dos compiladores diferentes se obtienen los siguientes datos. CODIGO Compilador A Compilador B INSTRUCCIÓN 1 6 4 INSTRUCCIÓN 2 2 2 Se supone que la frecuencia de reloj de la máquina es de 200MHz. ¿Qué secuencia de código se ejecuta con más rapidez de acuerdo con los MIPS? Realizar lo mismo de acuerdo al tiempo de ejecución. Explicar los resultados. Para calcular los MIPS utilizamos la ecuación: 𝑀𝐼𝑃𝑆 = 𝐶𝑃𝐼 = 𝐶𝑃𝐼 𝐴 = ∑𝑁 𝑖=1(𝐶𝑃𝐼 ∗ 𝐼) 𝑁°𝑖𝑛𝑠𝑡𝑟𝑢𝑐. 𝑇𝑂𝑇𝐴𝐿 (6 ∗ 3 + 2 ∗ 2) 22 = = 2.75 6+2 8 𝑀𝐼𝑃𝑆 𝐴 = 𝐶𝑃𝐼 𝐵 = 𝐹𝑐𝑝𝑢 𝐶𝑃𝐼 ∗ 106 200 ∗ 106 = 72.72 2.75 ∗ 106 (4 ∗ 3 + 2 ∗ 2) 16 = = 2.66 4+2 6 𝑀𝐼𝑃𝑆 𝐵 = 200 ∗ 106 = 75.18 2.66 ∗ 106 Por consiguiente, el código producido por el compilador B tiene una frecuencia en MIPS más elevada. Calcularemos ahora el tiempo de ejecución y para ello utilizaremos la formula: 𝑇 𝑝𝑟𝑜𝑔 = 𝑇 𝑝𝑟𝑜𝑔 𝐴 = 𝐶𝑃𝐼 ∗ 𝑁°𝑖𝑛𝑠𝑡𝑟𝑢𝑐 𝐹𝑐𝑝𝑢 2.75 ∗ (6 + 2) = 1,1𝑠 −7 200 ∗ 106 𝑇 𝑝𝑟𝑜𝑔 𝐵 = 2.66 ∗ (4 + 2) = 79,8𝑠 −7 200 ∗ 106 -----------------------------------------------------------------------------------------------------------------------------EJEMPLO7 Hallar los MFLOPS nativos y relativos que se obtienen al utilizar un computador que ejecuta un programa en 66 segundos y que consta de las siguientes instrucciones en coma flotante. OPERACION ADD SUB MUL DIV EXP SIN SQRT 𝑀𝐹𝐿𝑂𝑃𝑆 𝑛𝑎𝑡𝑖𝑣𝑜𝑠 = MILLONES DE INSTRUCCIONES 20 10 10 12 2 99 1 PESO 1 1 1 4 8 8 4 (20 + 10 + 10 + 12 + 2 + 99 + 1) ∗ 106 = 2,33 66 ∗ 106 (220 ∗ 1 + 10 ∗ 1 + 10 ∗ 1 + 12 ∗ 4 + 2 ∗ 8 + 99 ∗ 8 + 1 ∗ 4) ∗ 106 𝑀𝐹𝐿𝑂𝑃𝑆 𝑟𝑒𝑙𝑎𝑡𝑖𝑣𝑜𝑠 = 66 ∗ 106 𝑀𝐹𝐿𝑂𝑃𝑆 𝑟𝑒𝑙𝑎𝑡𝑖𝑣𝑜𝑠 = 13,64 El resultado de los Mflops relativos es mayor porque utiliza muchas instrucciones de alta complejidad.