Skip to main content
Durante décadas, los programas iban más rápido sin hacer nada: cada nueva generación de procesadores tenía más frecuencia. Hacia 2005 eso se acabó, porque subir más la frecuencia calentaba demasiado los chips, y los fabricantes empezaron a poner varios núcleos en cada procesador. Desde entonces, para aprovechar un ordenador hay que repartir el trabajo. La programación paralela estudia cómo hacerlo y, sobre todo, cómo saber si ha merecido la pena.

Las ideas clave del bloque

Medir antes de paralelizar

El rendimiento de un algoritmo paralelo depende de la talla nn y del número de procesadores pp. Se modela con su tiempo, T(n,p)≅Tar+TcoT(n,p) \cong T_{ar} + T_{co}, suma del cálculo y las comunicaciones, y se compara con el secuencial mediante unos pocos parámetros:

Los límites: Amdahl y Gustafson

La parte que no se puede repartir pone un techo al speedup: con una fracción secuencial α\alpha, nunca se pasa de 1/α1/\alpha (ley de Amdahl). Si el problema crece con la máquina, en cambio, el speedup escalado crece casi linealmente (ley de Gustafson).

Escalabilidad

Un algoritmo es escalable si, haciendo crecer el problema, mantiene la eficiencia al añadir procesadores. La función de isoeficiencia dice cuánto tiene que crecer: cuanto más despacio, mejor.

Diseño: la metodología de Foster

Para diseñar un algoritmo paralelo se siguen cuatro pasos:
  1. Descomposición: dividir el problema en tareas pequeñas (por datos o por funciones).
  2. Comunicaciones: ver qué datos necesita cada tarea de las demás.
  3. Agrupación: juntar tareas para reducir comunicaciones (relación superficie/volumen).
  4. Asignación: repartir los grupos entre los procesadores, de forma estática o dinámica.

Orden recomendado

1

Tiempo paralelo y parámetros relativos

TarT_{ar}, TcoT_{co}, speedup, eficiencia, coste y sobrecarga con ejemplos sencillos.
2

Leyes de Amdahl y Gustafson

El techo de la parte secuencial y el escalado del problema.
3

Escalabilidad

Isoeficiencia y eficiencia escalada.
4

Diseño de algoritmos paralelos

Grafos de dependencias, pipeline y metodología de Foster.

Temas de este bloque

Ley de Amdahl

Speedup y eficiencia de un programa paralelo explicados: tiempo paralelo, coste y sobrecarga, ley de Amdahl, ley de Gustafson-Barsis, rendimiento efectivo e isoeficiencia, con ejemplos resueltos.

Simuladores de programación paralela en Simulab

Ley de Amdahl

Speedup, eficiencia y sobrecarga según la fracción paralelizable y los procesadores.
Última modificación el 7 de octubre de 2026