2.2 OpenMP 5.0

New features listed in Appendix B of the OpenMP specification

Array shapingN
Array sections with non-unit strides in C and C++N
metadirective directiveN
declare variant directivePsimd traits not handled correctly
target-offload-var ICV and OMP_TARGET_OFFLOAD env variableY
Nested-parallel changes to max-active-levels-var ICVY
requires directiveYSee also Offload-Target Specifics
teams construct outside an enclosing target regionY
Non-rectangular loop nestsPFull support for C/C++, partial for Fortran (PR110735)
!= as relational-op in canonical loop form for C/C++Y
nonmonotonic as default loop schedule modifier for worksharing-loop constructsY
Collapse of associated loops that are imperfectly nested loopsY
Clauses if, nontemporal and order(concurrent) in simd constructY
atomic constructs in simdY
loop constructY
order(concurrent) clauseY
scan directive and in_scan modifier for the reduction clauseY
in_reduction clause on task constructsY
in_reduction clause on target constructsPnowait only stub
task_reduction clause with taskgroupY
task modifier to reduction clauseY
affinity clause to task constructYStub only
detach clause to task constructY
omp_fulfill_event runtime routineY
reduction and in_reduction clauses on taskloop and taskloop simd constructsY
taskloop construct cancelable by cancel constructY
mutexinoutset dependence-type for depend clauseY
Predefined memory spaces, memory allocators, allocator traitsYSee also Memory allocation
Memory management routinesY
allocate directivePOnly C for stack/automatic and Fortran for stack/automatic and allocatable/pointer variables
allocate clausePInitial support
use_device_addr clause on target dataY
ancestor modifier on device clauseY
Implicit declare target directiveY
Discontiguous array section with target update constructN
C/C++’s lvalue expressions in to, from and map clausesY
C/C++’s lvalue expressions in depend clausesY
Nested declare target directiveY
Combined master constructsY
depend clause on taskwaitY
Weak memory ordering clauses on atomic and flush constructY
hint clause on the atomic constructYStub only
depobj construct and depend objectsY
Lock hints were renamed to synchronization hintsY
conditional modifier to lastprivate clauseY
Map-order clarificationsP
close map-type-modifierY
Mapping C/C++ pointer variables and to assign the address of device memory mapped by an array sectionP
Mapping of Fortran pointer and allocatable variables, including pointer and allocatable components of variablesPMapping of vars with allocatable components unsupported
defaultmap extensionsY
declare mapper directiveN
omp_get_supported_active_levels routineY
Runtime routines and environment variables to display runtime thread affinity informationY
omp_pause_resource and omp_pause_resource_all runtime routinesY
omp_get_device_num runtime routineY
OMPT interfaceN
OMPD interfaceN

Other new OpenMP 5.0 features

Supporting C++’s range-based for loopY