Práctica 1 - Rendimiento*

Anuncio
Práctica 1 - Rendimiento*
Organización del Computador 1
Verano 2014
Subconjunto mı́nimo de ejercicios recomendado: 1 a 11
Ejercicio 1 Considere tres procesadores distintos P 1, P 2 y P 3 que ejecutan el mismo set de
instrucciones con las frecuencias de reloj y ciclos por instrucción (CPI) dados en la siguiente
tabla:
a.
b.
Procesador
P1
P2
P3
P1
P2
P3
Frecuencia de reloj
3 GHz
2.5 GHz
4 GHz
2 GHz
3 GHz
4 GHz
CPI
1.5
1.0
2.2
1.2
0.8
2.0
a) ¿Cuál de todos los procesadores tiene mayor performance expresada en instrucciones por
segundo?
b) Si cada uno de los procesadores ejecuta un programa que demora 10 segundos, dar la
cantidad de ciclos y la cantidad de instrucciones de dicho programa.
c) Al intentar reducir el tiempo en un 30 % se produce un incremento del 20 % en los ciclos
por instrucción de cada procesador ¿Qué frecuencia de reloj será necesaria en cada caso
para lograr dicha mejora?
Ejercicio 2 Dada la siguiente información:
Procesador Frecuencia de reloj N◦ instrucciones
P1
3 GHz
20.00E+09
a.
P2
2.5 GHz
30.00E+09
P3
4 GHz
90.00E+09
P1
2 GHz
20.00E+09
b.
P2
3 GHz
30.00E+09
P3
4 GHz
25.00E+09
Tiempo
7s
10s
9s
5s
8s
7s
a) Dar la cantidad de instrucciones por ciclo (IPC) para cada procesador.
b) Dar la frecuencia de reloj para P 2 que reduce el tiempo de ejecución al de P 1.
c) ¿Cuál es la cantidad de instrucciones que reduce el tiempo de ejecución de P 2 al de P 3?
Ejercicio 3 Considere dos implementaciones distintas de la misma arquitectura. La misma
posee cuatro clases de instrucciones: A, B, C y D. A continuación se muestran las frecuencias
*
Los ejercicios han sido tomados del libro “Computer Organization and Design. The Hardware / Software
Interface” 4ta edición.
1
de reloj y los ciclos por instrucción (CPI) de cada implementación:
Frecuencia de reloj CPI clase A CPI clase B CPI clase C
P1
2.5 GHz
1
2
3
a.
P2
3 GHz
2
2
2
P1
2.5 GHz
2
1.5
2
b.
P2
3 GHz
1
2
1
CPI clase D
3
2
1
1
a) Dado un programa con 106 instrucciones divididas en clases de la siguiente forma: 10 % de
clase A, 20 % de clase B, 50 % de clase C y 20 % de clase D ¿Cuál de las implementaciones
es la más rápida?
b) ¿Cuál es el CPI global para cada implementación?
Ejercicio 4 La siguiente tabla muestra la cantidad de instrucciones de un programa:
a.
b.
Arit.
650
750
Store
100
250
Load
600
500
Salto
50
500
Total
1400
2000
a) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 5 ciclos y
los altos toma 2 ciclos ¿Cuál es el tiempo de ejecución del programa en un procesador de
2 GHz?
b) ¿Cuál es el CPI del programa?
c) Si la cantidad de instrucciones de tipo load puede reducirse a la mitad ¿Cuál es la mejora
en el rendimiento obtenida y cuál es el nuevo CPI del programa?
Ejercicio 5 Considere dos implementaciones diferentes , P 1 y P 2, del mismo set de instrucciones. Dicho set de instrucciones tiene cinco clases de instrucciones (A, B, C, D y E). La
frecuencia de reloj y el CPI de cada clase está dado por la siguiente tabla:
Frecuencia de reloj CPI clase A CPI clase B CPI clase C CPI clase D CPI
P1
2.0 GHz
1
2
3
4
a.
P2
4.0 GHz
2
2
2
4
P1
2.0 GHz
1
1
2
3
b.
P2
3.0 GHz
1
2
3
4
a) Asumiendo que la performance de pico se define como la frecuencia más rápida a la que una
computadora puede ejecutar cualquier secuencia de instrucciones ¿Cuál es la performance
de pico de P 1 y P 2 expresada en instrucciones por segundo?
b) Si el número de instrucciones ejecutadas por un cierto programa está dividida equitativamente entre las distintas clases excepto por las instrucciones de clase A, que son el doble
de frecuentes que cada una de las otras ¿Qué computadora es más rápida? ¿Cuánto más
rápida?
c) Si el número de instrucciones ejecutadas por un cierto programa está dividida equitativamente entre las distintas clases excepto por las instrucciones de clase E, que son el doble
de frecuentes que cada una de las otras ¿Qué computadora es más rápida? ¿Cuánto más
rápida?
Ejercicio 6 La siguiente tabla muestra la partición en clases de instrucciones de dos programas distintos:
Arit. Store Load Salto Total
a. 600
600
200
50
1450
b. 900
500
100
200
1700
2
clase E
3
4
2
3
a) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 10 ciclos y
los saltos toman 3 ciclos dar el tiempo de ejecución de cada programa en una computadora
MIPS de 3.0 GHz.
b) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 2 ciclos y
los saltos toman 3 ciclos dar el tiempo de ejecución de cada programa en una computadora
MIPS de 3.0 GHz.
c) Asumiendo que las instrucciones aritméticas toman 1 ciclo, load y store toman 2 ciclos y
los saltos toman 3 ciclos ¿Cuál es la mejora en la performance que se obtiene al reducir el
número de instrucciones aritméticas a la mitad?
Ejercicio 7 Los compiladores pueden tener un impacto muy profundo en la performance
de una aplicación en un cierto procesador. En la siguiente tabla se muestra la cantidad de
instrucciones y el tiempo de ejecución de dos programas distintos usando dos compiladores
distintos (sobre la misma computadora)
Compilador A
Compilador B
N◦ inst.
Tiempo de ejecución
N◦ inst.
Tiempo de ejecución
a. 1.00E+09
1.8s
1.20E+09
1.8s
b. 1.00E+09
1.1s
1.20E+09
1.5s
a) Calcule los ciclos por instrucción promedio (CPI) para cada programa sabiendo que el
ciclo del procesador demora 1ns.
b) Asumiendo el número de CPI promedio calculado en el punto anterior: suponga que los
programas se ejecutan sobre dos procesadores distintas. Los compilados con el compilador
A en un procesador y los compilados con el compilador B en otro procesador. Si el tiempo
de ejecución de cada programa en cada procesador es el mismo ¿Cuánto más rápido es
el procesador que ejecuta los programas compilados con el compilador A con respecto al
otro?
c) Se ha desarrollado un nuevo compilador que utiliza tan sólo 600 millones de instrucciones
y cuyo CPI promedio es de 1,1 ¿Cuál es el speedup que se obtiene al utilizar este nuevo
compilador en comparación a los otros dos en el procesador original?
Ejercicio 8 Considere dos implementaciones diferentes, P 1 y P 2, del mismo set de instrucciones. El mismo cuenta con cinco clases de instrucciones. P 1 tiene una frecuencia de reloj
de 4Ghz mientras que P 2 tiene una frecuencia de 6GHz. La siguiente tabla lista el valor de
CPI promedio por clase:
CPI clase A CPI clase B CPI clase C CPI clase D CPI clase E
P1
1
2
3
4
5
a.
P2
3
3
3
5
5
P1
1
2
3
4
5
b.
P2
3
2
2
2
6
a) Asumiendo que la performance de pico se define como la frecuencia más rápida a la que una
computadora puede ejecutar cualquier secuencia de instrucciones ¿Cuál es la performance
de pico de P 1 y P 2 expresada en instrucciones por segundo?
b) Si el número de instrucciones ejecutadas por un cierto programa está dividida equitativamente entre las distintas clases excepto por las instrucciones de clase A, que son el doble
de frecuentes que cada una de las otras ¿Qué computadora es más rápida? ¿Cuánto más
rápida?
c) ¿A qué frecuencia P 1 tiene la misma performance que P 2 considerando las proporciones
de cada clase de instrucción dada en el punto anterior?
3
Ejercicio 9 La siguiente tabla muestra el desglose por tipo de instrucción de una aplicación
ejecutado en 1, 2, 4 u 8 procesadores
Procs.
N◦ inst. p/proc.
CPI
Aritméticas Load/Store Branch Aritméticas Load/Store Branch
a.
1
2560
1280
256
1
4
2
2
1280
640
128
1
5
2
4
640
320
64
1
7
2
8
320
160
32
1
12
2
◦
Procs.
N inst. p/proc.
CPI
Aritméticas Load/Store Branch Aritméticas Load/Store Branch
b.
1
2560
1280
256
1
4
2
2
1280
640
128
1
6
2
4
640
320
64
1
8
2
8
320
160
32
1
10
2
a) ¿Cuál es el número total de instrucciones que se ejecutan por procesador y cuál el número
total de instrucciones entre todos los procesadores?
b) Asumiendo que cada procesador tiene una frecuencia de reloj de 2GHz calcule el tiempo
total de ejecución para cada programa para cada cantidad de procesadores.
c) Si el valor de CPI de las instrucciones aritméticas se duplica ¿Cuál será el impacto en el
tiempo de ejecución de los programas para cada cantidad de procesadores?
Ejercicio 10 La siguiente tabla muestra el número de instrucciones por core en un procesador multicore ası́ como el valor de CPI promedio al ejecutar el programa en 1, 2, 4 u 8
cores
#cores Instr. por core CPI promedio
a.
1
1.00E+10
1.2
2
5.00E+09
1.4
4
2.50E+09
1.8
8
1.25E+09
2.6
#cores Instr. por core CPI promedio
b.
1
1.00E+10
1.0
2
5.00E+09
1.2
4
2.50E+09
1.4
8
1.25E+09
1.7
a) Asumiendo un frecuencia de reloj de 3GHz ¿Cuál es el tiempo de ejecución del programa
para cada cantidad de cores?
b) Si se usara un único core calcule cuál es el valor de CPI promedio requerido para que
el tiempo de ejecución del programa sea igual los calculados en el punto anterior. Tenga en cuenta que la cantidad total de instrucciones surge de considerar la suma de las
instrucciones ejecutadas en cada core.
Ejercicio 11 La siguiente tabla muestra
en dos procesadores distintos
Frecuencia de reloj CPI
P1
4.0 GHz
0.9
a.
P2
3.0 GHz
0.75
P1
3.0 GHz
1.1
b.
P2
2.5 GHz
1.0
la información sobre la ejecucióñ de dos programas
N◦ inst.
5.00E+06
1.00E+06
3.00E+06
0.50E+06
4
a) Una falacia muy común es considerar al procesador con mayor frecuencia de reloj como el
de mayor performance. Verifique si esto es cierto teniendo en cuenta los datos de la tabla
anterior.
b) Otra falacia es considerar que el procesador que ejecuta mayor número de instrucciones
requerirá mayor tiempo de ejecución. Utilizando los valores de CPI de la tabla calcule
cuántas instrucciones puede ejecutar el procesador P 2 en el tiempo que P 1 necesita para
ejecutar 106 instrucciones.
c) Otra falacia muy usual es usar el valor MIPS (millones de instrucciones por segundo) para
comparar la performance de dos procesadores diferentes y considerar que aquel con mayor
valor de MIPS es el mejor. Verifique si esta afirmación se cumple o no para los procesadores
P 1 y P 2 de la tabla.
Ejercicio 12 Otra medida de performance muy común es la de MFLOPS (millones de operaciones de punto flotante por segundo) que se define como
MFLOPS =
N ◦ operaciones punto flotante
tiempo de ejecución × 106
La siguiente tabla muestra datos de la ejecución de dos
procesadores distintos:
N◦ inst.
Conteo de inst. L/S
FP Branch L/S
P1
1.00E+06
50 % 40 %
10 %
0.75
a.
P2
5.00E+06
40 % 40 %
20 %
1.25
P1
5.00E+06
30 % 30 %
40 %
1.5
b.
P2
2.00E+06
40 % 30 %
30 %
1.25
programas distintos sobre dos
CPI
FP Branch
1.0
1.5
0.8
1.25
1.0
2.0
1.0
2.5
Frecuencia de reloj
4.0 GHz
3.0 GHz
4.0 GHz
3.0 GHz
a) Calcule el valor de MFLOPS para cada programa.
b) Calcule el valor de MIPS para cada programa.
c) Calcule la performance de cada procesador para cada programa y compárela con los valores
de MFLOPS y MIPS calculados.
Ejercicio 13 A veces se cae en la trampa de pensar que se puede mejorar la performance
global de un procesador mejorando sólo un aspecto del mismo. Ésto puede no ser siempre
cierto. Considere una computadora ejecutando dos programas con los tiempos de ejecución
que se muestran en la siguiente tabla
FP Instr. INT Instr. L/S Instr. Branch Instr. Tiempo total
a.
70s
85s
55s
40s
250s
b.
40s
90s
60s
250s
210s
a) ¿Cuánto se reduce el tiempo total de ejecución si el tiempo requerido por las instrucciones
de punto flotante se reduce en un 20 %?
b) ¿En cuánto se debe reducir el tiempo requerido por las instrucciones de enteros para que
el tiempo total se reduzca en un 20 %?
c) ¿Es posible lograr una reducción del 20 % en el tiempo total de ejecución reduciendo
únicamente el tiempo requerido por las instrucciones de salto?
5
Ejercicio 14 La siguiente tabla muestra el desglose por tipo de instrucción (por procesador)
de dos aplicaciones ejecutadas en diferente cantidad de procesadores
Procs. FP Instr. INT Instr. L/S Instr. Branch Instr. CPI
CPI
CPI
(FP) (INT) (L/S)
a.
2
280 × 106 1000 × 106 640 × 106
128 × 106
1
1
4
6
6
6
6
b.
16
50 × 10
110 × 10
80 × 10
16 × 10
1
1
4
Asumiendo que cada procesador tiene una frecuencia de reloj de 2GHz
a) ¿Cuánto debemos mejorar el CPI de la instrucciones de punto flotante si queremos que el
programa se ejecute dos veces más rápido?
b) ¿Cuánto debemos mejorar el CPI the las instrucciones de load y store si queremos que el
programa se ejecute dos veces más rápido?
c) ¿Cuál es el tiempo de ejecución del programa si el CPI de las instrucciones de enteros y
de punto flotante se reduce en un 40 % y el de las instrucciones de load y store se reduce
en un 30 %?
Ejercicio 15 Otra trampa, relacionada con la ejecución de programas en sistemas multiprocesador, es pretender una mejora en la performance mediante la mejora en el tiempo de
ejecución en algunas partes de las rutinas únicamente. La siguiente tabla muestra el tiempo de
ejecución de cinco rutinas de un programa ejecutando en diferente cantidad de procesadores:
Procs. Rutina A Rutina B Rutina C Rutina D Rutina E
(ms)
(ms)
(ms)
(ms)
(ms)
a.
4
12
45
6
36
3
b.
32
2
7
1
6
2
a) Calcule el tiempo total de ejecución y en cuánto se reduce si las rutinas A, C y E sufren
una mejora de un 15 %.
b) En cuánto mejora el tiempo total de ejecución si la rutina B sufre una mejora del 10 %.
c) En cuánto mejora el tiempo total de ejecución si la rutina D sufre una mejora del 10 %.
Ejercicio 16 El tiempo de ejecución en un sistema multiprocesador se puede dividir entre
tiempo de cómputo y tiempo de ruteo (el tiempo gastado enviando datos de un procesador a
otro). Considerando los tiempos de cómputo y de ruteo dados en la siguiente tabla:
Procs. Rutina A Rutina B Rutina C Rutina D Rutina E Ruteo
(ms)
(ms)
(ms)
(ms)
(ms)
(ms)
2
40
78
9
70
4
11
4
29
60
4
36
2
13
8
15
45
3
19
3
17
16
7
35
1
11
2
22
32
4
23
1
6
1
23
64
2
12
0.5
3
1
26
a) Calcule la proporción entre el tiempo de cómputo de cada fila y el tiempo de cómputo de
la fila anterior.
b) Calcule la proporción entre el tiempo de ruteo de cada fila y el tiempo de ruteo de la fila
anterior.
c) Haciendo una extrapolación a partir de los datos obtenidos prediga cuál será el tiempo de
cómputo y el tiempo de ruteo en un sistema con 128 procesadores.
d) Calcule el tiempo de cómputo y el tiempo de ruteo para un sistema monoprocesador.
6
CPI
(Branch)
2
2
Descargar