GPU Offloading in ExaHyPE Through C++ Standard Algorithms

02/17/2023
by   Uzmar Gomez, et al.
0

The ISO C++17 standard introduces parallel algorithms, a parallel programming model promising portability across a wide variety of parallel hardware including multi-core CPUs, GPUs, and FPGAs. Since 2019, the NVIDIA HPC SDK compiler suite supports this programming model for multi-core CPUs and GPUs. ExaHyPE is a solver engine for hyperbolic partial differential equations for complex wave phenomena. It supports multiple numerical methods including Finite Volumes and ADER-DG, and employs adaptive mesh refinement with dynamic load balancing via space-filling curves as well as task-based parallelism and offloading to GPUs. This study ports ExaHyPE's tasks over blocks of Finite Volumes to the ISO C++ parallel algorithms programming model, and compares its performance and usability against an OpenMP implementation with offloading via OpenMP target directives. It shows that ISO C++ is a feasible programming model for non-trivial applications like our task-based AMR code. The realisation is bare of vendor-specific or non-C++ extensions. It however is slower than its OpenMP counterpart.

READ FULL TEXT
research
07/12/2022

The OpenMP Cluster Programming Model

Despite the various research initiatives and proposed programming models...
research
03/09/2017

ForestClaw: A parallel algorithm for patch-based adaptive mesh refinement on a forest of quadtrees

We describe a parallel, adaptive, multi-block algorithm for explicit int...
research
07/18/2022

A Variant of Concurrent Constraint Programming on GPU

The number of cores on graphical computing units (GPUs) is reaching thou...
research
02/24/2022

Parthenon – a performance portable block-structured adaptive mesh refinement framework

On the path to exascale the landscape of computer device architectures a...
research
06/26/2019

Investigating the OPS intermediate representation to target GPUs in the Devito DSL

The Devito DSL is a code generation tool for the solution of partial dif...
research
11/28/2017

Implementing implicit OpenMP data sharing on GPUs

OpenMP is a shared memory programming model which supports the offloadin...
research
08/29/2011

Partial wave analysis at BES III harnessing the power of GPUs

Partial wave analysis is a core tool in hadron spectroscopy. With the hi...

Please sign up or login with your details

Forgot password? Click here to reset