XL C/C++ supports application development for multiprocessor system architectures.
- Directive-based shared memory parallelization
- Instructing the compiler to automatically generate shared memory parallelization
- Message passing based shared or distributed memory parallelization (MPI)
For more information, see Parallelizing your programs.
OpenMP directives are a set of API-based commands supported by XL C/C++ and many other IBM® and non-IBM C, C++, and Fortran compilers.
You can use OpenMP directives to instruct the compiler how to parallelize a particular loop. The existence of the directives in the source removes the need for the compiler to perform any parallel analysis on the parallel code. OpenMP directives require the presence of Pthread libraries to provide the necessary infrastructure for parallelization.
- Clauses and directives are available for scoping variables. Frequently, variables should not be shared; that is, each processor should have its own copy of the variable.
- Work sharing directives specify how the work contained in a parallel region of code should be distributed across the processors.
- Directives are available to control synchronization between the processors.
As of XL C/C++ for Linux®, V10.1, XL C/C++ supports the OpenMP API Version 3.0 specification. See OpenMP 3.0 for an overview of the support provided by this feature.