Como buen freaky, de cuando en cuando me gusta indagar en partes teóricas de informática, y en este caso os traigo una repizco de la Ley Amdahl.
La ley de Amdahl, llamada así debido a su creador Eugene Myron Amdahl (Gene Amdahl), nos ayuda a determinar el aumento de rendimiento que puede tener una arquitectura mejorada. Saber los casos que son más frecuentes es fundamental para mejorar el rendimiento.
Así mismo la Ley de Amdahl 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.
Es decir:
Y bien, el tiempo de ejecución después de la mejora vendrá dado por la siguiente expresión:
Siendo:
Ta: tiempo de ejecución afectado por la mejora
Tna: tiempo de ejecución no afectado por la mejora
Sustituyendo tenemos:
Como vemos, la aceleración conseguida depende de 2 factores:
Fm: La fracción del tiempo de cálculo de la máquina original que pueda utilizarse para aprovechar la mejora, es decir, la fracción de tiempo que el sistema utiliza el subsistema que se ha alterado.
Am: La optimización lograda por el modo de ejecución mejorado, es decir el factor de mejora que se ha introducido en el subsistema alterado.
Resumiendo:
Para entender mejor lo que podemos obtener gracias a la Ley de Amdahl os pongo un ejemplo sencillo:
Imaginemos que tenemos una aplicación en la que el 25% de las instrucciones puede mejorarse 10 veces y el resto de instrucciones no se puede mejorar. ¿Qué speed-up (aceleración) se podría conseguir según la Ley de Amdhal ?:
Aplicamos la fórmula y tenemos:
Así pues, la aceleración es un 1,2903. De este resultado podemos interpretar que ha mejorado un 29,03%, es decir, ahora es un 29,03% más rápida.