Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 3/22/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

OpenMP* Implementation-Defined Behaviors

This topic summarizes some of the behaviors that are described as implementation-defined in the OpenMP* API specification. See the OpenMP API specification for the full list.

NOTE:

Internal Control Variables (ICVs) mentioned below are discussed in the OpenMP API specification.

Name

Description

single construct

The first thread that encounters the single construct executes the structured block.

teams construct

The number of teams that are created is equal to 1 if you don't specify the num_teams clause.

dist_schedule clause, distribute construct

If you don't specify the dist_schedule clause, then the schedule for the distribute construct is static.

omp_set_num_threads routine

If the argument is not a positive integer, then Intel's OpenMP implementation sets the value of the first element of the nthreads-var ICV of the current task to 1.

omp_set_max_active_levels routine

If the argument is a negative integer this call is ignored and the last valid setting is used.

omp_get_max_active_levels routine

When called from within any explicit parallel region the binding thread set, and binding region, if required, for the omp_get_max_active_levels region is the current task region.

OMP_SCHEDULE environment variable

If the value of the variable does not conform to the specified format then the value of the run-sched-var ICV is set to static.

OMP_NUM_THREADS environment variable

If any value of the list specified in the environment variable is negative then the whole list is ignored. If any value of the list is zero then this value is set to 1.

OMP_PROC_BIND environment variable

If the value is not true, false, or a comma separated list of master (deprecated), primary, close, or spread, then Intel's OpenMP implementation sets the value of bind-var ICV to false.

OMP_DYNAMIC environment variable

If the value is neither true nor false, then the implementation sets the value of dyn-var ICV to false.

OMP_NESTED environment variable

If the value is neither true nor false, then the implementation sets the value of nest-var ICV to false.

OMP_STACKSIZE environment variable

If the value does not conform to the specified format or the implementation cannot provide a stack of the specified size, then Intel's OpenMP implementation sets the value of stacksize-var ICV to the default size, which is specified as being from 1MB to 4MB depending on the architecture.

On Linux*, the implementation can set the value of stacksize-var ICV up to 256MB, respecting the operating system's stack size limit.

OMP_MAX_ACTIVE_LEVELS environment variable

If the value is a negative integer or is greater than the number of parallel levels an implementation can support, then Intel's OpenMP implementation sets the value of the max-active-levels-var ICV to 1.

OMP_THREAD_LIMIT environment variable

If the requested value is greater than the number of threads an implementation can support, or if the value is a negative integer, then Intel's OpenMP implementation sets the value of the thread-limit-var ICV to the maximum number of threads supported on a particular platform.

If the requested value is zero then the implementation sets the value of the thread-limit-var ICV to 1.

Runtime library definitions

Intel's OpenMP implementation provides both the include file omp.h and omp-tools.h .