Ley de Amdahl
# Ley de Amdahl

La ley de Amdahl es, en ciencia de la computación, 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 fórmula original de la ley de Amdahl es la siguiente:

   $T_{m}={T_{a}\cdot \left((1-F_{m})+{F_{m} \over A_{m}}\right)}$

siendo:

* $F_{m}$ = fracción de tiempo que el sistema utiliza el subsistema mejorado
* $A_{m}\,$ = factor de mejora que se ha introducido en el subsistema mejorado.
* $T_{a}$ = tiempo de ejecución antiguo.
* $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 $\scriptstyle A=T_{a}/T_{m}$, por lo que la fórmula anterior se puede reescribir como:

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

siendo:

* $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}\,$, es el factor de mejora que se ha introducido en el subsistema mejorado.
* $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$
* $F_{m}=0.3$
* $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.

