To: J3 J3/21-204 From: Bill Long & Lorri Menard Subject: Beginning Business; OpenMP report Date: 2021-October-26 ---------------------------------------------------------------------- Since the last update, the committee has completed all changes for the OpenMP 5.2 specification, and it awaits vote by the OpenMP Architecture Review Board (ARB). The public release will be during the week of Super Computer (SC), as usual. As mentioned in the prior update, this version does not add any new features. The specification was reorganized to catch inconsistencies and remove redundancies, and to improve maintenance going forward. There were a few deprecations and replacement spellings of certain clauses, so that the same name was not used for clauses that serve very different purposes on other directives. Examples of this: - the 'default' clause was renamed to 'otherwise' on the metadirective - the 'to' clause was renamed to 'enter' on declare target directives - the 'depend' clause was renamed to 'doacross' for stand-alone ordered directives Also, the only syntax for specifying a linear clause with modified list items on a declare simd directive was deprecated, and a new syntax that permits modifiers for step and linear-type was added. For example, linear(ref(x,y):8) should now be written as linear(x,y:step(8),ref). Other minor changes more recently voted in: - The behavior of the ordered(concurrent) clause on loops with dynamic schedules was clarified so that implementations do not have to make the schedules of multiple such loops consistent. - Clarify how == comparisons are implemented for atomic constructs that perform compare-and-swap atomic operations. Also, clarify how many times an expression operand may be evaluated for C/C++ atomic min/max operations. - Clarify which directives are permitted in Fortran PURE procedures (allow certain forms of metadirectives, assumption directives, loop transformation constructs, and error directives). - Add omp_in_explicit_task() API routine (which is simply the inverse of the existing omp_in_implicit_task()). In addition to the OpenMP 5.2 specification, a 5.2 reference guide will be also be made available for download from the OpenMP website, and hardcopies can be obtained from the OpenMP booth at SC for people who will be attending. The booth will include virtual booth talks and technical discussions or questions will be facilitated via zoom as well. There will also be an OpenMP birds of a feather session that will be all-virtual. There will not be a TR for 6.0 released at SC this year. Some planned 6.0 features include: - add capability to request use of a default device based on device trait - continued discussion on "free agent" threads, allowing tasks to execute in parallel without appear in an explicit parallel region - support for scoped atomics then extends scope to multiple devices for unified memory systems - better memory management for multiple devices - expressing dependences for taskloop construct - better support for specifying how Fortran array syntax should be parallelized on target devices A TR for OpenMP 6.0 will be released at SC'22, a comment draft in summer of 2023 will be released, and the official OpenMP 6.0 specification should be released at SC'23.