Н., Пескова Е. Е., Шаманаев П. А. Основы параллельного программирования с использованием технологий mpi и openmp учебное пособие саранск издательство свмо 2013 2



Pdf көрінісі
бет51/53
Дата07.06.2023
өлшемі6.58 Mb.
#474796
1   ...   45   46   47   48   49   50   51   52   53
ParProg MPI OpenMP

3.5.5 Директива flush 
Синхронизация типа flush используется для обновления значений 
локальных переменных, перечисленных в качестве аргументов этой 
команды, в оперативной памяти. После выполнения этой директивы все 
переменные, перечисленные в этой директиве, имеют одно и то же 
значение для всех параллельных потоков. 
#pragma omp flush [(список)] 
Выполнение данной директивы предполагает, что значения всех 
переменных (или переменных из списка, если он задан), временно 
хранящиеся в регистрах и кэш-памяти текущей нити, будут занесены в 
основную память; все изменения переменных, сделанные нитью во время 
работы, станут видимы остальным нитям; если какая-то информация 
хранится в буферах вывода, то буферы будут сброшены и т.п. При этом 
операция производится только с данными вызвавшей нити, данные, 
изменявшиеся другими нитями, не затрагиваются. Поскольку выполнение 
данной директивы в полном объёме может повлечь значительных 
накладных расходов, а в данный момент нужна гарантия согласованного 
представления не всех, а лишь отдельных переменных, то эти переменные 
можно явно перечислить в директиве списком. До полного завершения 
операции никакие действия с перечисленными в ней переменными не 
могут начаться.
Неявно flush без параметров присутствует в директиве barrier, на 
входе и выходе областей действия директив parallel, critical, ordered, на 
выходе областей распределения работ, если не используется опция nowait
в вызовах функций omp_set_lock(), omp_unset_lock(), omp_test_lock()
omp_set_nest_lock()omp_unset_nest_lock()omp_test_nest_lock(), если при 
этом замок устанавливается или снимается, а также перед порождением и 
после завершения любой задачи (task). Кроме того, flush вызывается для 
переменной, участвующей в операции, ассоциированной с директивой 


Достарыңызбен бөлісу:
1   ...   45   46   47   48   49   50   51   52   53




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет