Using Applications to Guide Data Management for Emerging Memory Technologies
A number of promising new memory technologies, such as non-volatile, storage-class memories and high-bandwidth, on-chip RAMs, are emerging. Since each of these new technologies present tradeoffs distinct from conventional DRAMs, many high performance and scientific computing systems have begun to include multiple tiers of memory storage, each with their own type of devices. To efficiently utilize the available hardware, such systems will need to alter their data management strategies to consider the performance and capabilities provided by each tier. This work aims to understand and increase the effectiveness of application data management for emerging complex memory systems. A key realization behind our approach is that applications, as the generators of memory accesses, are well-suited to guide data management across heterogeneous device tiers. Unfortunately, building and maintaining separate source code versions for different memory systems is not feasible in most cases. Our work aims to develop profiling, compiler, and runtime techniques to enable applications to adapt to heterogeneous memory hardware transparently and automatically. This work describes custom simulation tools as well as detailed analysis that show the potential of using application data features to steer data placement on heterogeneous memory hardware. Additionally, we will present evaluation showing that our guidance-based approach can outperform, and even improve, other state-of-the-art management strategies.
teffler_diss.pdf
5.77 MB
Adobe PDF
97d9225994e23ecdbcd6fb94848b3d3d