Ley de Amdahl

El incremento de velocidad de un programa utilizando múltiples procesadores en computación distribuida está limitada por la fracción secuencial del programa. Por ejemplo, si la porción 0.5 del programa es secuencial, el incremento de velocidad máximo teórico con computación distribuida será de 2 (1/(0.5+(1-0.5)/N)) cuando N sea muy grande.
Asumiendo que una tarea tiene dos partes independientes, A y B, consumiendo B el 25% del tiempo total de computación. Trabajando muy duro se puede realizar B 5 veces más rápido y sin embargo esto sólo reduce el tiempo de computación un poco; en contraste, una pequeña mejora de A hace que ésta vaya el doble de rápido. Esto hace que sea mucho mejor la optimización de A que de B aunque se mejore mucho más B (5x contra 2x).

La ley de Amdahl es, formulada por Gene Amdahl, utilizada para averiguar la mejora máxima de un sistema de información cuando solo una parte de éste es mejorado.

Establece que:

La mejora obtenida en el rendimiento de un sistema debido a la alteración de uno de sus componentes está limitada por la fracción de tiempo que se utiliza dicho componente.

La fórmula original de la ley de Amdahl es la siguiente:

T m = T a ( ( 1 F m ) + F m A m ) {\displaystyle T_{m}={T_{a}\cdot \left((1-F_{m})+{F_{m} \over A_{m}}\right)}}

siendo:

  • F m {\displaystyle F_{m}} = fracción de tiempo que el sistema utiliza el subsistema mejorado
  • A m {\displaystyle A_{m}\,} = factor de mejora que se ha introducido en el subsistema mejorado.
  • T a {\displaystyle T_{a}} = tiempo de ejecución antiguo.
  • T m {\displaystyle T_{m}} = tiempo de ejecución mejorado.

Esta fórmula se puede reescribir usando la definición del incremento de la velocidad que viene dado por A = T a / T m {\displaystyle \scriptstyle A=T_{a}/T_{m}} , por lo que la fórmula anterior se puede reescribir como:

A = 1 ( 1 F m ) + F m A m {\displaystyle A={1 \over (1-F_{m})+{F_{m} \over A_{m}}}}

siendo:

  • A {\displaystyle A\,} es la aceleración o ganancia en velocidad conseguida en el sistema completo debido a la mejora de uno de sus subsistemas.
  • A m {\displaystyle A_{m}\,} , es el factor de mejora que se ha introducido en el subsistema mejorado.
  • F m {\displaystyle F_{m}\,} , es la fracción de tiempo que el sistema utiliza el subsistema mejorado.

Por ejemplo, si en un programa de ordenador el tiempo de ejecución de un cierto algoritmo supone un 30% del tiempo de ejecución total del programa, y conseguimos hacer que este algoritmo se ejecute en la mitad de tiempo se tendrá:

  • A m = 2 {\displaystyle A_{m}=2}
  • F m = 0.3 {\displaystyle F_{m}=0.3}
  • A 1.18 {\displaystyle A\approx {1.18}}

Es decir, se ha mejorado la velocidad de ejecución del programa en un factor de 1,18. La ley de Amdahl se mide en unidades genéricas, es decir los resultados no son porcentajes, ni unidades de tiempo.

La ley de Amdahl se puede interpretar de manera más técnica, pero en términos simples, significa que es el algoritmo el que decide la mejora de velocidad, no el número de procesadores. Finalmente se llega a un momento que no se puede paralelizar más el algoritmo.

Referencias

  • Gene Amdahl, "Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities", AFIPS Conference Proceedings, (30), pp. 483-485, 1967.

Véase también

Enlaces externos

  • Wikimedia Commons alberga una categoría multimedia sobre Ley de Amdahl.
  • Reevaluating Amdahl's Law
  • Reevaluating Amdahl's Law and Gustafson's Law
Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q460419
  • Commonscat Multimedia: Amdahl's law / Q460419

  • Wd Datos: Q460419
  • Commonscat Multimedia: Amdahl's law / Q460419