Modernization and Optimization of MPI Codes
Technische Universität Darmstadt
Technische Universität Darmstadt, 2025
@article{jammer2025modernization,
title={Modernization and Optimization of MPI Codes},
author={Jammer, Tim},
publisher={Technische Universit{"a}t Darmstadt},
year={2025}
}
MPI has become the de facto standard for distributed memory computing since its inception in 1994. While the MPI standard has evolved to include new technologies like RDMA, many applications still rely on the original set of MPI operations. This thesis initially investigates the current usage of MPI. We note that developers underutilize modern MPI features, as their implementations often are not optimized. On the other hand, as many users rely on the ”old” MPI features, the MPI implementation developers have no incentive to optimize implementations for the new features. As a consequence, there is no incentive for the MPI users to learn the new features, creating a vicious cycle. To break this cycle, this thesis explores three main approaches: (1) facilitating correctness checking tool support, (2) modernizing MPI codes with compiler based approaches, and (3) exploiting compiler knowledge to further optimize the implementation of modern MPI features. In order to facilitate the development and improvement of tools aiding with MPI development, this thesis introduces the correctness benchmark MPI-BugBench, as a standardized benchmark to evaluate the real world applicability of such tools. Further we show that compiler-based automatic modernization methods can encourage early adoption of new MPI features with minimal programmer effort, for example partitioned operations. Lastly, compiler knowledge can be utilized in order to further optimize the performance of MPI implementations, for example in persistent operations. The use of compiler knowledge, in particular, enables modernization of existing MPI codes without the need of application developers to rewrite existing MPI codes.
February 3, 2025 by hgpu