journal article·2024Open access

Static Analysis Techniques for Fixing Software Defects in MPI-Based Parallel Programs

Norah Abdullah Al-Johany, Sanaa Abdullah Sharaf, Fathy Elbouraey Eassa, Reem Abdulaziz Alnanih

Computers, Materials & Continua· Volume 79· Issue 2

Abstract

The Message Passing Interface (MPI) is a widely accepted standard for parallel computing on distributed memory systems. However, MPI implementations can contain defects that impact the reliability and performance of parallel applications. Detecting and correcting these defects is crucial, yet there is a lack of published models specifically designed for correcting MPI defects. To address this, we propose a model for detecting and correcting MPI defects (DC_MPI), which aims to detect and correct defects in various types of MPI communication, including blocking point-to-point (BPTP), nonblocking point-to-point (NBPTP), and collective communication (CC). The defects addressed by the DC_MPI model include illegal MPI calls, deadlocks (DL), race conditions (RC), and message mismatches (MM). To assess the effectiveness of the DC_MPI model, we performed experiments on a dataset consisting of 40 MPI codes. The results indicate that the model achieved a detection rate of 37 out of 40 codes, resulting in an overall detection accuracy of 92.5%. Additionally, the execution duration of the DC_MPI model ranged from 0.81 to 1.36 s. These findings show that the DC_MPI model is useful in detecting and correcting defects in MPI implementations, thereby enhancing the reliability and performance of parallel applications. The DC_MPI model fills an important research gap and provides a valuable tool for improving the quality of MPI-based parallel computing systems.
Source: openalex_inverted_index · Quality: baseline

Research context

OpenAlex topics: Parallel Computing and Optimization Techniques · Advanced Data Storage Technologies · Distributed systems and fault tolerance

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

References (21)

Show source-provided references
1. L. Clarke, I. Glendinning, and R. Hempel, “The MPI message passing interface standard,” presented at the Programming Environments for Massively Parallel Distributed Systems: Working Conf. of the IFIP WG 10.3, Monte Verita, Switzerland, Apr. 25–29, 1994, pp. 213–218.10.1007/978-3-0348-8534-8_21 ↗
2. Snir · MPI-The Complete Reference: The MPI Core · 1998 · 1 · 201
3. CHARM++: a portable concurrent object oriented system based on C++
4. Shared memory consistency models: A tutorial10.1109/2.546611 ↗
5. On implementing MPI-IO portably and with high performance
6. Statistical scalability analysis of communication operations in distributed applications
7. Automated application-level checkpointing of mpi programs
8. MPI-checker: Static analysis for MPI
9. Dynamic software testing of MPI applications with umpire
10. PARCOACH extension for static MPI nonblocking and persistent communication validation
11. Integrating static and dynamic analysis techniques for detecting dynamic errors in MPI programs
12. Combining static and dynamic validation of MPI collective communications
13. Static local concurrency errors detection in MPI-RMA programs
14. Protze · Tools for High Performance Computing 2012 · 2013 · 2510.1007/978-3-642-37349-7_3 ↗
15. MPI-RCDD: A framework for MPI Runtime Communication Deadlock Detection10.1007/s11390-020-9701-4 ↗
16. ISP: A tool for model checking MPI programs
17. ACC_TEST: Hybrid testing techniques for MPI-based programs10.1109/ACCESS.2020.2994172 ↗
18. An architecture for a tri-programming model-based parallel hybrid testing tool10.3390/app132111960 ↗
19. Deadlock detection for MPI programs based on refined match-sets
20. Prediction and correction of software defects in message-passing interfaces using a static analysis tool and machine learning10.1109/ACCESS.2023.3285598 ↗
21. Deadlock detection in MPI programs10.1002/cpe.701 ↗