Барьерная синхронизация

Барьерная синхронизация — метод синхронизации в распределённых вычислениях, при котором выполнение параллельного алгоритма или его части можно разделить на несколько этапов, разделённых барьерами. В частности, с помощью барьера можно организовать точку сбора частичных результатов вычислений, в которой подводится итог этапа вычислений. Использование барьеров как примитивов синхронизации особенно полезно при циклической организации этапов[1][2][3].

Барьер для группы потоков (или процессов) в исходном коде означает, что каждый поток (процесс) должен остановиться в этой точке и подождать достижения барьера всеми потоками (процессами) группы. Когда все потоки (процессы) достигли барьера, их выполнение продолжается[4].

Некоторые среды параллельных вычислений, например, OpenMP и Cilk, имеют неявные барьеры в семантике своих параллельных циклов и блоков кода[3].

Примечания

  1. Владимир Галатенко, Барьеры, Лекция 2: Средства синхронизации потоков управления, Интуит
  2. Barrier (.NET Framework), MSDN
  3. R. K. Karmani et al., Barrier Synchronization Pattern, 2009
  4. Using Barrier Synchronization, Oracle
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.