The OpenMP API specification for parallel programming
SC18 OpenMP BoF Report
Blog post by: Jim Cownie principal engineer, Intel (UK) and Michael Klemm, OpenMP CEO and Intel.
At SC18 the OpenMP BoF was held on Wednesday 15 November between 5:15pm – 7:00pm
There were over 100 attendees. This was a slight drop from last year; maybe there were a larger number of interesting BoFs in the same slot this year.
Oral and Twitter feedback was positive, for instance:-
“I certainly enjoyed the BoF. … I think the BoF structure was a good mix of structure and chaos, apt for the audience. Keep up the great work.”
SC no longer seems to be requesting online BoF feedback, so we do not have any to report.
A large component (approaching 75%) of the BoF involved audience questions and discussion.
We believe that the BoF achieved the aims set out by the SC organizers of education, community building and audience interaction.
Bronis R. de Supinski (chair of the language committee) presented details of the achievements of the committee which led to the release of the OpenMP 5.0 specification the week before SC18.
Leading technical contributors to the OpenMP standard then outlined key developments in their areas. Topics presented covered features for improved support for heterogeneous computing and accelerators, meta-directives to allow easier choice of optimized code for different contexts, the new, descriptive, loop directive, improved memory allocation control using “allocators”, and improvements to the capabilities of tasking such as reductions, scans, and a new task dependency type.
How can we transition from OpenMP 4.5 to OpenMP 5.0?
OpenMP is backwards compatible, so the transition is transparent. You do not have to change your code. (With the minor exception that the change in OpenMP 5.0 which makes the default dynamic schedule nonmonotonic, which might break user code.) For details view Jim Cownie’s booth presentation.
How do we move data from one GPU to another GPU?
This is something for consideration in OpenMP 6.0.
What is the difference between descriptive and prescriptive?
Prescriptive directives define a specific behaviour. Descriptive directives pass information about code semantics to the compiler to allow it to optimize without specifying how it might choose to do that.
OpenMP State of the Union
Michael Klemm, OpenMP CEO, gave a short presentation on the vision and schedule for OpenMP 6, and the changes in OpenMP membership structure which make it relatively cheap for academic institutions to join the OpenMP Architecture Review Board (ARB). (As ever, the critical commitment here is not the money, but the time to participate). He also showed the list of OpenMP events planned for next year, with conferences in Edinburgh (UK), and Auckland (NZ).
ARB Panel Discussion
We finished with a series of questions to members of the ARB. The questions included:
What is the compiler uptake for OpenMP 5.0?
Please have a look at the compiler page on the OpenMP website . This page is kept up to date. There is also a page where you can compare compilers with respect with device offload support, read more.
Will there be OpenMP 5.0 examples available?
We are working on an OpenMP 5.0 examples document. As soon as it is finished it will be announced and published at openmp.org .
What is the status of the PGI compiler?
The PGI compiler will support a subset of the OpenMP 5.0 features.
How can we make it easier for new users to take up OpenMP?
The OpenMP website has a resources section for new users. This section includes a link to videos of a beginners’ course on OpenMP, to example guides, and to books on OpenMP. Furthermore courses on OpenMP are regularly given at universities and supercomputer centres.
Can OpenMP help more with memory layout (e.g. array of structures to structure of array transformations)?
This seems generally hard to impossible, since it affects deep properties assumed by the underlying language (at least in C/C++).
Why are there so many pages in the OpenMP API specification? Is there a maximum number of pages?
The standard has to be precise; that requires consideration of many corner cases, which leads to prolixity. The size of the standard is bounded by available on-line storage!
View the slides below or download using the button.