OpenACC, the directive-based parallel programming model used mostly for porting codes to GPUs for use on heterogeneous systems, came to SC17 touting impressive speedups of climate codes as well as its latest release, version 2.6, which adds deep copy functionality but otherwise minor enhancements. The progress reported demonstrates OpenACC’s steady and impactful penetration of the HPC landscape.
Three of the top five HPC applications[i] (ANSYS Fluent, Gaussian, and VASP) now support and use OpenACC, and on the order of 85 applications have been “accelerated” at hackathons since 2014. The work on climate codes – conducted over a few years – includes recent successful efforts by a 2017 Gordon Bell finalist to speed up the widely used Community Atmosphere Model (CAM) from The National Center for Atmospheric Research (NCAR) on China’s Sunway TaihuLight Supercomputer.
“OpenACC allowed us to scale the CAM-SE to over 1.8 million Sunway cores with a simulation speed of over 3 simulated years per day,” said Haohuan Fu, deputy director of the National Supercomputing Center in Wuxi NAD in OpenACC’s SC17 announcement. “Without OpenACC, the team would have spent years coding for the complexity of the components in the TaihuLight Supercomputer.”
It seems increasingly clear that OpenACC is finding its place in the HPC toolbox. The spotlighting of work done with climate and weather forecasting codes is one example.
Code speedup in climate research is important because of the time scales tackled. Stan Posey, program manager, earth system modeling solution development at NVIDIA, told HPCwire, “Climate research might model decades of climate behavior and so you want to achieve as many simulated years per day as you can. I believe at the Department of Energy they have gotten to about 1.5 simulated years per day which is about the best I have seen until this announcement.”
He noted the work on Sunway “is not related to GPUs; it’s just strictly the Chinese indigenous system but they used OpenACC because they don’t have the kinds of tools and compilers and so forth. It’s still such a new design.”
It’s worth pointing out that most climate models have two distinct parts, according to Posey, “One half to solve what’s called the dynamics and one half to solve the physics. The dynamics covers the transport or the CFD that’s required in these models. Then we have the physics which handles processes such as turbulence and so on.” The two tasks have somewhat different computational requirements.
“The [physics] have a higher opportunity for performance gains because they operate not necessarily embarrassingly parallel but they operate in individual vertical columns so you can process many of these at once, which is what GPUs really like. Meanwhile the dynamics part of the model is about 50 percent of the total profile and that’s nearly always going to be limited to the 2X-3X range improvement,” he said. The latter limits potential performance gains for the overall model. Speedups are achieved by attacking amenable portions of the code.
OpenACC has been proving its effectiveness in climate models. NCAR, for example, developed an atmospheric model called Model for Prediction Across Scales (MPAS). In collaboration with the University of Wyoming, and the Korea Institute of Science and Technology Information (KISTI), the team evaluated various platforms and programming models, and implemented the MPAS with OpenACC directives to take advantage of fine grain parallel processing on GPUs. Scientists at NCAR and University of Wyoming developed OpenACC code for the MPAS dynamical core and scientists at KISTI developed OpenACC code for the MPAS physics in a project that will implement the full MPAS model on GPUs.
“Our team has been investigating OpenACC as a pathway to higher performance, and with performance portability for the MPAS global atmospheric model,” said Rich Loft, director of technology development at the NCAR Computational Information and Systems Laboratory in the release. “Using this approach for the MPAS dynamical core, we have achieved speedups on a single P100 GPU equivalent to nearly 3 CPU nodes on our new Cheyenne supercomputer.”
Other climate and weather forecasting work cited by OpenACC included:
- COSMO. Scientists at MeteoSwiss, ETH Zurich, and the Swiss National Supercomputing Center (CSCS) have developed the physics of the COSMO regional atmospheric model in OpenACC to deploy on GPUs for use in operational numerical weather prediction, and climate research.
- IFS. Collaboration with ECMWF in the ESCAPE Project has demonstrated speedups of more than an order of magnitude when optimizing existing GPU code for the spectral transform operations in the IFS Details were presented at the ESCAPE Workshop during Sep 2017.
- NICAM. Computational scientists at RIKEN have achieved GPU factors speedup over CPU-only, for the NICAM-DC (dynamical core) project using OpenACC on more than 1000 GPU nodes of the TSUBAME 2.5 supercomputer at the Tokyo Institute of Technology.
- The paper “Parallelization and Performance of the NIM Weather Model on CPU, GPU, and MIC Processors,” published in the Oct 2017 edition of BAMS, describes the OpenACC and GPU developments by scientists at the NOAA Earth System Research Laboratory to achieve performance portability with the same FORTRAN code compiled across various types of HPC platforms.
OpenACC also presented favorable benchmarks for speeding up ANSYS Fluent, Guassian, and VASP with significant speedups.
“On the right side of the slider are the CAAR codes (Center for Accelerated Application Readiness) for CORAL systems, and five of those also use OpenACC to use the accelerator but also to express parallelism potentially for the CPU side.” CARR is a collaborative effort of application development teams and staff from the OLCF Scientific Computing group, CAAR is focused on redesigning, porting, and optimizing application codes for Summit’s hybrid CPU–GPU architecture.
There wasn’t much change in membership. Michigan State University has completed the process and Juckeland said another organization would soon complete the process. He also emphasized OpenACC’s commitment supporting many platforms. Arm is still not supported. AMD was a late addition to the SC17 briefing slide.
[i] Top five HPC applications according to Intersect360 Research: 1 Gromacs, 2 ANSYS Fluent, 3 Gaussian, 4 VASP, and 5 NAMD