Release Candidate 2 of the OpenMP 4.0 API specifications currently under development is now available for public discussion.

In addition to a number of corrections and clarifications to the specifications, Release Candidate 2 includes the following major enhancements:

  • Initial accelerators support: Device Data Environments (p16), target constructs (p68: target, target data, target update, declare target, teams, distribute; p151: map clause; and associated runtime routines (p191).)
  • Task dependency support through the new depend clause. (p91)
  • Initial error model support through cancel and cancellation point constructs to request cancellation of specified region types and to declare a user-defined cancellation point to  check for cancellation requests.. (Section 2.13, p116: Cancellation Constructs)
  • Support for Array Sections in C and C++ as well as adding sectioning support for Fortran. (Section 2.4, p36: Array Sections)
  • Extends declare simd to allow multiple declarations. (p64)
  • New environment variable OMP_DISPLAY_ENV instructs the runtime to display the OpenMP version number and initial values during initialization. (p219)
  • Additional enhancements to support Fortran 2003.

These are in addition to enhancements introduced in RC1: thread affinity, initial support for Fortran 2003, SIMD constructs to vectorize both serial and parallelized loops, TASKGROUP, user-defined reductions, and sequentially consistent atomics.

The OpenMP ARB plans to follow this public discussion period with the finalized full 4.0 API specifications later this year.

The 4.0 Release Candidate API specifications (4.0 RC2, 4.0 RC1) and the Technical Report (TR1) PDFs can be downloaded from the »OpenMP Specifications Page.