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 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. \vspace{-1cm}
翻译:ISO C+/17 标准引入了 emph{ pallellel 算法}, 这是一种平行的编程模型, 有望在多种平行硬件, 包括多核心CPU、 GPUs 和 FPGAs 上移动。 自2019年以来, NVIDIA HPC SDK 编译套件支持多核心CPU 和 GPUs 的编程模式。 ExaHyPE 是用于复杂波现象双曲部分差异方程式的求解引擎 。 它支持多种数字方法, 包括 Finite 卷和 ADER- DG, 并且采用适应性网格改进, 通过空间填充曲线以及基于任务的平行和卸载到 GPUPs 的动态负载来平衡动态负负负负负负负。 这项研究的端口 ExaHYPE 超过 ISO C++ 平行算法程序模型, 其性能和可用性比 OpenMP 和通过 Open MP 目标指令卸载的 Open- MP 。 它是一个可行的编程模型, 而不是 1- C- xmb 。