Paralelización automática

Paralelización automática  : optimización del programa por parte del compilador , que consiste en convertirlo automáticamente en un formulario que se ejecuta en una computadora paralela , por ejemplo, en una máquina SMP o NUMA. El objetivo de automatizar la paralelización es liberar al programador del proceso lento y propenso a errores de la paralelización manual. A pesar de que la calidad de la paralelización automática ha mejorado en los últimos años, la paralelización completa de programas secuenciales sigue siendo una tarea demasiado difícil que requiere los tipos de análisis de programas más complejos.

El paralelizador automático generalmente se enfoca en construcciones de control como bucles que procesan matrices, ya que, en general, la mayor parte de la ejecución del programa tiene lugar dentro de bucles de algún tipo. El compilador paralelo intenta dividir el ciclo en partes para que sus iteraciones separadas puedan ejecutarse en diferentes procesadores al mismo tiempo.

Análisis de programas

Los compiladores analizan antes de realizar la paralelización para responder a las siguientes preguntas:

Dificultades

La paralelización automática es difícil para los compiladores por las siguientes razones:

Debido a la complejidad de la paralelización automática completa, existen varios enfoques para simplificarla:

Primeros compiladores paralelizadores

Muchos de los primeros compiladores paralelizadores trabajaron con programas escritos en Fortran , debido a sus restricciones más estrictas sobre el alias de puntero en comparación con C. Además, una gran cantidad de programas de matemáticas computacionales están escritos en Fortran, lo que requiere grandes recursos para su trabajo. Ejemplos de compiladores:

Compiladores modernos con soporte de paralelización

Véase también

Notas

  1. 1 2 3 4 5 6 7 8 Patrick Lam. Clase 12. Hoy hablaremos sobre la paralelización automática (enlace no disponible) . ECE459: Programación para el rendimiento (10 de febrero de 2011). Consultado el 17 de noviembre de 2013. Archivado desde el original el 27 de mayo de 2015. 
  2. 1 2 Robert van Engelen. Computación de alto rendimiento y computación científica . HPC @ Universidad Estatal de Florida (3 de octubre de 2012). Consultado el 17 de noviembre de 2013. Archivado desde el original el 27 de mayo de 2015.

Enlaces