Implementation-Dependent Issues
|
This chapter notes specific issues in the OpenMP 2.0 Fortran and C/C++ specifications that are implementation dependent. For last-minute information regarding the latest compiler releases, see the C, C++, and Fortran readme files.
Scheduling
- The default, in the absence of an explicit OMP_SCHEDULE environment variable, or an explicit SCHEDULE clause, is static scheduling.
Number of Threads
- Without an explicit num_threads() clause, call to the omp_set_num_threads() function, or an explicit definition of the OMP_NUM_THREADS environment variable, the default number of threads in a team is 1.
Dynamic Threads
- Without an explicit call to the omp_set_dynamic() function, or an explicit definition of the OMP_DYNAMIC environment variable, the default is to enable dynamic thread adjustment. When dynamic thread adjustment is enabled, the number of threads is limited to the number of available processors.
Nested Parallelism
- Nested parallelism is not supported in this implementation, and is disabled by default. Nested parallel regions are executed by a single thread only.
ATOMIC Directive
- This implementation replaces all ATOMIC directives and pragmas by enclosing the target statement in a critical region.
GUIDED Initial and Minimum Chunk Size
- The default minimum chunk size with SCHEDULE(GUIDED, chunk) is 1. The default initial chunk size is the number of iterations in the loop divided by the number of threads executing the loop.
Explicitly Threaded Programs
- Programs using threads can call routines that contain OpenMP directives.