The z/OS V2R1 XL C/C++ compiler introduces support for OpenMP parallelization directives. Parallelization of C/C++ program code can be enabled by specifying the SMP compiler option.
z/OS XL C/C++ compiler supports shared memory program parallelization by explicit parallelization of C and C++ program code using pragma directives that are compliant to the OpenMP Application Program Interface specification. When the SMP compiler option is in effect, program code with OpenMP directives that are compliant to the OpenMP API 3.1 standard is explicitly parallelized.
Parallel regions of program code are executed by multiple threads, possibly running on multiple processors. The number of threads created is determined by environment variables and calls to library functions. Work is distributed among available threads according to scheduling algorithms specified by the environment variables. If you are using OpenMP constructs, you can use the OpenMP environment variables to control thread scheduling.
For usage information of the SMP compiler option, see SMP | NOSMP in z/OS XL C/C++ User's Guide.
For description of the OpenMP directives, see Pragma directives for parallel processing in z/OS XL C/C++ Language Reference.
For information about optimizing C/C++ application by parallelization, see Parallelizing your programs in z/OS XL C/C++ Programming Guide.