A C++ Library for Memory Layout and Performance Portability of Scientific Applications

First Authors Pietro Incardona
Authors Pietro Incardona, Aryaman Gupta, Serhii Yaskovets, Ivo F. Sbalzarini
Corresponding Authors Ivo F. Sbalzarini
Last Authors Ivo F. Sbalzarini
Conference Proceedings Volume Title Euro-Par 2022: Parallel Processing Workshops : Euro-Par 2022 International Workshops, Glasgow, UK, August 22–26, 2022, Revised Selected Papers
Series Title (Lecture Notes in Computer Science ; 13835)
Conference Name 28th International European Conference on Parallel and Distributed Computing , Euro-Par 2022
Conference Location Glasgow, UK
Conference Start Date 2022-08-22
Conference End Date 2022-08-26
Chapter Number
Publisher Springer
Conference Proceedings Editors
ISBN 978-3-031-31209-0
First Page 109
Last Page 120
Open Access false
Print Publication Date 2023-05-02
Online Publication Date 2023-05-02
Abstract We present a C++14 library for performance portability of scientific computing codes across CPU and GPU architectures. Our library combines generic data structures like vectors, multi-dimensional arrays, maps, graphs, and sparse grids with basic, reusable algorithms like convolutions, sorting, prefix sum, reductions, and scan. The memory layout of the data structures is adapted at compile-time using tuples with optional memory mirroring between CPU and GPU. We combine this transparent memory mapping with generic algorithms under two alternative programming interfaces: a CUDA-like kernel interface for multi-core CPUs, Nvidia GPUs, and AMD GPUs, as well as a lambda interface. We validate and benchmark the presented library using micro-benchmarks, showing that the abstractions introduce negligible performance overhead, and we compare performance against the current state of the art.
Cover Image
Affiliated With CSBD, Sbalzarini
Selected By
Acknowledged Services Scientific Computing Facility
Publication Status Published
Edoc Link
Sfx Link
DOI 10.1007/978-3-031-31209-0_8
PubMed ID
WebOfScience Link SCOPUS
Alternative Full Text URL
Display Publisher Download Only false
Visible On MPI-CBG Website true
PDF Downloadable true
Created By sbalzari
Added Date 2023-05-02
Last Edited By thuem
Last Edited Date 2023-07-14 10:57:07.402
Library ID 8542
Document ID
Entry Complete true
eDoc Compliant true
Include in Edoc Report true
In Pure true
Ready for eDoc Export false
Author Affiliations Complete false
Project Name OpenFPM
Project URL
Grant ID 031L0160
Funding Programme SPlaT-DM – computer simulation platform for topology-driven morphogenesis
Funding Organisation BMBF