Calculadora de la ley de Amdahl

Introduce la parte del trabajo que puede ejecutarse en paralelo y el número de procesadores o hilos. La calculadora da la aceleración según la ley de Amdahl, la eficiencia por procesador, el techo que ningún número de procesadores supera y cuántos necesitas para una aceleración objetivo. Cambia a la ley de Gustafson para un trabajo que crece con la máquina.

Ley
%
Aceleración4,706 ×
Eficiencia por procesador
58,82 %
Tiempo de ejecución respecto al original
21,25 %
Aceleración máxima (infinitos procesadores)
10 ×
Procesadores para la aceleración objetivo
6

Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.

Cómo se usa

  1. Elige Amdahl para un trabajo fijo que quieres terminar antes, o Gustafson para un trabajo que crece con el número de procesadores.
  2. Introduce la parte paralela del trabajo en porcentaje y el número de procesadores.
  3. Con la ley de Amdahl puedes añadir una aceleración objetivo para ver cuántos procesadores hacen falta o si es inalcanzable.

Fórmulas

  • Amdahl: S = 1 ÷ ((1 − p) + p ÷ N); tiempo = (1 − p) + p ÷ N del original; límite = 1 ÷ (1 − p).
  • Procesadores para una aceleración s: N = p ÷ (1/s − (1 − p)), redondeado hacia arriba; imposible si s ≥ 1 ÷ (1 − p).
  • Gustafson: S = (1 − p) + p × N.
  • Eficiencia = S ÷ N.

Ejemplo resuelto

Un programa paralelo al 90 % en 8 procesadores:

  • S = 1 ÷ (0,1 + 0,9 ÷ 8) = 1 ÷ 0,2125 = 4,706 ×;
  • tiempo de ejecución del 21,25 % del original, eficiencia 4,706 ÷ 8 = 58,82 %;
  • aceleración máxima 1 ÷ 0,1 = 10 ×;
  • para acelerar 4 veces hacen falta 0,9 ÷ (0,25 − 0,1) = 6 procesadores.

Con la ley de Gustafson, el mismo 90 % en 8 procesadores da 0,1 + 0,9 × 8 = 7,3 ×.

Consejos

  • Reduce primero la parte secuencial. Pasar del 90 % al 95 % paralelo duplica el techo de 10 × a 20 ×, más de lo que aporta cualquier número de núcleos.
  • La eficiencia cae al crecer N. A partir de cierto punto, más procesadores aportan poco; la fila de eficiencia muestra cuándo.
  • Los hilos de hyper-threading no son procesadores completos: para cálculo intensivo, cuenta núcleos físicos.

Preguntas frecuentes

¿Qué es la ley de Amdahl?

La aceleración de un trabajo fijo cuando su parte paralela p se ejecuta en N procesadores y el resto sigue siendo secuencial, S = 1 ÷ ((1 − p) + p/N). La parte secuencial impone un límite de 1 ÷ (1 − p): un trabajo paralelo al 90 % nunca va más de 10 veces más rápido.

¿En qué se diferencia la ley de Gustafson?

Gustafson supone que el trabajo crece con la máquina y el tiempo de ejecución se mantiene, y pregunta cuánto más trabajo se hace, S = (1 − p) + p × N. Responde a otra pregunta y da una cifra mayor; ninguna de las dos leyes es errónea.

¿Cómo sé qué fracción de mi programa es paralela?

Perfilándolo. Mide la ejecución secuencial y las partes que se pueden repartir entre hilos; p es el tiempo paralelo dividido por el total. También puedes medir la aceleración con N núcleos y despejar p de la ley de Amdahl.

¿Por qué la aceleración real es menor que la calculada?

La ley no tiene en cuenta el coste de crear hilos, compartir datos, los bloqueos, el ancho de banda de memoria ni el reparto desigual del trabajo. Es una cota superior para una p dada, no una previsión.

Más en Desarrollo

Todas las herramientas de la categoría: Desarrollo ·Actualizado el 6 de noviembre de 2026

Opciones de privacidad

Google Analytics nos muestra qué herramientas se usan y si funcionan. Puede usar cookies. Tu elección se guarda en este navegador.