Accelerating LULESH using HPX - the C++ Standard Library for Parallelism and Concurrency
Document Type
Conference Proceeding
Publication Date
7-17-2024
Abstract
The rapid increase in computer hardware capabilities demands the need for greater parallel efficiency. While the existing CPU parallelization techniques using OpenMP provide adequate performance on parallelizing intensive scientific compute workloads, they lack user flexibility in controlling parallelism, which can enhance performance. In this paper we describe a new port of Livermore Unstructured Lagrangian Explicit Shock Hydrodynamics(LULESH), a widely studied benchmark in the Department of Energy co-design efforts for ExaScale computing, to HPX and HPXMP (a new OpenMP backend of HPX), and an evaluation of the performance on Intel, AMD, ARM, and RISC-V architectures. We explain how we progressively incorporated HPX's parallel features to boost the performance of an HPX-enabled LULESH, including using parallel execution policy, hpx::for_loop, and HPX's fork-join executor. We compare the shared memory parallelism performance of five LULESH versions: NVC++ implementation using C++ algorithms, OpenMP pragma-based implementation, HPX implementation using C++ algorithms, HPX using fork-join executors, and HPXMP. Using HPXMP we observed an average speedup of 1.4x, 1.5x, 1.2x, and 1.3x relative to OpenMP on Intel, AMD, ARM, and RISC-V processors respectively across 3 different workload sizes. We observed a speedup of 1.1x and 2.2x relative to OpenMP on Intel and AMD respectively using Fork Join Executors. These findings suggest that HPXMP can offer a direct enhancement to existing OpenMP codebases across a wide range of architectures, without any modifications to the original source code, whereas HPX's fork-join executors provide finer control of parallelism and increased performance. HPXMP also provides a viable first step on a migration path for OpenMP applications to HPX.
Publication Source (Journal or Book title)
PEARC 2024 - Practice and Experience in Advanced Research Computing 2024: Human Powered Computing
Recommended Citation
Singanaboina, S., Wei, W., Tsaousis Seiras, I., Syskakis, P., Richardson, B., Cook, B., & Kaiser, H. (2024). Accelerating LULESH using HPX - the C++ Standard Library for Parallelism and Concurrency. PEARC 2024 - Practice and Experience in Advanced Research Computing 2024: Human Powered Computing https://doi.org/10.1145/3626203.3670529