Переход от эталонного представления языка программирования к конкретному языку - page 4

В.А. Фисун
OpenMP (Open Multi-Processing). Соответствующие комплексы раз-
работаны и используются также для Си-систем программирования.
Считается, что такие системы параллельного программирования поз-
воляют использовать фонд последовательных программ, накопленных
на этих языках.
Основная концепция системы программирования OpenMP состоит
в организации распределенных вычислений на многопроцессорных
системах с общей памятью. OpenMP — набор директив, библиотеч-
ных процедур и системных переменных, которые предназначены для
программирования многопоточных приложений с помощью спецком-
ментариев на языках Cи, Cи++ и Фортран. В языке Фортран призна-
ком спецкомментария OpenMP является префикс
!$омр
, а в Си — ди-
ректива
#pragma omp
. Использование специальных ключевых сим-
волов
omp
указывает на то, что эти команды относятся к OpenMP.
Таким образом, директивы
#pragma
для работы с OpenMP имеют
следующий формат:
#pragma omp <директива>
.
OpenMP поддерживает директивы
private
,
parallel
,
for
,
section
,
single
,
master
,
critical
,
flush
,
ordered
,
atomic
и ряд других, которые определяют механизмы распараллеливания
вычислительных работ или задают конструкции синхронизации. Ес-
ли программа, содержащая директивы OpenMP, скомпилирована Си,
Си++, Фортран-компиляторами в режиме обработки эталонного язы-
ка с игнорированием спецкомментариев, то полученный объектный
код будет выполняться как последовательный. В настоящее время
практически все ведущие производители многоядерных процессоров
поддерживают систему OpenMP в компиляторах на своих платформах.
Для класса распределенных вычислений разработана система па-
раллельного программирования DVM, основанная на модели парал-
лелизма по данным (МПД). Описываемые далее целеуказания этой
разработки определены в работе [2]. В этой модели отсутствуют поня-
тие процесса и явная передача сообщений или явная синхронизация.
Согласно этой модели данные последовательной программы распре-
деляются по узлам (процессорным элементам) вычислительного кла-
стера, а последовательная программа преобразуется в параллельную
версию программы с использованием модели передачи сообщений ли-
бо модели с общей памятью. Такая модель параллелизма освобождает
программиста от рутинной и трудоемкой работы по распределению
глобальных массивов на локальные массивы процессов, по управле-
нию передачей сообщений и синхронизации доступа к общим дан-
ным. Разработчики системы DVM приводят примеры высокой эффек-
тивности реализации многих алгоритмов научно-технических расче-
тов с помощью МПД.
4
1,2,3 5,6,7,8
Powered by FlippingBook