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



Pdf көрінісі
бет30/53
Дата07.06.2023
өлшемі6.58 Mb.
#474796
1   ...   26   27   28   29   30   31   32   33   ...   53
ParProg MPI OpenMP

3.2.2 Директивы и функции 
 
Значительная часть функциональности OpenMP реализуется при 
помощи директив компилятору. Они должны быть явно вставлены 
пользователем, что позволит выполнять программу в параллельном 
режиме. Директивы OpenMP в программах на языке Си являются 
указаниями препроцессору, начинающимися с #pragma omp. Формат 
директивы на Си/Си++: 
#pragma omp <имя директивы> [опция [[, ] опция …] 


49 
Объектом действия большинства директив является один оператор 
или блок, перед которым расположена директива в исходном тексте 
программы. В OpenMP такие операторы или блоки называются 
ассоциированными с директивой. Ассоциированный блок должен иметь 
одну точку входа в начале и одну точку выхода в конце. Порядок опций в 
описании директивы несущественен, в одной директиве большинство 
опций может встречаться несколько раз. 
После некоторых опций может следовать список переменных, 
разделяемых запятыми. Каждая директива может иметь несколько 
дополнительных атрибутов – опций (clause). Отдельно специфицируются 
опции для назначения классов переменных, которые могут быть 
атрибутами различных директив. 
Опция (clause) – это необязательный модификатор директивы
влияющий на ее поведение. Списки опций, поддерживаемые каждой 
директивой, различаются, а пять директив (master, critical, flush, ordered и 
atomic) вообще не поддерживают опции. 
OpenMP поддерживает директивы parallel, for, parallelfor, section, 
sections, single, master, critical, flush, ordered и atomic, и ряд других, 
которые определяют механизмы разделения работы или конструкции 
синхронизации. 
Все директивы OpenMP можно разделить на 3 категории: 
определение 
параллельной 
области, 
распределение 
работы, 
синхронизация.
Чтобы задействовать функции библиотеки OpenMP периода 
выполнения (исполняющей среды), в программу нужно включить 
заголовочный файл omp.h. Если вы используете в приложении только 
OpenMP-директивы, включать этот файл не требуется. Функции 
назначения параметров имеют приоритет над соответствующими 
переменными окружения. 
Все функции, используемые в OpenMP, начинаются с префикса 
omp_. Если пользователь не будет использовать в программе имён, 
начинающихся с такого префикса, то конфликтов с объектами OpenMP 
заведомо не будет. В языке Си, кроме того, является существенным 
регистр символов в названиях функций. Названия функций OpenMP 
записываются строчными буквами [1,6].


Достарыңызбен бөлісу:
1   ...   26   27   28   29   30   31   32   33   ...   53




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

    Басты бет