Русская Википедия:Барьерная синхронизация

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

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

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

Примечания

Шаблон:Примечания

Шаблон:Нет иллюстрации Шаблон:Дописать

  1. Владимир Галатенко, Барьеры Шаблон:Wayback, Лекция 2: Средства синхронизации потоков управления, Интуит
  2. Barrier (.NET Framework) Шаблон:Wayback, MSDN
  3. 3,0 3,1 R. K. Karmani et al., Barrier Synchronization Pattern Шаблон:Wayback, 2009
  4. Using Barrier Synchronization Шаблон:Wayback, Oracle