Tag Archives: Language Committee

OpenMP 4.5 is on its way

Last week the first ever OpenMPCon and the IWOMP 2015 workshops took place here in Aachen and this week we hosted the OpenMP Language Committee face-to-face meeting. An important goal of this meeting was to address the remaining open issues and then to complete the specification work to make the next version of OpenMP available in time for SC15. The OpenMP 4.1 draft was released in July this year and the comment period was open until the end of September. However, after realizing how many changes and particularly improvements this next version will bring, we decided that we want to call it OpenMP 4.5. Keeping the major version at “4” assures that the changes will not break any existing code.

Within the next few weeks the Language Committee will make the final changes to the spec text and a final verification run, then the document will be handed over to the OpenMP Architecture Review Board (ARB) for the voting. It can be expected that the ARB will accept the document as the new version of the OpenMP standard. It will then be released early at SC15. If you like to know what it is and talk to us, come to our tutorial on Advanced OpenMP Programming on the Monday right before SC15.

Actually the number of changes is large, about 130 tickets have been passed. Any change to the spec text is represented by a ticket capturing the changes in LaTeX code and of course the corresponding discussion(s). However, there are tickets of different size: some are small and contain only minor corrections, others are large and bring lots of new functionality (I think the target stuff of OpenMP 4.0 was captured in two huge tickets).

OpenMP 4.5 will obviously bring many clarifications and some minor corrections, but also some notable enhancements:

  • We handled several items from the Fortran 2003 todo list. Fortran 2003 is now supported as a base language with a few exceptions mentioned explicitly.
  • SIMD and Tasking extensions and refinements made its way into OpenMP 4.5.
  • Finally, OpenMP will support reductions for C/C++ arrays and templates.
  • Runtime routines to support cancellation and affinity have been added.

We also introduced some new features:

  • Support for doacross loops.
  • Loops can now be divided into tasks with the taskloop construct.

I plan to talk about some of these here in detail.

At IWOMP, Bronis de Supinski from LLNL, who is the Chair of the OpenMP Language Committee, gave a talk on the State of OpenMP & Outlook on OpenMP 4.1 (back then we did not had decided to call it 4.5). We will make all the IWOMP talks available on the IWOMP homepage soon, but here are two of his slides outlining the most important new additions above from what I mentioned already:

Bronis: OpenMP 4.1 Features (1/2)

Bronis: OpenMP 4.1 Features (1/2)

Bronis: OpenMP 4.1 Features (2/2)

Bronis: OpenMP 4.1 Features (2/2)

During his talk he also outlined what is on the agenda for OpenMP 5.0:

Bronis: OpenMP 5.0 Plans

Bronis: OpenMP 5.0 Plans

A Glimpse at OpenMP for Accelerators (aka OpenACC v2?)

During our OpenACC Workshop I contributed a brief talk on the current status of the OpenMP for Accelerators proposal. It caused some interest, because if successful, this proposal will be the de-facto successor of OpenACC, fully integrated into the rest of OpenMP. Hence I wanted to share this slide deck, but please understand that some of the information presented in there is changing on a daily base! We expect the concepts to remain valid, but i.e. the spelling seems to change quite quickly – understand this slide deck as a snapshot of October 11th, 2012. I once was critical how OpenACC was born, but since came to realize it was a good move and helped a lot to gain experiences with a pragma-based paradigm to program accelerators. Furthermore, users have something to work with already, instead of still waiting for a standard to be completed…

The OpenMP for Accelerators subcommittee is run by James Beyer (Cray) and Eric Stotzer (TI), who do a great job of documenting the current state of the discussion. This made it pretty easy for me to compile the slide deck and keep colleagues as well as users informed.