OpenMP 6.0 Parallel Programming Standard Released

After three years of development, OpenMP has released version 6.0 of its specifications, which determine the API and methods of applying parallel programming for C languages, C++ and Fortran on multi-core and hybrid (CPU+GPU/DSP) systems with common memory and vectorization blocks (SIMD). It is expected that initial support for the individual capabilities of OpenMP 6.0 will be included in the upcoming releases of llvm/clang 20 and GCC 15.

The main changes in OpenMP 6.0 include:

  • The simplification of the programming tasks process, allowing independent parts of the program to be performed in parallel with other parts. This includes the ability to perform tasks in Free-Agent flows and support for the preservation of the task graph for increased efficiency.
  • The implementation of transparent tasks mechanism to simplify control of dependencies and automatic management of subsidiaries.
  • Expanded support for computing devices like CPU and GPU, with new syntax for arrays and improved memory management for data distribution between devices.
  • Simplified code for asynchronous data transfers to additional computing devices and added the Directive “GroupPrivate” to consolidate memory behind a group of flows on a specific computing device.
  • Simplified programming for transformations of cycles and added a new induction operation for organizing iterations in simple arithmetic calculations and user operations based on previous values.
/Reports, release notes, official announcements.