OpenMP

Материал из ЭНЭ
Перейти к: навигация, поиск

OpenMP: стандартизованная модель параллельного программирования по парадигме общей памяти и соответствующее дополнение к среде исполнения. Имеет интерфейсы к Си/Си++ и Фортрану. Считается хорошо переносимой между платформами и масштабируемой.

Модель разработана в 1997 году промышленным консорциумом во главе с Silicon Graphics; имеет существенную преемственность со стандартами (спецификациями) PCF Fortran и HPF (High-performance Fortran). Подобно HPF, для задания параллелизма используются особые приказы (директивы) компилятора (т.наз. директивная параллельность), начинающиеся с пары знаков !$; соответственно, при сборке программы в непараллельной среде компилятор может истолковать эти инструкции параллельности как комментарии, т.е., проигнорировать их.

Модель OpenMP предоставляет хорошие возможности по программированию машин, имеющих унифицированный (единообразный) доступ к общей памяти. Однако модель не содержит способа определить (задать) местность (локальность) данных в машинах с неединообразной общей или распределённой памятью. На кластерах, состоящих из многопроцессорных рабочих станций, среду OpenMP часто используют в сочетании со средой MPI — OpenMP собственно на узлах, а MPI — для передачи сообщений между узлами.

Пример задания параллельно исполняемого цикла в OpenMP-варианте языка Фортран:

!$OMP PARALLEL DO

DO I = 2, N

APRIME(I) = (A(I+1) +2*A(I) + A(I-1))*0.25

ENDDO

Ю.Т.

Источники

  • Введение в параллельное программирование...