Implementation Dependent Issues
|
This chapter details specific issues in the OpenMP Fortran 2.0 and OpenMP C/C++ 1.0 specifications that are implementation dependent.
Scheduling
- static scheduling is the default, in the absence of an explicit OMP_SCHEDULE environment variable, or an explicit SCHEDULE clause.
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.
- Set the OMP_NUM_THREADS environment variable to the number of threads.
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.
Nested Parallelism
- Nested parallelism is not supported in this implementation, and is disabled by default.
ATOMIC Directive
- This implementation replaces all ATOMIC directives and pragmas by enclosing the target statement in a critical region.
GUIDED Initial Chunk
- The default chunk size with SCHEDULE(GUIDED, chunk) is 1. The size of the initia0l set of iterations is the number of iterations in the loop divided by the number of threads executing the loop.
C++ Implementation
- For C++, the implementation is restricted to the OpenMP C specifications. In particular, the use of class objects as private data items within any OpenMP clause is not supported in this release. Also, any exceptions thrown in parallel regions will have unspecified behavior.