Sincronización de barrera

La sincronización de barrera es un método de sincronización en computación distribuida, en el que la ejecución de un algoritmo paralelo o parte de él se puede dividir en varias etapas separadas por barreras. En particular, con la ayuda de una barrera, es posible organizar un punto de recopilación de resultados parciales de cálculos, en el que se resumen los resultados de la etapa de cálculo. El uso de barreras como primitivas de sincronización es especialmente útil para la organización cíclica de etapas [1] [2] [3] .

Una barrera para un grupo de subprocesos (o procesos) en el código fuente significa que cada subproceso (proceso) debe detenerse en ese punto y esperar a que todos los subprocesos (procesos) del grupo alcancen la barrera. Cuando todos los hilos (procesos) han alcanzado la barrera, su ejecución continúa [4] .

Algunos entornos informáticos paralelos, como OpenMP y Cilk, tienen barreras implícitas en la semántica de sus bucles paralelos y bloques de código [3] .

Notas

  1. Vladimir Galatenko, Barriers Archivado el 8 de diciembre de 2015 en Wayback Machine , Conferencia 2: Herramientas de sincronización de flujo de control, Intuit
  2. Barrier (.NET Framework) Archivado el 8 de diciembre de 2015 en Wayback Machine , MSDN
  3. 1 2 R. K. Karmani et al., Patrón de sincronización de barrera Archivado el 8 de diciembre de 2015 en Wayback Machine , 2009
  4. Uso de la sincronización de barrera Archivado el 8 de diciembre de 2015 en Wayback Machine , Oracle