ВУЗ:
Рубрика:
29
За счет идеи «частичного распараллеливания» OpenMP идеаль-
но подходит для разработчиков, желающих быстро распараллелить
свои вычислительные программы с большими параллельными цик-
лами. Разработчик не создает новую параллельную программу, а
просто добавляет в текст последовательной программы OpenMP-
директивы. Предполагается, что OpenMP-программа на однопро-
цессорной платформе может быть использована в качестве последо-
вательной программы, т.е. нет необходимости одновременно под-
держивать последовательную и параллельную версии. Директивы
OpenMP просто игнорируются последовательным компилятором, а
для вызова процедур OpenMP могут быть подставлены заглушки
(stubs), текст которых приведен в спецификациях.
OpenMP прост в использовании и включает лишь два базовых
типа конструкций: директивы pragma и функции исполняющей сре-
ды OpenMP. Директивы pragma, как правило, указывают компиля-
тору, как реализовать параллельное выполнение блоков кода. Все
эти директивы начинаются с фразы !$OMP. Как и любые другие
директивы pragma, они игнорируются компилятором,
не поддерживающим конкретную технологию – в данном случае
OpenMP. Каждая директива может иметь несколько дополнитель-
ных атрибутов. Отдельно специфицируются атрибуты для назначе-
ния классов переменных, которые могут быть атрибутами различ-
ных директив.
Функции OpenMP служат в основном для изменения
и получения параметров окружения. Кроме того, OpenMP включает
API-функции для поддержки некоторых типов синхронизации. Что-
бы задействовать эти функции OpenMP библиотеки периода вы-
полнения (исполняющей среды), в программу нужно включить за-
головочный файл omp.h. Если же используется в приложении толь-
ко OpenMP-директивы pragma, включать этот файл не требуется.
2.4.1 Основные директивы OpenMP
!$OMP PARALLEL [атрибут [[,] атрибут] …]
блок операторов программы
!$OMP END PARALLEL
Определяет параллельную область программы. При входе в эту
область порождаются новые (N-1) нити, образуется «команда» из N
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »
