Efficient Predictive Monitoring of Message Passing Interface Programs
Open Access
- 1 October 2026
- journal article
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM on Software Engineering
- Vol. 3 (ISSTA) , 4288-4309
Abstract
The Message Passing Interface (MPI) is the standard programming model for high-performance computing, yet nondeterministic scheduling in concurrent executions makes reliability assurance highly challenging. Beyond deadlocks, property-related bugs such as modifying a send buffer before a nonblocking send completes or accessing a freed RMA window are often hard to reproduce and validate, as they typically manifest only under rare event interleavings and can be both latent and catastrophic. Existing dynamic checkers usually cover only the observed schedule of a single execution; dynamic verification largely focuses on deadlocks; and static techniques scale poorly to medium-to-large programs, often timing out or running out of memory. Overall, existing techniques do not support scalable analysis of temporal properties in large MPI programs. To address these limitations, we propose the first efficient predictive monitoring approach for temporal properties in MPI programs. From a single execution, we collect an event trace and use trace equivalence to predict the set of legal equivalent executions under the same input. We then check whether any predicted execution satisfies the target property. To make this process sound, we formalize three correctness criteria for MPI trace reordering and enforce them through MPI-semantics-driven dependency extraction, tracked with vector clocks. To improve efficiency, we exploit the bounded length of a pattern language and reduce long-trace reordering to reordering short patterns. We implement our approach in MPI-PRV, instantiate ten representative MPI bug properties, and evaluate it on 13 real-world MPI applications with 38 configurations. MPI-PRV successfully and correctly analyzes all 38 tasks, whereas MPI-SV and MUST analyze only 14 and 11 tasks, respectively. MPI-PRV also achieves orders-of-magnitude reductions in runtime and memory usage, demonstrating strong efficiency and scalability for large MPI programs.Keywords
Funding Information
- National Key R&D Program of China (No. 2024YFF0908003)
- NSFC Program (No. 62172429)
This publication has 36 references indexed in Scilit:
- CCMOP: A Runtime Verification Tool for C/C++ Programs2023
- Dynamic Symbolic Verification of MPI Programs2018
- Hitting Families of Schedules for Asynchronous Programs2016
- Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs2014
- TASS: The Toolkit for Accurate Scientific SoftwareMathematics in Computer Science, 2011
- Generating Data Race Witnesses by an SMT-Based Analysis2011
- MUST: A Scalable Approach to Runtime Error Detection in MPI Programs2010
- Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations and Relaxed Orderings2008
- Verifying Parallel Programs with MPI-Spin2007
- Trace theory1985