Upcoming HPC clusters will feature hybrid memories and storage devices per compute node. In this work, we propose to use the MPI one-sided communication model and MPI windows as unique interface for programming memory and storage. We describe the design and implementation of MPI storage windows, and present its benefits for out-of-core execution, parallel I/O and fault-tolerance. In addition, we explore the integration of heterogeneous window allocations, where memory and storage share a unified virtual address space. When performing large, irregular memory operations, we verify that MPI windows on local storage incurs a 55% performance penalty on average. When using a Lustre parallel file system, asymmetric performance is observed with over 90% degradation in writing operations. Nonetheless, experimental results of a Distributed Hash Table, the HACC I/O kernel mini-application, and a novel MapReduce implementation based on the use of MPI one-sided communication, indicate that the overall penalty of MPI windows on storage can be negligible in most cases in real-world applications.
@article{arxiv.1810.04110,
title = {MPI Windows on Storage for HPC Applications},
author = {Sergio Rivas-Gomez and Roberto Gioiosa and Ivy Bo Peng and Gokcen Kestor and Sai Narasimhamurthy and Erwin Laure and Stefano Markidis},
journal= {arXiv preprint arXiv:1810.04110},
year = {2018}
}