Параллельное программирование. Лекция 10b. Синхронизация и балансировка нитей (OpenMP)
Институт математики, механики и компьютерных наук им.И.И.Воровича ЮФУ http://mmcs.sfedu.ru.
Лекции по параллельному программированию читает доцент кафедры алгебры и дискретной математики М.Э.Абрамян. В лекциях используется электронный задачник по программированию Programming Taskbook http://ptaskbook.com
В лекции использована презентация А.С.Антонова "Технология программирования OpenMP" (Летняя суперкомпьютерная академия, Москва, 2017 г.). Презентация включена в данное видео с любезного разрешения автора. Дополнительные материалы доступны по ссылке http://edu.mmcs.sfedu.ru/course/view....
Содержание: 00:00 Пример использования директивы ordered. 06:29 Синхронизация с помощью критических секций: директива critical. Рекомендации по использованию критических секций. Именованные и анонимные критические секции. 12:39 Пример программы, использующей критическую секцию. 18:54 Эффективная синхронизация оператора, модифицирующего общую переменную: директива atomic, пример. Варианты параллельных алгоритмов, не требующие синхронизации. 28:55 Синхронизация с помощью замков (locks). Создание, захват, освобождение и разрушение замка. Множественные замки (nested locks). Пример программы, использующей замок. 38:01 Функции, реализующие неблокирующую попытку захвата замка, пример их использования.