Learning to Rank Graph-based Application Objects on Heterogeneous Memories
This work addresses a domain-specific challenge for system designers and developers dealing with heterogeneous memory architectures, offering an incremental improvement over existing methods.
The paper tackles the problem of efficiently allocating data between DRAM and Persistent Memory (PMEM) in computer systems by developing a machine learning model to predict critical objects in graph-based applications, resulting in a 12% average and 30% maximum reduction in execution time degradation compared to a baseline approach.
Persistent Memory (PMEM), also known as Non-Volatile Memory (NVM), can deliver higher density and lower cost per bit when compared with DRAM. Its main drawback is that it is typically slower than DRAM. On the other hand, DRAM has scalability problems due to its cost and energy consumption. Soon, PMEM will likely coexist with DRAM in computer systems but the biggest challenge is to know which data to allocate on each type of memory. This paper describes a methodology for identifying and characterizing application objects that have the most influence on the application's performance using Intel Optane DC Persistent Memory. In the first part of our work, we built a tool that automates the profiling and analysis of application objects. In the second part, we build a machine learning model to predict the most critical object within large-scale graph-based applications. Our results show that using isolated features does not bring the same benefit compared to using a carefully chosen set of features. By performing data placement using our predictive model, we can reduce the execution time degradation by 12\% (average) and 30\% (max) when compared to the baseline's approach based on LLC misses indicator.