Está en la página 1de 20

Ley de Amdahl

Definición
Evalúa como cambia el rendimiento al mejorar una parte de la
computadora.
Define el speedup (aceleración) que se puede alcanzar al usar
cierta mejora.
Rendimiento al usar la mejora
Speedup =
Rendimiento sin usar la mejora

Alternativamente

Tiempo de ejecución sin la mejora


Speedup =
Tiempo de ejecución con la mejora

Universidad de Sonora Arquitectura de Computadoras 2


Factores
El speedup depende de dos factores:
1. La fracción del proceso original que puede ser
mejorado.
Si la mejora afecta 20 segundos de un proceso
que tarda 60 segundos, entonces Fracciónmejora =
20/60.
2. Aceleración de la fracción que puede ser
mejorada.
Si la mejora hace que la parte que tardaba 20
segundos ahora tarde 12, Speedupmejora = 20/12.
Universidad de Sonora Arquitectura de Computadoras 3
Tiempo de ejecución
El tiempo de ejecución mejorado es igual al tiempo que no se
usa la mejora mas el tiempo que si usa la mejora.

 Fracciónmejora 
Tiempo de ejecuciónnuevo = Tiempo de ejecuciónviejo ×  (1 - Fracciónmejora) + 
 Speedupmejora 

Universidad de Sonora Arquitectura de Computadoras 4


Ejemplo
Tiempo de ejecución original: 60 segundos.
Mejora: 20 segundos se hacen ahora en 12.
Fracciónmejora: 20/60 = 0.333.
Speedupmejora: 20/12 = 1.667.
Tiempo de ejecución con la mejora:
60 x ((1 – 0.333) + 0.333/1.667) =
60 x (0.667 + 0.2) =
60 x (0.867) =
52
Universidad de Sonora Arquitectura de Computadoras 5
Speedup global
El speedup global es:

Tiempo de ejecuciónoriginal
Speedupglobal =
Tiempo de ejecuciónmejora

Alternativamente:

1
Speedupglobal =
Fracciónmejora
(1 - Fracciónmejora) +
Speedupmejora

Universidad de Sonora Arquitectura de Computadoras 6


Ejemplo
Fracciónmejora: 20/60 = 0.333.
Speedupmejora: 20/12 = 1.667.
Tiempo de ejecución original: 60 segundos.
Tiempo de ejecución con la mejora: 52 segundos.
Speedupglobal = 60 / 52 = 1.15.
Speedupglobal = 1 / ((1 – 0.333) + (0.333 / 1.667)) =
1.15.

Universidad de Sonora Arquitectura de Computadoras 7


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 más rápido?

Universidad de Sonora Arquitectura de Computadoras 8


Otro ejemplo
Usamos la ley de Amdahl:
 Fracciónmejora 
Tiempo de ejecuciónnuevo = Tiempo de ejecuciónviejo ×  (1 - Fracciónmejora) + 
 Speedup mejora 
Tiempo de ejecución original: 100 segundos.
Tiempo de ejecución nuevo: 20 segundos.
Fracción mejorada: 80 / 100 = 0.8
Falta por saber el speedup de la mejora.

Universidad de Sonora Arquitectura de Computadoras 9


Otro ejemplo
20 = 100 x ((1 – 0.8) + (0.8 / Speedupmejora))
20 = 100 x (0.2 + 0.8 / Speedupmejora)
20 = 20 x 80 / Speedupmejora
20 – 20 = 80 / Speedupmejora
0 = 80 / Speedupmejora

No hay forma de que el programa mejorado corra


en 20 segundos.

Universidad de Sonora Arquitectura de Computadoras 10


Corolario de la ley de
Amdahl
El speedup global está limitado por la fracción del programa
que se puede mejorar.
1
Speedupglobal <
1 - Fracciónmejora

¿Cómo se interpreta ese límite cuando Fracciónmejora es 1?

Universidad de Sonora Arquitectura de Computadoras 11


Ejemplo
Se tiene un servidor de Web.
Se le cambia la CPU por una CPU que es 10 veces
más rápida que la antigua.
La CPU antigua estaba 40% del tiempo haciendo
cálculos y 60% ociosa esperando I/O.
¿Cuál es el speedup global con la nueva CPU?

Universidad de Sonora Arquitectura de Computadoras 12


Ejemplo
Fracción que se puede mejorar: 40% = 0.4.
Speedup de la mejora: 10.
El corolario de la ley de Amdahl limita el speedup
global:
Speedupglobal < 1 / (1 – 0.4) = 1.67
Usando la ley de Amdahl, el speedup global es:
1
Speedupglobal =
Fracciónmejora
(1 - Fracciónmejora) +
Speedupmejora

Universidad de Sonora Arquitectura de Computadoras 13


Ejemplo
El speedup global es:

1 / ((1 – 0.4) + (0.4 / 10)) = 1.56

El servidor con la nueva CPU es 1.56 veces más


rápido que el servidor con la antigua CPU.

Universidad de Sonora Arquitectura de Computadoras 14


Aplicaciones
La ley de Amdahl se puede usar para comparar
entre dos opciones.
Se quiere mejorar un programa que hace ciertos
cálculos. 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 más rápido.
¿Qué opción ofrece mejor speedup?

Universidad de Sonora Arquitectura de Computadoras 15


Aplicaciones
Se usa la ley de Amdahl:
1
Speedupglobal =
Fracciónmejora
(1 - Fracciónmejora) +
Speedupmejora

Opción 1:
Fracciónmejora = 0.2
Speedupmejora = 10
Speedupglobal = 1 / ((1 – 0.2) + (0.2 / 10)) = 1.219

Universidad de Sonora Arquitectura de Computadoras 16


Aplicaciones
Opción 2:
Fracciónmejora = 0.5
Speedupmejora = 1.6
Speedupglobal = 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 decisión.

Universidad de Sonora Arquitectura de Computadoras 17


Aplicaciones
La ley de Amdahl se puede usar en otros estudios.
Un sistema de discos en un centro de cómputo 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%
Universidad de Sonora Arquitectura de Computadoras 18
Aplicaciones
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?

Universidad de Sonora Arquitectura de Computadoras 19


Aplicaciones
La ley de Amdahl se puede adaptar:
1
Confiabilidadglobal =
Fracciónmejora
(1 − Fracciónmejora) +
Confiabilidadmejora
Fracciónmejora = 0.22.
Confiabilidadmejora = 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.
Universidad de Sonora Arquitectura de Computadoras 20