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.