2.3 OpenMP 5.1

New features listed in Appendix B of the OpenMP specification

DescriptionStatusComments
OpenMP directive as C++ attribute specifiersY
omp_all_memory reserved locatorY
target_device trait in OpenMP ContextY
target_device selector set in context selectorsY
C/C++’s declare variant directive: elision support of preprocessed codeN
declare variant: new clauses adjust_args and append_argsY
dispatch constructY
device-specific ICV settings with environment variablesY
assume and assumes directivesY
nothing directiveY
error directiveY
masked constructY
scope directiveY
Loop transformation constructsY
strict modifier in the grainsize and num_tasks clauses of the taskloop constructY
align clause in allocate directivePOnly C and Fortran
align modifier in allocate clauseY
thread_limit clause to target constructY
has_device_addr clause to target constructY
Iterators in target update motion clauses and map clausesN
Indirect calls to the device version of a procedure or function in target regionsY
interop directiveYCf. Offload-Target Specifics
omp_interop_t object support in runtime routinesY
nowait clause in taskwait directiveY
Extensions to the atomic directiveY
seq_cst clause on a flush constructY
inoutset argument to the depend clauseY
private and firstprivate argument to default clause in C and C++Y
present argument to defaultmap clauseY
omp_set_num_teams, omp_set_teams_thread_limit, omp_get_max_teams, omp_get_teams_thread_limit runtime routinesY
omp_target_is_accessible runtime routineY
omp_target_memcpy_async and omp_target_memcpy_rect_async runtime routinesY
omp_get_mapped_ptr runtime routineY
omp_calloc, omp_realloc, omp_aligned_alloc and omp_aligned_calloc runtime routinesY
omp_alloctrait_key_t enum: omp_atv_serialized added, omp_atv_default changedY
omp_display_env runtime routineY
ompt_scope_endpoint_t enum: ompt_scope_beginendN
ompt_sync_region_t enum additionsN
ompt_state_t enum: ompt_state_wait_barrier_implementation and ompt_state_wait_barrier_teamsN
ompt_callback_target_data_op_emi_t, ompt_callback_target_emi_t, ompt_callback_target_map_emi_t and ompt_callback_target_submit_emi_tN
ompt_callback_error_t typeN
OMP_PLACES syntax extensionsY
OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT environment variablesY

Other new OpenMP 5.1 features

DescriptionStatusComments
Support of strictly structured blocks in FortranY
Support of structured block sequences in C/C++Y
unconstrained and reproducible modifiers on order clauseY
Support begin/end declare target syntax in C/C++Y
Pointer predetermined firstprivate getting initialized to address of matching mapped list item per 5.1, Sect. 2.21.7.2N
For Fortran, diagnose placing declarative before/between USE, IMPORT, and IMPLICIT as invalidN
Optional comma between directive and clause in the #pragma formY
indirect clause in declare targetY
device_type(nohost)/device_type(host) for variablesN
present modifier to the map, to and from clausesY
Changed interaction between declare target and OpenMP contextY
Dynamic selector support in metadirectiveY
Dynamic selector support in declare variantPFortran rejects non-constant expressions in dynamic selectors; C/C++ reject expressions using argument variables. (PR113904)