Scientists funded by the Exascale Computing Project have developed Metall, a persistent memory allocator that enables applications to allocate memory transparently into various nonvolatile random access memories (NVRAM) by leveraging the memory-mapped file mechanism (i.e., mmap system call). Metall brings the power of the persistent data-centric analytics model to high-performance and exascale applications. The team demonstrated Metall’s high memory allocation performance on a dynamic graph construction workload, achieving up to 11.7× performance improvements over a memory-mapped allocator in the Boost.Interprocess library. The team also exhibited Metall’s high adaptability, integrating it into a C++ graph processing framework, GraphBLAS Template Library. Their work shows that Metall is a valuable tool for exascale data analytics applications that frequently need to reingest the same or derived data. Their research was published in the July 2022 issue of Parallel Computing.
Data analytics applications transform raw input data into analytics-specific data structures before performing analytics, consuming a significant amount of time for frequently reingesting the same or derived data in actual use cases. The team advocates a new computing model—persistent data-centric analytics—where applications leverage NVRAM to store data beyond a single process life cycle and avoid redundant data ingestions. Unlike recent persistent memory allocators, which often target a specific persistent memory technology, Metall is designed to work over a standard file system to support generic NVRAM storage. Metall has been integrated into multiple usage scenarios, such as graph processing applications (including ones in the ECP ExaGraph project) and an exploratory data analytics framework. This first-of-its-kind tool—a high-performance general-purpose memory allocator designed for the persistent data-centric model—also provides snapshot capabilities to enable data-centric checkpoint/restart.
Future work includes performing additional application case studies to improve usability in real workloads, continuing the development of a user-level memory-mapped file mechanism for better data locality, and improving the efficiency of the snapshot capability.
Keita Iwabuchi, Karim Youssef, Kaushik Velusamy, Maya Gokhale, and Roger Pearce. “Metall: A Persistent Memory Allocator for Data-Centric Analytics.” 2022. Parallel Computing (July). https://doi.org/10.1016/j.parco.2022.102905