Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Общая характеристика пакета OpenMP. Последовательные и параллельные участки. Директивы распараллеливания



OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания программ на языках C, C++ и Fortran. Описывает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью.

Ориентирован на многопоточность. OpenMP - гибридный подход, сочетающий возможности автоматического и ручного распараллеливания; Для выражения параллелизма служат директивы компилятору; На данный момент OpenMP поддерживается практически всеми самыми распространенными трансляторами;

Ключевыми элементами OpenMP являются:

· конструкции для создания потоков (директива parallel),

· конструкции распределения работы между потоками (директивы DO/for и section),

· конструкции для управления работой с данными (выражения shared и private для определения класса памяти переменных),

· конструкции для синхронизации потоков (директивы critical, atomic и barrier),

· процедуры библиотеки поддержки времени выполнения (например, omp_get_thread_num),

· переменные окружения (например, OMP_NUM_THREADS). omp_set_num_threads().

· int omp_get_num_procs() возвращает количество процессоров в системе;

· int omp_get_num_threads() возвращает количество тредов, выполняющих параллельный участок (меняется только на последовательных участках);

· int omp_get_thread_num() возвращает номер вызывающего треда.

Модель выполнения OpenMP приложения:

#pragma omp directive_name [clause[clause...]] newline

Действия, соответствующие директиве применяются

непосредственно к структурному блоку, расположенному за

директивой. Структурным блоком может быть любой оператор,

имеющий единственный вход и единственный выход.

Если директива расположена на файловом уровне видимости, то

она применяется ко всему файлу.





Дата публикования: 2015-01-13; Прочитано: 461 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...