Close

Presentation

Going Beyond the Chicken and Egg Situation with Modern MPI Features
DescriptionMPI 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 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, MPI implementation developers have no incentive to optimize implementations for the new features. As a consequence, there is no incentive for 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). The use of compiler knowledge, in particular, enables modernization of existing MPI codes without the need for application developers to rewrite existing MPI codes.