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].
Достарыңызбен бөлісу: