Mamba: Portable Array-based Abstractions for Heterogeneous High-Performance Systems

Tim Dykes,Clément Foyer,Harvey Richardson,Martin Svedin,Artur Podobas,Niclas Jansson,Stefano Markidis,Adrian Tate,Simon McIntosh-Smith,Clement Foyer
DOI: https://doi.org/10.1109/p3hpc54578.2021.00005
2021-11-01
Abstract:High performance computing architectures have become increasingly heterogeneous in recent times. This growing architectural variety presents a multi-faceted portability problem affecting applications, libraries, programming models, languages, compilers, run-times, and system software. Approaches for performance portability typically focus heavily on efficient usage of parallel compute architectures and less on data locality abstractions and complex memory systems, with minimal support afforded to effective memory management in traditional HPC languages such as C and Fortran. We present Mamba, a library to facilitate usage of heterogeneous memory systems by high performance application/library developers through high level array-based abstractions for memory management supported by a low-level generic memory API. We detail the library design and implementation, demonstrating generic memory allocation, data layout specification, array tiling and heterogeneous transport. We evaluate performance in the context of a typical matrix transposition, DNA sequencing benchmark, and an application use case for high-order spectral element based incompressible flow.
What problem does this paper attempt to address?