Abstract
Recent trends have led to the adoption of larger and more complex memory systems, often with multiple tiers of memory performance within the same platform. To utilize complex memory systems efficiently, current data management strategies must be altered to map usage demands to the underlying hardware. Applications, as the generators of memory accesses, are well-suited to guide this process, but building and maintaining separate source code versions for different memory systems is not feasible in most cases. One potential solution is to employ automated program profiling and analysis to facilitate the production of application-based guidance. By attaching memory usage information to static or lightweight program features, compilers and runtime systems can generate fine-grained guidance without additional efforts from users or developers. Recent works have employed this approach with some success, but it is not clear which program features are most useful for guiding data management. This work evaluates the effectiveness of using different program data features to predict memory usage and guide memory management. It employs a custom set of simulation tools, based in the Intel® Pin framework, to collect and analyze the usage characteristics of application data associated with common program data features, such as allocation sites, types, and context. The results show that even relatively simple features, such as object size, are useful for selecting data with similar usage properties, but finer-grained features, such as the instructions that access a particular object, are often much more effective. Additionally, this work evaluates the performance of using different data features and different program inputs to guide data placement on a heterogeneous memory platform with a limited amount of high performance memory.
Original language | English |
---|---|
Title of host publication | MEMSYS 2019 - Proceedings of the International Symposium on Memory Systems |
Publisher | Association for Computing Machinery |
Pages | 383-395 |
Number of pages | 13 |
ISBN (Electronic) | 9781450372060 |
DOIs | |
State | Published - Sep 30 2019 |
Event | 2019 International Symposium on Memory Systems, MEMSYS 2019 - Washington, United States Duration: Sep 30 2019 → Oct 3 2019 |
Publication series
Name | ACM International Conference Proceeding Series |
---|
Conference
Conference | 2019 International Symposium on Memory Systems, MEMSYS 2019 |
---|---|
Country/Territory | United States |
City | Washington |
Period | 09/30/19 → 10/3/19 |
Funding
We thank the anonymous reviewers for their thoughtful comments and feedback. This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration, with additional contributions from the National Science Foundation under CCF-1619140 and CCF-1617954, as well as the Software and Services Group (SSG) at Intel® Corporation. We thank the anonymous reviewers for their thoughtful comments and feedback. This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration, with additional contributions from the National Science Foundation under CCF-1619140 and CCF-1617954, as well as the Software and Services Group (SSG) at Intel? Corporation.
Keywords
- Analysis
- Heterogeneous memory
- Performance
- Profiling