Skip to main content
SHARE
Research Highlight

The ECP SICM project: Managing complex memory hierarchies for exascale applications

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.

DOI: https://doi.org/10.1177/10943420241288243

ECP SICM project
Fig. 1. This conceptual diagram illustrates SICM's online approach, which may be logically divided among four separate steps: (a) Compile executable with source code annotations at each allocation site. (b) Profile memory usage of each site in a separate program run using architectural sampling. (c) Employ bin-packing/sorting heuristics to assign data-tier recommendations to each site. (d) Apply data-tiering recommendations during subsequent program executions.

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.