библиотека OpenMP
Основными средствами программирования для многопроцессорных вычислительных систем являются стандартные библиотеки программ. Одной из таких библиотек является библиотека OpenMP, ориентированная на мультипроцессоры. OpenMP расширяет последовательный язык программирования для мультипроцессоров набором директив компилятора и библиотечных функций.
OpenMP-программа
Программа, построенная с использованием средств библиотеки OpenMP, называется OpenMP-программой.
параллельная область
При входе в параллельную область порождается некоторое количество N новых нитей, т.е. образуется бригада из N нитей, а порождающая нить получает номер 0 и становится главной нитью бригады. Число нитей определяется с помощью специальной переменной окружения или с помощью вызова одной из функций OpenMP. Нити, соответствующие параллельной области, выполняются параллельно на разных процессорах мультипроцессора. Распределение нитей по процессорам мультипроцессора находится в ведении его операционной системы. Директивы определения параллельной области имеют вид: PARALLEL...ENDPARALLEL. Для параллельной области можно указать классы используемых в ней данных.
параллельная конструкция
В OpenMP параллельные конструкции определяются с помощью следующих директив: DO...ENDDO; SECTIONS...ENDSECTIONS; SINGLE...ENDSINGLE. Параллельная конструкция определяет объем работ нитей в бригаде, но не создает новых нитей.
общие данные
разделяемые данные
Для параллельной области можно указать классы используемых в ней данных. Одним из таких классов данных являются общие данные - данные, общие для всех нитей бригады.
приватные данные
локальные данные
Для параллельной области можно указать классы используемых в ней данных. Одним из таких классов данных являются приватные данные - данные, локальные для каждой нити в бригаде.
параметры окружения
переменные среды
В целях создания переносимой среды запуска параллельных программ, в OpenMP определен ряд параметров окружения (переменных среды), позволяющих контролировать из OpenMP-программы поведение приложения.