miércoles, 4 de enero de 2012

¿ Qué es la Ley de Amdahl ?


Fuente : Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Teóricamente, si uno dobla el número de procesadores, el tiempo de ejecución debería reducirse a la mitad.
Si se dobla el número de procesadores sucesivamente, entonces se debería acortar a la mitad el tiempo de ejecución

Todo programa consta de:

   Una o más porciones que no se pueden paralelizar
   Una o más porciones paralelizables


La ley de Amdahl es un modelo matemático que describe la relación entre la aceleración esperada de la implementación paralela de un algoritmo y la implementación serial del mismo algoritmo


Técnicamente la ley de Amdahl trata sobre la aceleración S que se puede alcanzar a partir de las modificaciones (mejoras) de una porción P de un cálculo.









Por ejemplo, si se realiza una mejora del 30% en el tiempo de ejecución del cálculo, entonces la porción modificada (mejorada) será 0.3

Y si la porción modificada se ejecuta el doble de rápido, entonces la aceleración será igual a 2.



Esta fórmula se deriva de lo siguiente:

Asumamos que el tiempo que toma el cálculo original es 1 (para una unidad de tiempo cualquiera)

El tiempo que toma el nuevo cálculo es igual a:

Al tiempo que toma la ejecución de la porción no modificada



Más el tiempo que toma la ejecución de la porción modificada.


El tiempo que toma la ejecución de la porción modificada es igual al tiempo que le tomaba originalmente dividida por la aceleración.







Si se considera el número de procesadores (N) en la relación tendremos







Si consideramos el rendimiento que se obtiene cuando se agregan más procesadores a una máquina, La ley de Amdahl puede fusionarse con la ley de disminución del rendimiento



Cada vez que se dobla el número de procesadores la aceleración disminuye
De esta manera se tiende al límite siguiente:



Ejemplo:



La aceleración de un programa paralelo está limitada por la porción serial del mismo




Si el 95% de un programa es paralelizable la máxima aceleración obtenida es de 20x



Espero que todo este correcto y podeis ver el documento original en la web Fuente:

Fuente: Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz


______________________________________

1 comentario: