OpenMP support

IBM® XL C/C++ for Linux, V13.1.5 partially supports the OpenMP Application Program Interface Version 4.5 specification. The XL C/C++ implementation is based on IBM's interpretation of the OpenMP Application Program Interface 4.5.

New directives

In addition to the existing OpenMP directives, IBM XL C/C++ for Linux, V13.1.5 adds support for the following directives and their clauses:
Table 1. OpenMP device constructs
Directive Clause
omp target data
  • if
  • device
  • map
omp target enter data
  • if
  • device
  • map
omp target exit data
  • if
  • device
  • map
omp target
  • defaultmap
  • device
  • firstprivate
  • if
  • map
  • private
omp target update
  • device
  • from
  • if
  • to
omp declare target
  • to
omp teams
  • default
  • firstprivate
  • num_teams
  • private
  • reduction
  • shared
  • thread_limit
omp distribute
  • collapse
  • dist_schedule
  • firstprivate
  • lastprivate
  • private
omp distribute parallel for Any clauses that are accepted by the omp distribute or omp parallel for directive except the linear and ordered clauses.
The following directives as combined constructs are also supported. For more information, see Combined constructs.
  • omp target parallel
  • omp target parallel for
  • omp target teams
  • omp target teams distribute
  • omp target teams distribute parallel for
  • omp teams distribute
  • omp teams distribute parallel for

New functions

In addition to the existing OpenMP functions, IBM XL C/C++ for Linux, V13.1.5 supports the following OpenMP execution environment functions:
IBM XL C/C++ for Linux, V13.1.5 also adds support for the following OpenMP device memory functions:

New environment variables

IBM XL C/C++ for Linux, V13.1.5 adds support for the following OpenMP environment variables:


Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us