Ley de amdahl


En arquitectura informática , la ley de Amdahl (o el argumento de Amdahl [1] ) es una fórmula que da la aceleración teórica en latencia de la ejecución de una tarea con una carga de trabajo fija que se puede esperar de un sistema cuyos recursos se mejoran. Lleva el nombre del científico informático Gene Amdahl y se presentó en la Conferencia Conjunta de Computación AFIPS Spring en 1967.

La ley de Amdahl se usa a menudo en computación paralela para predecir la aceleración teórica cuando se usan múltiples procesadores. Por ejemplo, si un programa necesita 20 horas para completarse usando un solo hilo, pero una porción de una hora del programa no se puede paralelizar, por lo tanto, solo se pueden paralelizar las 19 horas restantes ( p = 0.95 ) del tiempo de ejecución, entonces independientemente de cuántos subprocesos se dedican a una ejecución paralelizada de este programa, el tiempo mínimo de ejecución no puede ser inferior a una hora. Por lo tanto, la aceleración teórica se limita a como máximo 20 veces el rendimiento solo hilo, .

muestra que la aceleración teórica de la ejecución de toda la tarea aumenta con la mejora de los recursos del sistema y que independientemente de la magnitud de la mejora, la aceleración teórica siempre está limitada por la parte de la tarea que no puede beneficiarse de la mejora. .

La ley de Amdahl se aplica solo a los casos en los que se soluciona el tamaño del problema. En la práctica, a medida que se dispone de más recursos informáticos, tienden a utilizarse en problemas más grandes (conjuntos de datos más grandes) y el tiempo dedicado a la parte paralelizable a menudo crece mucho más rápido que el trabajo inherentemente en serie. En este caso, la ley de Gustafson da una evaluación menos pesimista y más realista del desempeño paralelo. [3]

Una tarea ejecutada por un sistema cuyos recursos se mejoran en comparación con un sistema similar inicial se puede dividir en dos partes:

Un ejemplo es un programa de computadora que procesa archivos. Una parte de ese programa puede escanear el directorio del disco y crear una lista de archivos internamente en la memoria. Después de eso, otra parte del programa pasa cada archivo a un hilo separado para su procesamiento. La parte que escanea el directorio y crea la lista de archivos no se puede acelerar en una computadora paralela, pero la parte que procesa los archivos sí.


La aceleración teórica de la latencia de ejecución de un programa en función del número de procesadores que lo ejecutan, según la ley de Amdahl. La aceleración está limitada por la parte serial del programa. Por ejemplo, si el 95% del programa se puede paralelizar, la aceleración máxima teórica usando computación paralela sería 20 veces.
Supongamos que una tarea tiene dos partes independientes, A y B . La parte B toma aproximadamente el 25% del tiempo de todo el cálculo. Trabajando muy duro, es posible que esta parte sea 5 veces más rápida, pero esto reduce el tiempo de todo el cálculo solo ligeramente. Por el contrario, es posible que sea necesario realizar menos trabajo para que la parte A funcione dos veces más rápido. Esto hará que el cálculo sea mucho más rápido que optimizando la parte B , aunque la aceleración de la parte B es mayor en términos de la relación (5 veces frente a 2 veces).