Leyes de Escalabilidad en Computación Paralela: Amdahl, Gustafson y Sun-Ni

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,19 KB

Leyes de Escalabilidad en Computación Paralela

La eficiencia en la computación paralela está sujeta a diversas leyes y factores que limitan el rendimiento. A continuación, exploramos las principales leyes y conceptos clave:

Ley de Amdahl

La Ley de Amdahl establece que el incremento en el rendimiento obtenido al mejorar una parte de un programa está limitado por la fracción de tiempo que no se puede paralelizar. En esencia, un programa tiene dos tipos de operaciones:

  • Operaciones que deben ejecutarse en serie.
  • Operaciones que pueden ejecutarse en paralelo.

El aumento de velocidad de un algoritmo paralelo está limitado por las operaciones que deben ejecutarse secuencialmente.

Evitando la Ley de Amdahl

Existen estrategias para mitigar las limitaciones de la Ley de Amdahl:

  1. Concentrarse en algoritmos paralelos con pequeños componentes serie no paralelizables.
  2. Eliminar la restricción de tamaño fijo del problema, considerando una carga de trabajo variable.

Ley de Gustafson

La Ley de Gustafson (1987) se basa en un tiempo de ejecución fijo. Se aplica a problemas escalables donde el tamaño del problema aumenta al crecer el tamaño de la máquina. El objetivo es lograr una mayor carga de trabajo y una solución más precisa, manteniendo el tiempo de ejecución constante.

Modelo de Sun y Ni

El Modelo de Sun y Ni (1993) se centra en un tamaño de memoria fijo. Generaliza las leyes de Amdahl y Gustafson para maximizar el uso de la CPU y la memoria. La idea es resolver el mayor problema posible, limitado por la capacidad de la memoria. Este modelo también requiere una carga de trabajo escalada para proporcionar un mayor speedup, precisión y mejor utilización de los recursos.

Sobrecostes en la Paralelización

La paralelización introduce sobrecostes (overheads) que reducen la eficiencia:

  • Comunicación: Intercambio de datos entre procesadores y sincronización de procesos.
  • Balanceo de carga: Distribución equitativa de tareas entre procesadores.
  • Memoria caché: La eficiencia depende del principio de localidad. Es conveniente procesar datos contiguos en la misma caché.

Granularidad

La granularidad se refiere a la relación entre la cantidad de instrucciones y datos asignados a cada procesador frente a las comunicaciones. La sobrecarga por CPU se calcula como R / C, donde R son las unidades de ejecución y C la sobrecarga en las comunicaciones.

Una alta relación R/C indica que compensa paralelizar. El número de trozos en los que se divide un problema debe ser lo suficientemente alto para paralelizar entre muchas CPUs. Si los trozos son grandes, el coste de las comunicaciones es pequeño.

Tipos de Granularidad

  • Grano fino: A cada CPU se le asignan pocos datos y poca computación entre comunicaciones.
  • Grano grueso: A cada CPU se le asignan muchos datos y mucha computación entre comunicaciones. Es lo más interesante para paralelizar.

Entradas relacionadas: