Verification of MPI programs

Andrew M. Mironov
DOI: https://doi.org/10.48550/arXiv.2110.08537
2021-10-16
Abstract:In this paper, we outline an approach to verifying parallel programs. A new mathematical model of parallel programs is introduced. The introduced model is illustrated by the verification of the matrix multiplication MPI program.
Logic in Computer Science,Programming Languages
What problem does this paper attempt to address?
The main problem that this paper attempts to solve is **verifying the correctness and security of parallel programs**, especially for parallel programs written using MPI (Message Passing Interface). Specifically, the author proposes a new mathematical model to describe and verify MPI programs, aiming to overcome the limitation that existing methods are only applicable to a limited category of parallel programs. ### Core issues of the paper 1. **Complexity of parallel programs**: Parallel programs are designed for multi - processor computing systems (MPCS), and their development is more difficult. Ensuring their correctness and security is a complex mathematical problem. 2. **Limitations of existing methods**: Existing verification methods can only be applied to a limited category of parallel programs and cannot handle all types of MPI programs, especially those that can generate an arbitrary number of processes. ### Solutions To solve the above problems, the author proposes the following solutions: - **Introducing a new mathematical model**: This model can describe and verify MPI programs on a specific subset, and is especially suitable for MPI programs that can generate an arbitrary number of processes. - **Verification example of matrix - multiplication MPI program**: The effectiveness of the new model is verified through a specific matrix - multiplication MPI program, showing how to apply this model for actual parallel - program verification. ### Main contributions 1. **Enhanced universality**: The new model is not only applicable to a fixed number of processes, but can also handle the situation of dynamically generating an arbitrary number of processes. 2. **Practicality verification**: The effectiveness and feasibility of the model are verified through an actual matrix - multiplication MPI program, proving its potential in practical applications. ### Conclusion The main objective of this paper is to improve the verification methods of parallel programs by introducing a new mathematical model, especially in terms of MPI - program verification, thereby enhancing the correctness and security of parallel programs. This will contribute to promoting the development of the parallel - computing field, especially in high - performance computing and distributed systems.