Towards Implicit Memory Management for Portable Parallel Programming in C++
Vladyslav Kucher, Sergei Petrovich Gorlatch · 2020
We consider the challenge of programming modern high-performance parallel processors including multi-core CPUs and many-core GPUs (Graphics Processing Units). Our approach is based on using the widely-spread programming language C++ in a portable way, i.e., the same program code runs on different target architectures. The contribution of this paper is that we extend our existing programming framework PACXX (Programming Accelerators in C++) with an additional compilation pass which allows to simplify the program data management for the programmer and makes the programming process less error-prone. We describe our current work in progress on implementing the implicit data management by presenting the major design choices and illustrating the advantages of our approach using simple programming examples.