To: J3 J3/21-154 From: Bill Long Subject: OpenMP Liaison Report Date: 2021-June-21 M224 OpenMP Liaison report: Since last February, the committee has primarily been focused on releasing version 5.2 of the specification. OpenMP 5.2 doesn't add any new features to the OpenMP specification. Instead, the committee decided to release a minor version that reorganizes the way in which directives are specified in the document to reduce redundancy in the spec, fix various inconsistencies in how directives are specified, and prevent such inconsistencies from cropping up in the future. Here is a list of planned changes that would actually affect users/implementers: - OMPD: a few new routines were added to the debugging interface to improve use on target devices. - OMPT: clarify order of tool interface events for device constructs - miscellaneous clarifications for how clauses are applied to combined constructs - disallow mapping complex part designators in Fortran (need to map the full complex variable) - clarify that a type-name list item should be a Fortran type-spec (not a declaration-type-spec) - clarify implicit data-scoping rules for dispatch construct - allow specifying locality clauses for DO CONCURRENT constructs inside OpenMP regions (previously unspecified behavior) - clarify restrictions on threadprivate variables appearing in OpenMP clauses (list items shouldn't refer to them) - clarifications for mapping C++ class objects of polymorphic type - add symbolic alias for the initial device number (omp_initial_device), equal to -1 - clarify default device that an implementation may choose when OMP_TARGET_OFFLOAD=mandatory is set. - clarify that a program may abort for C++ exceptions caught inside a target region - clarify that impure elemental functions aren't allowed in WORKSHARE construct - clarify that list items cannot be substrings or be array sections of substrings - clarify restrictions for event handle variables in a detach clause (for Fortran, no pointer, and allocatables must be allocated) - allow explicit map type to be ommitted from target enter data and target exit data map clauses - Syntax changes: - deprecate allocate directives on a Fortran allocate statement, replaced with an allocators construct - deprecate modifier syntax for linear clause (val, uval, ref), replaced with post-modifier syntax - deprecate depend clause on ordered construct for doacross loops, replace with doacross clause - deprecate old uses_allocators syntax for target construct, adds memspace and traits modifiers to the clause - deprecate minus operator for reduction clause (use plus operator instead) - require "::"" type separator for iterators A comment draft for OpenMP 5.2 is planned for release end of this month or early next month. The final release will likely happen in November. At the same time, the committee has been discussing topics slated for OpenMP 6.0 -- due to be released in November 2023. Among them are: - "free agent" threads that are free to execute tasks generated by any thread team. - dependences on taskloop construct - allocators for managed memory that is accessible from multiple devices - scoped atomics - various improvements to OMPT and OMPD interfaces - improved support for controlling execution across multiple devices and controlling affinity within target devices A TR draft for OpenMP 6.0 likely will not be released this year, given most of the time will be spent on finalizing OpenMP 5.2.