Published February 17, 2023 | Version v1
Presentation Open

HPX and Kokkos: unifying asynchrony and portability on the path towards standardization

  • 1. Swiss National Supercomputing Centre
  • 2. University of Stuttgart

Description

Modern hardware architectures are increasingly parallel, through both massively multicore CPUs and accelerators which often dominate the available compute on the newest nodes. Utilizing this hardware fully is increasingly difficult with traditional programming models. At the same time the hardware landscape has further diversified which increases the burden on application developers to run their applications anywhere. HPX, a tasking runtime with a focus on distributed applications and standards conformance, is ideally suited to tackle the first challenge. Kokkos, a performance portability layer, handles the second. However, using them together has not been straightforward until the integrations presented here. This talk presents the integration of HPX and Kokkos on multiple different levels with: 1. an HPX backend for Kokkos, which is the first asynchronous CPU backend for Kokkos; 2. HPX-Kokkos, a thin interoperability layer which combines primitives provided by HPX and Kokkos; and 3. The integration of all of the former into Octo-Tiger, an astrophysics application. The integration allows applications to make full use of the portability provided by Kokkos and move past the limitations of fork-join parallelism with the tasking provided by HPX. Finally, this talk will present the latest integration of the C++ std::execution proposal for asynchrony into HPX and Kokkos, and how it provides a path towards a standardized solution for portability and asynchrony in applications like Octo-Tiger.

Files

WAMTA23-simberg-std-execution.pdf

Files (3.0 MB)

Name Size Download all
md5:b0f2f7331b96078ca9fc9b9a5235cdbf
3.0 MB Preview Download

Additional details

References

  • G. Daiß et al., "Beyond Fork-Join: Integration of Performance Portable Kokkos Kernels with HPX," 2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), Portland, OR, USA, 2021, pp. 377-386, doi: 10.1109/IPDPSW52791.2021.00066.
  • G. Daiß, S. Y. Singanaboina, P. Diehl, H. Kaiser and D. Pflüger, "From Merging Frameworks to Merging Stars: Experiences using HPX, Kokkos and SIMD Types," 2022 IEEE/ACM 7th International Workshop on Extreme Scale Programming Models and Middleware (ESPM2), Dallas, TX, USA, 2022, pp. 10-19, doi: 10.1109/ESPM256814.2022.00007.
  • C. R. Trott et al., "Kokkos 3: Programming Model Extensions for the Exascale Era," in IEEE Transactions on Parallel and Distributed Systems, vol. 33, no. 4, pp. 805-817, 1 April 2022, doi: 10.1109/TPDS.2021.3097283.
  • Kaiser et al., (2020). HPX - The C++ Standard Library for Parallelism and Concurrency. Journal of Open Source Software, 5(53), 2352, https://doi.org/10.21105/joss.02352