Размер шрифта
-
+

Организация параллельных потоков. Часть 2. Учебное пособие - стр. 3


Рис. 2.1. Модель распараллеливания fork-join


Задание. Изучите в Википедии статью «Fork join».

2.3. Термины OpenMP

В технологии OpenMP используют следующие понятия и термины.

Construct – Конструкция – директива и следующий за ней структурный блок команд (часть программы, ограниченная фигурными скобками).

Directive – Директива – строка, начинающаяся как #pragma omp и определяющая поведение программы.

Thread – Поток – часть программы, которая может выполняться последовательно на одном ядре.

Master thread – Главный поток – поток, который существует на протяжении всего времени выполнения процесса и который создаёт группу параллельных потоков (Team) при входе в параллельную область.

Team – Группа параллельных потоков – один или несколько потоков, которые участвуют в выполнении какой-либо конструкции языка.

Параллельная программа состоит из параллельных и последовательных областей.

Parallel region – Параллельная область – часть программы, которая может выполняться несколькими потоками.

Serial region – Последовательная область – часть программы, которая выполняется только главным потоком.

Переменные делятся на два вида – в зависимости от способа доступа:

Private – уникальная переменная, доступная только внутри потока.

Shared – общая переменная, доступная всем параллельным потокам в рамках одной группы.

2.4. Ответственность разработчика

Лёгкость распараллеливания оборачивается повышением ответственности программиста.

Конкретная реализация OpenMP (среда разработки, компилятор и библиотека) не обязательно проверяет корректность распараллеливания и возникновение следующих нежелательных ситуаций:

– Dependencies – зависимости по данным между параллельными потоками;

– Conflicts – конфликты доступа к данным;

– Deadlocks – тупиковые ситуации (взаимная блокировка);

– Race conditions – ситуация гонки за доступ к данным.

Как видим, все эти ситуации связаны с обращением к общим данным из нескольих параллельных потоков. В последовательных программах таким проблем просто не может возникнуть.

Ответственность за корректность составления программы лежит полностью на составителе программы. Все эти положения можно найти в тексте спецификации OpenMP.

2.5. Инструменты OpenMP

Для реализации параллелизма в технологии OpenMP используют три вида инструментов:

– Directives – Директивы компилятора;

– Library functions – Готовые библиотечные функции;

– Environment variables – Переменные среды (параметры окружения).


2.5. Среда разработки

Всё программное обеспечение, используемое в данной работе, является бесплатным и доступно на официальных сайтах фирм-разработчиков. Программы устанавливают в операционной системе

Страница 3