Considere un programa compuesto por dos secciones: una sección secuencial no paralelizable, y
un lazo iterativo que se puede paralelizar ejecutando distintas iteraciones en múltiples núcleos
de una CPU multinúcleo. La sección secuencial ejecuta 200 instrucciones, y cada iteración del lazo
ejecuta 50 instrucciones. El lazo itera 80 veces. La descomposición de estas instrucciones por tipo
está indicada en la siguiente tabla, al igual que los ciclos por cada tipo de instrucción:
a)
Tipo de Ciclos por inst. % inst. sec. %inst. lazo
Instrucción
ALU 1 45 30
Multiplicaciones 5 15 40
Load/store 30 30 20
Saltos 2 10 10
b)
Fracción de tiempo ldr/str = (ciclos ldr/str)/(ciclos totales)
= 30*(60 + 10*80)/(10.4*200 + 8.59*50*80)
= 0.715
Como se vio en clases, la Ley de Amdahl para dos mejoras independientes con
aceleración S1 y S2 sobre fracciones de tiempo F1 y F2 del programa es:
S = 3.03
c)