Tag: Supercomputing

In my previous blog post I stated that OpenMP 4.5 is on it’s way and scheduled for a release during SC15. If you are interested in learning about OpenMP, SC15 can be a great opportunity. This blog post points out all the related activities that I have been made aware of.

Tutorials on Sunday and Monday

On Sunday the full-day tutorial A Hands-On Introduction to OpenMP will take place, covering the core features of OpenMP 4.0. On Monday, there will be the full-day tutorial Advanced OpenMP: Performance and 4.1 Features (we did not expect the name change at the time of the submission) which basically continues from the introductory tutorial and concentrates on getting performance from OpenMP codes as well as it discusses language features introduced with OpenMP 3.x and 4.x in-depth. In addition to those two tutorials with a focus on programming, the half-day tutorial Debugging & Performance Tools for MPI and OpenMP 4.0 APIs provides exploration of parallel debugging and optimization focused on techniques that can be used with accelerators and coprocessors.

The OpenMP BoF

This year’s BoF is titled OpenMP: Where Are We, and What’s Next?. I think that is a reasonable question to ask at this point. The BoF will take place on Tuesday 5:30 – 7:00 pm in room 291. From the description: Experts will give short presentations on key OpenMP 4.1 features and answer your technical questions. OpenMP CEO Michael Wong will present our vision for OpenMP 5.0 and we’ll finish with an audience-led discussion with a panel including members of the OpenMP ARB.

The OpenMP Booth and Booth Talks

As in previous years the OpenMP organization has its own booth, which is number #2036. Most important, every day from 4 pm to 6 pm there will be free beer (while supply lasts), and with that the opportunity to talk to OpenMP folks in person. There are also a couple of talks scheduled to take place right at the OpenMP booth, which will be recorded and published online:

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 (2/2)

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

During SC14, Michael Klemm from Intel and myself teamed up to give an OpenMP 4.0 overview talk at the OpenMP booth. Our goal was to touch on all important aspects, from thread binding over tasking to accelerator support, and to entertain our audience in doing so. Although not all jokes translate from German to English as we intended, I absolutely think that the resulting video is a fun-oriented 25-minutes run-down of OpenMP 4.0 and worth sharing here:

At the OpenMP BoF Session during SC14, James Cownie from Intel showed an OpenMP Timeline which I thought interesting enough to share. It displays the release history of OpenMP and summarizes the major new features. It also shows the growing number of institutions belonging to the OpenMP standard.

The document was originally created for the Intel Parallel Universe magazine and has been released as open source🙂 at the homepage of the Intel Open Source OpenMP Runtime: https://www.openmprtl.org/download. If you are like me and not well-versed in handling Adobe Illustrator or SVG file formats, you may use this PDF which has been created from the version released in September 2014.

Since 2001 already, the IT Center (formerly: Center for Computing and Communication) of RWTH Aachen University offers a one week HPC workshop on Parallel Programming during spring time. This course is not restricted to scientists and engineers from our university, in fact we have about 30% of external attendees each time. This year we were very happy about a record attendance of up to 85 persons for the OpenMP lectures on Wednesday. As usual we publish all course materials online, but this year we also created screencasts from all presentations. That means you see the slides and the live demos and you hear the presenter talk. This blog post contains links to both the screencasts as well as the other course material, sorted by topic.

OpenMP

We have three talks as an introduction to OpenMP from Wednesday and two talks on selected topics from Thursday, which were vectorization and tools.

Introduction to OpenMP Programming (part 1), by Christian Terboven:

Getting OpenMP up to Speed, by Ruud van der Pas:

Introduction to OpenMP Programming (part 2), by Christian Terboven:

Vectorization with OpenMP, by Dirk Schmidl:

Tools for OpenMP Programming, by Dirk Schmidl:

MPI

We have two talks as an introduction to MPI and one on using the Vampir toolchain, all from Tuesday.

Introduction to MPI Programming (part 1), by Hristo Iliev:

Introduction to MPI Programming (part 2), by Hristo Iliev:

Introduction to VampirTrace and Vampir by Hristo Iliev:

Intel Xeon Phi

We put a special focus on presenting this architecture and we have one overview talk and one talk on using OpenMP 4.0 constructs for this architecture.

It pretty much captures why I like to work in HPC, namely that I can come into contact with so much technology, so many different scientific topics, and such many different people from all over the world.

The German team with the glorious name Gaussian Elimination Squad made the first rank in the Intel Parallel Universe Computing Challenge! Each round of the challenge consisted of two parts: the first was a trivia challenge with 20 questions about computing, computer history, programming languages, and the SC conference series; the second part was a coding challenge, which gave each team ten minutes to speed up a piece of code they had never seen before as much as possible. On top of it all, the audience could watch what the teams were doing on two giant screens. Georg Hager, our team caption, has a blog post with all the details.

The Gaussian Elimination Squad represented the German HPC community, with members from RWTH Aachen (Christian Terboven and Joachim Protze), Jülich Supercomputing Center (Damian Alvarez), ZIH Dresden (Michael Kluge and Guido Juckeland), TU Darmstadt (Christian Iwainsky), Leibniz Supercomputing Center (Michael Ott), and Erlangen Regional Computing Center (Gerhard Wellein and Georg Hager). As only four team members were allowed per match, I was lucky to play together with Gerhard and Georg in all rounds, but the others helped us by shouting advice and answers they thought were correct.