Задание переменных окружения с помощью функций runtime OpenMP

В программах, написанных на C/C++ с использованием OpenMP, существуют следующие возможности задания переменных окружения, определяющих режимы работы параллельных частей программ.

С помощью вызова функции

(void) omp_set_num_threads(int num_threads)

можно задать число потоков в области параллельных вычислений, т. е. определить значение переменной окружения OMP_NUM_THREADS. При завершении работы эта функция не возвращает в программу никаких значений.

Функция

int omp_get_num_threads()

напротив, возвращает в программу целочисленное значение, равное количеству параллельных потоков в текущий момент времени.

Следующая функция

int omp_get_max_threads()

возвращает в программу целочисленное значение, равное максимальному количеству параллельных потоков, которое может быть возвращено функцией omp_get_num_threads.

Для определения номера параллельного потока в текущий момент времени программы можно воспользоваться функцией

int_omp_get_thread_num()

Она возвращает целочисленное значение в диапазоне от 0 до OMP_NUM_THREADS-1.

Определить количество процессоров, доступных программе в текущей точке, можно с помощью функции

int omp_get_num_procs()

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

(int/logical) omp_in_parallel()

Она возвращает значение TRUE или 1 в точке параллельной области программы и FALSE или 0 в точке последовательной области программы.

Задать или отменить динамический режим работы программы можно, воспользовавшись функцией

(void) omp_set_dynamic( TRUE | FALSE )

Для задания динамического режима следует использовать параметр TRUE, а для его отмены - параметр FALSE. При этом в списке переменных окружения определяется или удаляется переменная окружения OMP_DYNAMIC или задается ее значение, соответственно равное TRUE или FALSE.

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

(int/logical) omp_get_dynamic()

Эта функция возвращает значение TRUE или 1, если режим динамический, и FALSE или 0 в случае статического режима.

Задать или отменить вложенный режим параллельной обработки процессов в параллельной области программы можно с помощью функции

(void) omp_set_nested( TRUE | FALSE )

Она устанавливает или отменяет вложенный режим параллельной обработки. При этом в списке переменных окружения определяется или удаляется переменная окружения OMP_NESTED либо задается ее значение, соответственно равное TRUE или FALSE.

Следующая функция позволяет идентифицировать, установлен или нет вложенный режим параллельной обработки в момент вызова функции

(int/logical) omp_get_nested()

Эта функция возвращает значение TRUE или 1 для вложенного режима параллельной обработки и значение FALSE или 0 при отсутствии такового.

При обращении ко всем вышеперечисленным функциям в заголовки программ на языке С/С++ необходимо включать строку:

#include <omp.h>







Дата добавления: 2015-02-03; просмотров: 883;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.