To challenge application growing memory usage, and increasing gap between computation and memory access speeds, the complexity of HPC nodes memory system increases, and Heterogeneous Memory Architectures emerge.
The use of these architectures raises new challenges, one of them consists in choosing which data to store on which memory at any time to minimize total execution time. During this seminar, a linear formulation of the data allocation problem is introduced. Moreover, a new profile-guided scope-based approach which reduces the data allocation problem complexity is presented. Our method has been implemented in C (dynamic library) and C++ (GCC plugin), and evaluated on an Intel Knight’s Landing processor, running LULESH, HydroMM, two hydrodynamic codes, and MiniFE, a finite element mini-application.
Comparing our method to state of the art straightforward software approaches, we show ours is able to execute bigger problem sizes, continuing to take advantage of KNL’s High Bandwidth Memory performance.