Achievement
Modern supercomputers feature a complex mix of different memory types, from smaller, faster tiers to larger, slower ones, making them notoriously difficult for programmers to use efficiently. To address this challenge, researchers developed a software library called the "Simplified Interface to Complex Memories" (SICM). This software acts as a universal translator, providing applications with a single, simple way to discover and manage all the different memory technologies on a high-performance computing node. Most importantly, SICM can intelligently and automatically place application data in the most suitable memory tier to maximize performance, relieving programmers from the burden of handling this complexity manually.
Significance and Impact
Simplifies application development and helps programmers meet performance objectives more efficiently.
- Enables seamless adoption of new memory technologies without requiring custom, hardware-specific programming.
- Improves application speed on complex systems through automated, intelligent data placement.
- Reduces total memory traffic, indicating a strong potential for significant energy savings.
Research Details
- Developed a software library with a two-part design: a low-level interface for direct hardware control and a high-level interface for automated memory management.
- The team developed and tested two distinct approaches for intelligent data placement: an "offline" method using pre-run profiling and an "online" method that dynamically manages memory during an application's execution.
- Evaluated the software's effectiveness using a suite of high-performance computing benchmarks and proxy applications on various advanced computing platforms with heterogeneous memory.
- Compared SICM's performance against default operating system behavior, hardware-based caching solutions, and other kernel-level software approaches to demonstrate its advantages.
Facility
This research was a collaborative effort involving Los Alamos National Laboratory, Lawrence Livermore National Laboratory, Oak Ridge National Laboratory, the University of Tennessee, Arm, Ltd., and Intel Corp.
Sponsor/Funding
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. This article is approved for unlimited release as LA-UR-23-33895.
Principal Investigator and Team
PI: Scott Pakin, Los Alamos National Laboratory Team: Roxana Bujack, Maya Gokhale, Latchesar Ionkov, Keita Iwabuchi, Michael Jantz, Terry Jones, Sumathi Lakshmiranganatha, Michael K Lang, Jason Lee, M. Ben Olson, Scott Pakin, Roger Pearce, Jonathan Pietarila Graham, Li Tang, Terece L Turton, and Sean Williams
Citation and DOI
Bujack, R., Gokhale, M., Ionkov, L., et al. (2024). The ECP SICM project: Managing complex memory hierarchies for exascale applications. The International Journal of High Performance Computing Applications.
Summary
The Simplified Interface to Complex Memories (SICM) project delivers a powerful software solution that abstracts away the complexity of modern, multi-tiered memory systems. By providing a unified interface and automated data placement strategies, SICM allows scientific applications to achieve optimal performance without requiring developers to write complex, non-portable code. This work is critical for the future of high-performance computing, as it enhances developer productivity, boosts application efficiency, and provides a durable framework for harnessing the power of next-generation computer architectures. The result is a practical and effective tool that makes exascale systems more accessible and powerful for the entire scientific community.