A Unified Programming Model for Heterogeneous Computing with CPU and Accelerator Technologies
Yuqing Xiong
TL;DR
Heterogeneous computing across CPUs and accelerators introduces programming and data-movement challenges. The paper proposes the Unified Programming Model (UPM), which treats accelerators as I/O devices and extends file management to cover them, enabling cross-device programming with standard languages and reducing all architectures to a Type-I base. It formalizes a taxonomy of computer-system types and shows reductions to Type-I, while also enabling coupled applications computing via MPI through a unified API. The approach aims to improve software productivity, simplify cross-architecture development, and provide a natural pathway for multidisciplinary simulations across diverse platforms.
Abstract
This paper consists of three parts. The first part provides a unified programming model for heterogeneous computing with CPU and accelerator (like GPU, FPGA, Google TPU, Atos QPU, and more) technologies. To some extent, this new programming model makes programming across CPUs and accelerators turn into usual programming tasks with common programming languages, and relieves complexity of programming across CPUs and accelerators. It can be achieved by extending file managements in common programming languages, such as C/C++, Fortran, Python, MPI, etc., to cover accelerators as I/O devices. In the second part, we show that all types of computer systems can be reduced to the simplest type of computer system, a single-core CPU computer system with I/O devices, by the unified programming model. Thereby, the unified programming model can truly build the programming of various computer systems on one API (i.e. file managements of common programming languages), and can make programming for various computer systems easier. In third part, we present a new approach to coupled applications computing (like multidisciplinary simulations) by the unified programming model. The unified programming model makes coupled applications computing more natural and easier since it only relies on its own power to couple multiple applications through MPI.
