Analyzing Reduction Abstraction Capabilities
International Workshop on Performance, Portability and Productivity in HPC held in conjunction with Supercomputing (P3HPC), 2021
Abstract
Reductions are a common pattern in parallel programming, and every parallel programming language or framework has its own reduction abstraction with its own idiosyncrasies. These abstractions differ not only in their syntax, but also in their semantics and their ability to express certain types of reduction. Such differences may prevent specific combinations of abstraction and hardware platform from reaching high levels of performance, with consequences for portability and programmer productivity. In this paper, we present a set of representative reduction benchmarks to explore the capabilities of five contemporary programming languages and frameworks - OpenMP, Kokkos, RAJA, SYCL, and the oneAPI DPC++ Library (oneDPL) - across a variety of hardware platforms, including CPUs and GPUs from multiple vendors. We discuss the advantages and disadvantages of each reduction abstraction, and conclude with recommendations to improve their design and implementation.
@inproceedings{p3hpc21,
author = {Deakin, Tom and McIntosh-Smith, Simon and Pennycook, S. John and Sewall, Jason},
title = {{Analyzing Reduction Abstraction Capabilities}},
booktitle = {{International Workshop on Performance, Portability and Productivity in HPC held in conjunction with Supercomputing (P3HPC)}},
year = {2021},
publisher = {{IEEE}},
doi = {10.1109/P3HPC54578.2021.00007},
keywords = {Conferences and Workshops}
}