Documente Academic
Documente Profesional
Documente Cultură
\
|
+ =
mejora
mejora
mejora viejo nuevo
Speedup
Fraccin
) Fraccin - (1 ejecucin de Tiempo ejecucin de Tiempo
Ejemplo
Tiempo de ejecucin original: 60 segundos.
Mejora: 20 segundos se hacen ahora en 12.
Fraccin
mejora
: 20/60 = 0.333.
Speedup
mejora
: 20/12 = 1.667.
Tiempo de ejecucin con la mejora:
60 x ((1 0.333) + 0.333/1.667) =
60 x (0.667 + 0.2) =
60 x (0.867) =
52
Speedup global
El speedup global es:
Alternativamente:
Ejemplo
Fraccin
mejora
: 20/60 = 0.333.
Speedup
mejora
: 20/12 = 1.667.
Tiempo de ejecucin original: 60 segundos.
Tiempo de ejecucin con la mejora: 52 segundos.
Speedup
global
= 60 / 52 = 1.15.
Speedup
global
= 1 / ((1 0.333) + (0.333 / 1.667)) = 1.15.
mejora
original
global
ejecucin de Tiempo
ejecucin de Tiempo
Speedup =
mejora
mejora
mejora
global
Speedup
Fraccin
) Fraccin - (1
1
Speedup
+
=
Otro ejemplo
Un programa tarda 100 segundos en correr.
El programa pasa 80 segundos en un procedimiento.
Qu tanto se debe mejorar ese procedimiento para que todo el programa corra 5 veces
ms rpido?
Usamos la ley de Amdahl:
Tiempo de ejecucin original: 100 segundos.
Tiempo de ejecucin nuevo: 20 segundos.
Fraccin mejorada: 80 / 100 = 0.8
Falta por saber el speedup de la mejora.
20 = 100 x ((1 0.8) + (0.8 / Speedup
mejora
))
20 = 100 x (0.2 + 0.8 / Speedup
mejora
)
20 = 20 x 80 / Speedup
mejora
20 20 = 80 / Speedup
mejora
0 = 80 / Speedup
mejora
No hay forma de que el programa mejorado corra en 20 segundos.
Corolario de la ley de Amdahl
El speedup global est limitado por la fraccin del programa que se puede mejorar.
Cmo se interpreta ese lmite cuando Fraccin
mejora
es 1?
Ejemplo
Se tiene un servidor de Web.
Se le cambia la CPU por una CPU que es 10 veces ms rpida que la antigua.
La CPU antigua estaba 40% del tiempo haciendo clculos y 60% ociosa esperando I/O.
Cul es el speedup global con la nueva CPU?
|
|
.
|
\
|
+ =
mejora
mejora
mejora viejo nuevo
Speedup
Fraccin
) Fraccin - (1 ejecucin de Tiempo ejecucin de Tiempo
mejora
global
Fraccin - 1
1
Speedup <
Fraccin que se puede mejorar: 40% = 0.4.
Speedup de la mejora: 10.
El corolario de la ley de Amdahl limita el speedup global:
Speedup
global
< 1 / (1 0.4) = 1.67
Usando la ley de Amdahl, el speedup global es:
El speedup global es:
1 / ((1 0.4) + (0.4 / 10)) = 1.56
El servidor con la nueva CPU es 1.56 veces ms rpido que el servidor con la antigua CPU.
Aplicaciones
La ley de Amdahl se puede usar para comparar entre dos opciones.
Se quiere mejorar un programa que hace ciertos clculos. Hay dos opciones:
1. Comprar un chip que acelera el 20% del programa 10 veces.
2. Recodificar el 50% del programa para que corra 1.6 veces ms rpido.
Qu opcin ofrece mejor speedup?
Se usa la ley de Amdahl:
Opcin 1:
1. Fraccin
mejora
= 0.2
2. Speedup
mejora
= 10
3. Speedup
global
= 1 / ((1 0.2) + (0.2 / 10)) = 1.219
mejora
mejora
mejora
global
Speedup
Fraccin
) Fraccin - (1
1
Speedup
+
=
mejora
mejora
mejora
global
Speedup
Fraccin
) Fraccin - (1
1
Speedup
+
=
Opcin 2:
1. Fraccin
mejora
= 0.5
2. Speedup
mejora
= 1.6
3. Speedup
global
= 1 / ((1 0.5) + (0.5 / 1.6)) = 1.231
No hay mucha diferencia entre 1.219 y 1.231.
Hay que considerar otros factores en la decisin.
La ley de Amdahl se puede usar en otros estudios.
Un sistema de discos en un centro de cmputo tiene varios componentes.
Cuando se presenta una falla, el porcentaje de que sea alguno de los componentes es
como sigue:
Componente Porcentaje
Discos 43%
Controlador SCSI 9%
Fuente de poder 22%
Abanico 22%
Cable SCSI 4%
Un estudio determina que instalando otra fuente de poder eleva la confiabilidad (tiempo
medio entre fallas) de las fuentes de poder en 4,150 veces.
Qu tanto se eleva la confiabilidad de todo el sistema de discos?
La ley de Amdahl se puede adaptar:
Fraccin
mejora
= 0.22.
Confiabilidad
mejora
= 4150.
La confiabilidad global es:
1 / ((1 0.22) + (0.22 / 4150) = 1.28
La confiabilidad del sistema con dos fuentes de poder es 1.28 veces que con una sola
fuente de poder.
2. Explique los riesgos que se presentan en la arquitectura DLX. Detalle explicando los
riesgos de datos y de control.
DESCRIPCIN DE LOS RIESGOS
El objetivo de esta prctica es evaluar las mejoras que se pueden introducir en el DLX
segmentado para evitar la insercin de ciclos de parada debidos a los distintos riesgos que
pueden aparecer en el mismo. Recordemos que estos riesgos pueden ser:
Riesgos por Dependencia de Datos. Que dependen del programa de ejecucin. En el DLX
aparecen cuando una operacin lee un dato que una instruccin anterior est escribiendo de
forma simultnea (RAW Read After Write). Slo aparecen si la distancia entre las dos
instrucciones con dependencia es pequea. Para reducir el impacto de los riesgos por
dependencia de datos se pueden plantear dos estrategias:
Detencin de la segmentacin mediante la insercin de burbujas: para evitar las ocasiones
en que se producen los riesgos el compilador se encarga automticamente de separar las
instrucciones que provocan dichos riesgos mediante la insercin de ciclos de espera o
burbujas
Anticipacin o Forwarding: reduciendo por HW (cortocircuitos) la distancia a la que
tienen que estar dos operaciones para que aparezca el riesgo, reduciendo de esta forma el
nmero de ciclos de parada que se deben insertar en el caso de la aparicin de uno de estos
riesgos
mejora
mejora
mejora
global
dad Confiabili
Fraccin
) Fraccin 1 (
1
dad Confiabili
+
=
Ejemplo:
ADD R1,R2,R3
SUB R4,R1,R5
Inst ADD B D/L E M ES Aqu carga R1 con R2+R3
Inst SUB B D/L E M ES
lee el contenido de R1 antes de que
sea asignado el valor de la suma de
R2 + R3
Riesgos de Control. Se presentan siempre que hay un salto condicional. Se tratan de
resolver mediante una serie de tcnicas entre las que cabe citar:
Insercin de burbujas de retardo: es imprescindible la utilizacin de un compilador que
conozca el nmero de slots o burbujas de retardo que se utilizarn y que coloque en ellos
instrucciones tiles, el impacto del riesgo de control ser menor cuanto ms llenos de
instrucciones tiles se encuentran los slots de retardo
Prediccin sobre el salto: donde se intenta adivinar qu instruccin se ejecutar en base a
un histrico de los saltos anteriores
Evidentemente la implementacin de estas tcnicas va a suponer un mayor coste en el
diseo y la produccin de la unidad, por lo que es necesario asegurarse que suponen una
clara mejora en las prestaciones de la mquina.
3. Dado el siguiente fragmento de cdigo en DLX, que es ejecutado en una mquina que
trabaja a 3.2 GHz; determinar el tiempo de CPU para este fragmento (expresado en ns y
con tres decimales), considerando que en la posicin 0 de memoria est el valor de 60:
ADD R13,R0,R0
LW R11,0(R0)
ADD R10,R0,R0
ETQ: BEQZ R11,FIN
LW R1,4(R10)
LW R2,164(R10)
SUB R12,R1,R2
ADD R13,R13,R12
ADDI R10,R10,#4
SUBI R11,R11,#1
J ETQ
FIN: SW 324(R0),R13
a. Considerando detenciones, adelantamientos y riesgos de control (todo junto).
b. Considerando adems la arquitectura modificada para reducir los riesgos de
control.
c. Aplicando salto retardado.
d. Desdoblando el lazo en dos, reacomodar y salto retardado.