Automatic Memory Management for Dataflows
摘要
Memory management in High Performance Computing (HPC) is a very important topic, as slow reads and writes can add an important overhead to the execution of an HPC application. In particular, to take advantage of the vectorization capabilities and cache capacities of the hardware, many of such applications are designed to align their data in a certain way or to perform some operations inplace. However, ensuring that the data are correctly aligned and that the inplace operations do not create data-races is a manual and difficult task. Moreover, many HPC applications are configurable and their data and computation may vary at every run: in this context, it is often impossible to manually ensure optimal memory management. This paper proposes an approach that automatically generates a correct memory management with minimal overhead. Our approach is based on the dataflow computation model, and considers both data alignment constraints and inplace operations. We prove that the problem solved in this paper is NP-hard, and that our approach is sound and complete.