OpenMP has a 20 year history in HPC, and been used by NERSC developers for node-level parallelization on several generations of NERSC flagship systems. Recent versions of the OpenMP specification include features that enable Accelerator programming generally, and GPU programming in particular. Given the extensive use of OpenMP on previous NERSC systems, and the GPU-based node architecture of NERSC-9, we expect OpenMP to be important in helping users migrate applications to NERSC-9. In this talk we'll give an overview of the current usage of OpenMP at NERSC, describe some of the new features we think will be important to NERSC-9 users, and give a high-level overview of a collaboration between NERSC and NVIDIA to enable OpenMP for GPUs in the PGI Fortran, C and C++ compilers.
The C++17 and Fortran 2018 language standards include parallel programming constructs well-suited for GPU computing. The C++17 parallel STL (pSTL) was designed with intent to support GPU parallel programming. The F18 do concurrent construct with its shared and private variable clauses can be used to express loop-level parallelism across multiple array index ranges. We will share our experiences and results implementing support for these constructs in the PGI C++ and Fortran compilers for NVIDIA GPUs, and explain the capabilities and limitations they offer HPC programmers. You will learn how to use OpenACC as a bridge to GPU and parallel programming with standard C++ and Fortran, and we will present additional features we hope and expect will become a part of those standards.
High-performance computing (HPC) systems are now built around a de facto node architecture with high-speed latency-optimized SIMD-capable CPUs coupled to massively parallel bandwidth-optimized Accelerators. In recent years, as many as 90% of the Top 500 Computing systems relied entirely on x86 CPU-based systems. OpenPOWER and the increasing success of Accelerator-based systems offer an alternative that promises unrivaled multi-core CPU performance and closer coupling of CPUs and GPUs through technologies like NVIDIA's NVLink high-speed interconnect.