Барьер (информатика)
-
Определение барьера
- Барьер в параллельных вычислениях — это метод синхронизации, который останавливает все потоки до достижения барьера.
- Коллективные процедуры и параллельные языки часто создают барьеры неявно.
-
Типы барьеров
- Барьер может быть в поднятом или опущенном состоянии, а также может быть «защелкой» или «защелкой обратного отсчета».
-
Реализация барьера
- Для отслеживания количества потоков, прошедших барьер, используется переменная.
- При реализации барьера необходим мьютекс.
- Централизованный барьер требует ожидания перед «центральным барьером» до его снятия.
-
Барьер потока и изменение восприятия
- Барьер потока может использовать разные состояния для обозначения прохождения или остановки потоков.
- Изменение восприятия позволяет потокам воспринимать себя как проходящие или останавливающиеся у барьера.
-
Комбинирующий барьер из деревьев
- Централизованный барьер может быть неэффективным из-за высокого коммуникационного трафика.
- Комбинирующий барьер из деревьев решает эту проблему, разделяя потоки на подгруппы и синхронизируя их на разных уровнях.
-
Аппаратная реализация барьера
- Аппаратный барьер использует выделенные провода для передачи сигналов и может быть реализован с помощью счетчиков потоков и флагов.
- В больших системах аппаратная реализация может вызывать высокую задержку.
-
Функции защиты потоков POSIX
- POSIX Threads standard поддерживает функции блокировки потоков для синхронизации на уровне барьера.
- Примеры использования функций блокировки потоков для блокировки процесса или основного потока до достижения барьера.