GPU Offloading in ExaHyPE Through C++ Standard Algorithms
Uzmar Gomez, Gonzalo Brito Gadeschi, Tobias Weinzierl

TL;DR
This paper explores porting ExaHyPE's GPU offloading to ISO C++17 parallel algorithms, demonstrating feasibility but with performance trade-offs compared to OpenMP.
Contribution
It presents a novel approach to GPU offloading in ExaHyPE using standard C++17 parallel algorithms, avoiding vendor-specific extensions.
Findings
ISO C++17 parallel algorithms are feasible for complex scientific applications.
Performance is slower than OpenMP target offloading.
No vendor-specific extensions are needed for this implementation.
Abstract
The ISO C++17 standard introduces \emph{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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Computational Physics and Python Applications · Reservoir Engineering and Simulation Methods
