On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures
Engineering Technology & Design Division, Los Alamos National Laboratory, Los Alamos
Information, Volume 15, Issue 11, 2024
@article{morgan2024simplified,
title={On a Simplified Approach to Achieve Parallel Performance and Portability Across CPU and GPU Architectures},
author={Morgan, Nathaniel and Yenusah, Caleb and Diaz, Adrian and Dunning, Daniel and Moore, Jacob and Heilman, Erin and Roth, Calvin and Lieberman, Evan and Walton, Steven and Brown, Sarah and others},
journal={Information},
volume={15},
number={11},
pages={673},
year={2024},
publisher={MDPI}
}
This paper presents software advances to easily exploit computer architectures consisting of a multi-core CPU and CPU+GPU to accelerate diverse types of high-performance computing (HPC) applications using a single code implementation. The paper describes and demonstrates the performance of the open-source C++ matrix and array (MATAR) library that uniquely offers: (1) a straightforward syntax for programming productivity, (2) usable data structures for data-oriented programming (DOP) for performance, and (3) a simple interface to the open-source C++ Kokkos library for portability and memory management across CPUs and GPUs. The portability across architectures with a single code implementation is achieved by automatically switching between diverse fine-grained parallelism backends (e.g., CUDA, HIP, OpenMP, pthreads, etc.) at compile time. The MATAR library solves many longstanding challenges associated with easily writing software that can run in parallel on any computer architecture. This work benefits projects seeking to write new C++ codes while also addressing the challenges of quickly making existing Fortran codes performant and portable over modern computer architectures with minimal syntactical changes from Fortran to C++. We demonstrate the feasibility of readily writing new C++ codes and modernizing existing codes with MATAR to be performant, parallel, and portable across diverse computer architectures.
November 10, 2024 by hgpu