Targeting GPUs with OpenMP Directives on Summit: A Simple and Effective Fortran Experience

12/19/2018
by   Reuben D. Budiardja, et al.
0

We use OpenMP directives to target hardware accelerators (GPUs) on Summit, a newly deployed supercomputer at the Oak Ridge Leadership Computing Facility (OLCF), demonstrating simplified access to GPU devices for users of our astrophysics code GenASiS and useful speedup on a sample fluid dynamics problem. At a lower level, we use the capabilities of Fortran 2003 for C interoperability to provide wrappers to the OpenMP device memory runtime library routines (currently available only in C). At a higher level, we use C interoperability and Fortran 2003 type-bound procedures to modify our workhorse class for data storage to include members and methods that significantly streamline the persistent allocation of and on-demand association to GPU memory. Where the rubber meets the road, users offload computational kernels with OpenMP target directives that are rather similar to constructs already familiar from multi-core parallelization. In this initial example we demonstrate total wall time speedups of 4X in 'proportional resource tests' that compare runs with a given percentage of nodes' GPUs with runs utilizing instead the same percentage of nodes' CPU cores, and reasonable weak scaling up to 8000 GPUs vs. 56,000 CPU cores (1333 1/3 Summit nodes). These speedups increase to over 12X when pinned memory is used strategically. We make available the source code from this work at https://github.com/GenASiS/GenASiS_Basics.

READ FULL TEXT

page 5

page 8

page 9

research
02/11/2022

Lightning: Scaling the GPU Programming Model Beyond a Single GPU

The GPU programming model is primarily aimed at the development of appli...
research
09/09/2021

Performance Analysis of CP2K Code for Ab Initio Molecular Dynamics

Using a realistic molecular catalyst system, we conduct scaling studies ...
research
10/14/2020

Performance Analysis of a Quantum Monte Carlo Application on Multiple Hardware Architectures Using the HPX Runtime

This paper describes how we successfully used the HPX programming model ...
research
08/11/2019

SODECL: An Open Source Library for Calculating Multiple Orbits of a System of Stochastic Differential Equations in Parallel

Stochastic differential equations (SDEs) are widely used to model system...
research
12/15/2022

Kernel-as-a-Service: A Serverless Interface to GPUs

Serverless computing has made it easier than ever to deploy applications...
research
10/31/2016

Hybrid CPU-GPU generation of the Hamiltonian and Overlap matrices in FLAPW methods

In this paper we focus on the integration of high-performance numerical ...
research
03/10/2023

A performance portable implementation of the semi-Lagrangian algorithm in six dimensions

In this paper, we describe our approach to develop a simulation software...

Please sign up or login with your details

Forgot password? Click here to reset