• Martin Kong, University of Oklahoma
  • Vivek Kale, Brookhaven National Laboratory

The Computational Science Initiative (CSI) at Brookhaven National Laboratory (BNL), a United States Department of Energy laboratory, held an OpenMP ® hackathon between April 29th and May 2nd, 2019.  The event was sponsored by the Exascale Computing Project (ECP), the OpenMP Architecture Review Board (ARB), cOMPunity and the SOLLVE team.  SOLLVE is an ECP software technology project leading the evolution of the OpenMP specification, runtime, and Application Programming Interface (API).  The event was also supported by IBM architects and engineers.

From its inception in 1997, OpenMP has been intended to simplify the programming of multi-threaded applications. Given today’s technology trends, where increasing hardware heterogeneity is making the task of writing high-performing portable code much more complex than ever before.  To address this, OpenMP has recently introduced features for accelerator (GPU) programming, where computationally intensive loops can be offloaded to one or more GPU devices. This substantially raises the level of abstraction and thereby reduces the effort required to program these non-CPU devices compared with other programming models such as CUDA or OpenCL.

As OpenMP continues to evolve, ECP and SOLLVE are investing in numerous training events, including webinars, tutorials and hackathons.  The BNL OpenMP 2019 hackathon is the first in a planned series.  In fact, two more OpenMP hackathons were organized this fiscal year, one at Oak Ridge National Laboratory (ORNL) in late July and a second one at Lawrence Berkeley National Laboratory (LBL) in late August.  The set of hackathons will continue in 2020.

The goal of these training events and of broader community and application engagement is to disseminate all the changes coming in OpenMP so that application developers and scientists can fully leverage pre-Exascale systems such as the ORNL Leadership Computing Facility (OLCF) Summit, LBL’s Sierra, and future Exascale Systems like OLCF’s Frontier, and the Argonne Leadership Computing Facility (ALCF) Aurora.  The latter two DOE Office of Science User Facilities are scheduled to come online in 2021.

Eight application hackathon teams from different US national laboratories and universities participated in the Brookhaven event, including  teams from NASA Langley, NASA Ames, the Georgia Institute of Technology, ORNL, and Argonne National Laboratory, along with two teams each from LBL and BNL.  Each team was supported by one or more hackathon mentors who are experts in OpenMP, compilers and runtimes and also usually have familiarity with the application domain. IBM was very supportive of this event, sending a total of six architects and engineers from Yorktown Heights and from IBM Canada.

The teams’ applications spanned many areas, including nuclear and high-energy physics, lasers and optics, materials science, autonomous systems, and fluid mechanics. For several of the teams, the main goal of this hackathon was to prepare a roadmap of application modifications to adapt their code. Several teams interested in using the GPU offloading capabilities  of OpenMP 4.5 and 5.0 worked together with hackathon mentors from academia, national laboratories and industry to identify the problems in their code, performance bottlenecks and other portability issues. Many teams were focused on enabling their application to use GPU devices, to understand the data transfers to be performed for complex and deep data structures, and the changes required to expose more parallelism.

You can find more details on the teams’ applications in the following article on PHYS.ORG.

The event also included tutorials and presentations given by Alexandre Eichenberger (IBM), Leopold Grinberg (IBM), Christopher Daley (LBL), Oscar Hernandez (ORNL) and Prof. John Mellor-Crummey (Rice University).

Organizing a hackathon is a long, complex and draining task. The hackathon itself is the culmination of 3-4 months of work involving logistics such as building the organizing committee, customizing the timeline and agenda, holding numerous tele-conferences, publicizing the event through several channels (ECP training events, ORNL email lists, etc), coordinating and providing compute resources to the participating teams, understanding the domain area of each hackathon application to find capable and available mentors, preparing the mentor-to-team assignments, inviting speakers, arranging meals and coffee breaks, and booking hotels and local transportation. Luckily, we had the great support of several people in BNL, ORNL and Stony Brook University.

Mentors, many of whom are Computer Science researchers developing OpenMP, benefited from the hackathon by receiving helpful feedback from application programmers on features that they want in a future version of OpenMP. Computer Science Researchers will work to incorporate the feedback to develop experimental OpenMP features in the near-term and in OpenMP 6.0 long-term. We welcome participation from application programmers in future series of hackathons for FY20.

The OpenMP ARB will not be held liable for any false, inaccurate, inappropriate or incomplete information presented in this blog. The views and opinions expressed in this blog are solely those of the original authors and other contributors. These views and opinions do not necessarily represent those of the OpenMP ARB.