OMP_SET_DYNAMIC - разрешает или запрещает динамическое изменение числа нитей в параллельной области.
C/C++:
#include <omp.h>
void omp_set_dynamic(int dynamic_threads)
Fortran:
SUBROUTINE OMP_SET_DYNAMIC(scalar_logical_expression)
Функция вызывается в последовательной области программы. В языке Фортран подпрограмма, вызванная с параметром равным .TRUE., разрешает динамическое изменение числа нитей в параллельной области, если параметер равен .FALSE., то изменение числа нитей запрещено. В языках C/C++ если значение параметра не равно 0, то динамическое изменение разрешено, в противном случае запрещено. Функция OMP_SET_DYNAMIC имеет приоритет перед переменной окружения OMP_DYNAMIC.
OMP_GET_DYNAMIC - определяет разрешено или запрещено динамическое изменение числа нитей в параллельной области.
C/C++:
#include <omp.h>
int omp_get_dynamic(void)
Fortran:
LOGICAL FUNCTION OMP_GET_DYNAMIC( )
В языке Фортран значение .TRUE. означает, что динамическое изменение числа нитей разрешено, а значение .FALSE. - запрещено. В языках C/C++, если возвращается значение не 0, то динамическое изменение разрешено, в противном случае запрещено.
OMP_SET_NUM_THREADS - устанавливает число нитей в параллельном участке.
C/C++:
#include <omp.h>
void omp_set_num_threads(int num_threads)
Fortran:
SUBROUTINE OMP_SET_NUM_THREADS(scalar_integer_expression)
Функция вызывается в последовательном участке и имеет приоритет перед переменной окружения OMP_NUM_THREADS. Если динамическое изменение числа нитей разрешено, то вызов функции определяет максимальное число нитей в участке, если запрещено, то задается точное значение числа нитей.
OMP_GET_NUM_THREADS - возвращает число нитей в текущем параллельном участке.
C/C++:
#include <omp.h>
int omp_get_num_threads(void)
Fortran:
INTEGER FUNCTION OMP_GET_NUM_THREADS( )
OMP_GET_MAX_THREADS - возвращает максимальное значение числа нитей в текущем параллельном участке.
C/C++:
#include <omp.h>
int omp_get_max_threads(void)
Fortran:
INTEGER FUNCTION OMP_GET_MAX_THREADS( )
OMP_GET_THREAD_NUM - функция возвращает номер вызвавшей ее нити.
C/C++:
#include <omp.h>
int omp_get_thread_num(void)
Fortran:
INTEGER FUNCTION OMP_GET_THREAD_NUM( )
Переменная, которой будет присваиваться значение функции, должна быть описана как PRIVATE в параллельной области. При вызове функции из последовательной области будет возвращаться 0.
OMP_GET_NUM_PROCS - функция возвращает число процессоров, доступных программе.
C/C++:
#include <omp.h>
int omp_get_num_procs(void)
Fortran:
INTEGER FUNCTION OMP_GET_NUM_PROCS( )
OMP_IN_PARALLEL - определяет сделан ли вызов из параллельной области программы.
C/C++:
#include <omp.h>
int omp_in_parallel(void)
Fortran:
LOGICAL FUNCTION OMP_IN_PARALLEL( )
В языке Фортран возврат .TRUE. означает, что вызов сделан из параллельной области, в противном случае возвращается .FALSE. В языках C/C++, если вызов сделан из параллельной области, то возвращается не 0.
OMP_SET_NESTED - разрешает или запрещает вложенный параллелизм.
C/C++:
#include <omp.h>
void omp_set_nested(int nested)
Fortran:
SUBROUTINE OMP_SET_NESTED(scalar_logical_expression)
В языке Фортран подпрограмма, вызванная с параметром равным .TRUE., разрешает вложенный параллелизм, если параметр равен .FALSE., то вложенный параллелизм запрещен. В языках C/C++ если значение параметра не равно 0, то вложенный параллелизм разрешен, в противном случае запрещен. Функция OMP_SET_NESTED имеет приоритет перед переменной окружения OMP_NESTED. По умолчанию вложенный параллелизм запрещен.
OMP_GET_NESTED - определяет разрешен или запрещен вложенный параллелизм
C/C++:
#include <omp.h>
int omp_get_nested(void)
Fortran:
LOGICAL FUNCTION OMP_GET_NESTED( )
В языке Фортран значение .TRUE. означает, что вложенный параллелизм разрешен, а значение .FALSE. - запрещен. В языках C/C++, если возвращается значение не 0, то вложенный параллелизм разрешен, в противном случае запрещен.
В стандарте OpenMP 3.0 в связи с появлением дополнительных переменных окружения добавлено еще 15 новых встроенных функций, список которых приведем без обсуждения:
OMP_SET_SCHEDULE,
OMP_GET_SCHEDULE,
OMP_SET_MAX_ACTIVE_LEVELS,
OMP_GET_MAX_ACTIVE_LEVELS,
OMP_GET_LEVEL,
OMP_GET_ANCESTOR_THREAD_NUM,
OMP_GET_TEAM_SIZE,
OMP_GET_ACTIVE_LEVEL,
OMP_IN_FINAL,
OMP_INIT_NEST_LOCK,
OMP_DESTROY_NEST_LOCK,
OMP_SET_NEST_LOCK,
OMP_UNSET_NEST_LOCK,
OMP_TEST_NEST_LOCK.