Blog post by: Jim Cownie, principal engineer, Intel Corporation (UK).
We held an OpenMP BoF “OpenMP 5.0 is Nearly Here — Find out All About It!” at the ISC2018 event in Frankfurt on Tuesday June 26th. There were over 80 attendees, filling the available space in the room.
The BoF seemed well received, and achieved its objectives of educating people about new OpenMP features and providing feedback to the language committee and Architecture Review Board.
We look forward to seeing you again at our SC18 BoF in Dallas (assuming the SC reviewers accept our proposal).
Unfortunately, Bronis R. de Supinski (chair of the Language Committee) had to return to the USA before the BoF, so Michael Klemm (OpenMP CEO) presented both his own and Bronis’ material.
Michael initially covered the following:
- The objective of the OpenMP Architecture Review Board.
- How organizations can join the ARB and participate in the creation of the standard.
- The future OpenMP development roadmap.
- He reminded people that the OpenMP Conference (“OpenMPCon”) and the International Workshop on OpenMP (IWOMP) will be happening in Barcelona in September.
Michael then went on to present Bronis’ material on OpenMP 5.0, pointing out the many areas where enhancements have been made, and explaining why they are useful and important. He also mentioned the upcoming public comment period for the OpenMP 5.0 standard.
After Michael’s presentations, we moved on to a lively discussion with the audience and our expert panel of: James Beyer (NVIDIA), Barbara Chapman (Stonybrook University, cOMPunity), Michael Klemm (OpenMP CEO, Intel), Kelvin Li (IBM), Christian Terboven (RWTH Aachen University) and Xavier Teruel (Barcelona Supercomputing Center).
Some notable questions from the discussion included:
- Can the OpenMP web site be stricter in vetting OpenMP compliance claims from compiler companies?
- Answer: Without a formal validation suite, this is hard to do, and creating such a suite is a big job which the ARB does not have funding to perform. However, Barbara is working on a project for one of the US national labs to test OpenMP implementations, which may provide some of this, and will be used in future procurements, so there is some hope. The general advice though is “Shout at your compiler vendor and add feature coverage to the requirements in your procurements… Money talks!”
- Are we teaching modern OpenMP appropriately? Many of the OpenMP tutorials and much of the online teaching material reflects OpenMP from before tasks existed. Would it be preferable to emphasise tasking as the fundamental model, with work-sharing loops introduced later?
- Answer: We’d love it if more modern courses and books existed. Please create them and teach them! The OpenMP web site contains links to much online material and will add more if you let us know it exists.
- Why is OpenMP so big and complicated now?
- Answer: OpenMP can be used on many different types of hardware (SMPs, accelerators, embedded systems, …) and these machines are complicated. OpenMP tries to allow you to control many aspects of your code’s execution, for the times when you don’t trust the compiler, so has to provide visibility of the underlying hardware complexity. To mitigate some of this, OpenMP 5.0 will introduce the “loop” construct which is intended to allow you to be more descriptive and less prescriptive when you do trust the compiler.
- Could the standard be split into a user part and an implementer part?
- Answer: Splitting the standard is a lot of work, and we expect that most end users (who do not want to become “language lawyers”) will prefer to read a tutorial or book which provides the material in an easier to understand form. The OpenMP ARB encourages the production of such material, and provides links via https://www.openmp.org.
- Will OpenMP be able to provide performance portability and CUDA level performance?
- Answer: No language has ever had perfect performance portability, desirable though that would be, but OpenMP has significant advantages over CUDA in code portability while still achieving good performance on the same hardware.
And finally, please read the draft standard. There was significant praise for the efforts that Jakub Jelinek at Red Hat makes to implement the draft and provide feedback leading to improvements before the standard is finalised, but all contributions in this area will be appreciated.