Abstract
This article presents a new mathematical model of parallel programs that can be used, in particular, for verification of parallel programs presented on a certain subset of the MPI parallel programming interface. The model is based on the concepts of sequential and distributed processes. A parallel program is modeled as a distributed process within which sequential processes communicate by asynchronously sending and receiving messages over channels. The main advantage of the proposed model is its capability of modeling and verifying parallel programs that generate an indefinite number of sequential processes. To illustrate the model’s performance, an example of its application to verification of an MPI matrix multiplication program is described.
REFERENCES
Holzmann, G.J., Design and Validation of Computer Protocols, Prentice-Hall, 1990.
Lopez, H.A., Marques, E.R., Martins, F., Ng, N., Santos, C., Vasconcelos, V.T., and Yoshida, N., Protocol-based verification of message-passing parallel programs, OOPSLA 2015: Proc. 2015 ACM SIGPLAN Int. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, Pittsburgh, Pa., 2015, New York: Association for Computing Machinery, 2015, pp. 280–298. https://doi.org/10.1145/2814270.2814302
Grudenic, I. and Bogunovic, N., Modeling and verification of MPI based distributed software, Recent Advances in Parallel Virtual Machine and Message Passing Interface. EuroPVM/MPI 2006, Mohr, B., Träff, J.L., Worringen, J., and Dongarra, J., Eds., Lecture Notes in Computer Science, vol. 4192, Berlin: Springer, 2006, pp. 123–132. https://doi.org/10.1007/11846802_23
Blass, A. and Gurevich, Yu., Abstract state machines capture parallel algorithms, ACM Trans. Comput. Logic, 2003, vol. 4, no. 4, pp. 578–651. https://doi.org/10.1145/937555.937561
Siegel, S.F., Model checking nonblocking MPI programs, International Workshop on Verification, Model Checking, and Abstract Interpretation, VMCAI 2007, Cook, B. and Podelski, A., Eds., Lecture Notes in Computer Science, vol. 4349, Berlin: Springer, 2007, pp. 44–58. https://doi.org/10.1007/978-3-540-69738-1_3
Siegel, S.F., Mironova, A., Avrunin, G.S., and Clarke, L.A., Combining symbolic execution with model checking to verify parallel numerical programs, ACM Trans. Software Eng. Methodol., 2008, vol. 17, no. 2, pp. 1–34. https://doi.org/10.1145/1348250.1348256
Vakkalanka, S., Gopalakrishnan, G., and Kirby, R.M., Dynamic verification of MPI programs with reductions in presence of split operations and relaxed orderings, International Conference on Computer Aided Verification. CAV 2008, Gupta, A. and Malik, S., Eds., Lecture Notes in Computer Science, vol. 5123, Berlin: Springer, 2008, pp. 66–79. https://doi.org/10.1007/978-3-540-70545-1_9
Gopalakrishnan, G., Kirby, R.M., Siegel, S., Thakur, R., Gropp, W., Lusk, E., De Supinski, B.R., Schulz, M., and Bronevetsky, G., Formal analysis of MPI-based parallel programs, Commun. ACM, 2011, vol. 54, no. 12, pp. 82–91. https://doi.org/10.1145/2043174.2043194
Forejt, V., Joshi, S., Kroening, D., Narayanaswamy, G., and Sharma, S., Precise predictive analysis for discovering communication deadlocks in MPI programs, ACM Trans. Program. Languages Syst., 2017, vol. 39, no. 4, p. 15. https://doi.org/10.1145/3095075
Luo, Z., Zheng, M, and Siegel, S.F, Verification of MPI programs using CIVL, EuroMPI ’17: Proc. 24th European MPI Users’ Group Meeting, Chicago, 2017, New York: Association for Computing Machinery, 2017, p. 6. https://doi.org/10.1145/3127024.3127032
Hong, W., Chen, Z., Yu, H., and Wang, J., Evaluation of model checkers by verifying message passing programs, Sci. China Inf. Sci., 2019, vol. 62, p. 200101. https://doi.org/10.1007/s11432-018-9825-3
Yu, H., Chen, Z., Fu, X., Wang, J., Su, Z., Sun, J., Huang, C., and Dong, W., Symbolic verification of message passing interface programs, ICSE ’20: Proc. ACM/IEEE 42nd International Conference on Software Engineering, Seoul, 2020, New York: Association for Computing Machinery, 2020, pp. 1248–1260. https://doi.org/10.1145/3377811.3380419
Funding
This study was supported by a grant from the Ministry of Digital Development, Communications and Mass Media of the Russian Federation and AO Russian Venture Company (contract no. 004/20 dated March 20, 2020, IGK 0000000007119P190002).
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
The author declares that he has no conflicts of interest.
Additional information
Translated by A. Ovchinnikova
About this article
Cite this article
Mironov, A.M. A Mathematical Model of Parallel Programs and an Approach to Verification of MPI Programs Based on the Proposed Model. Aut. Control Comp. Sci. 56, 762–777 (2022). https://doi.org/10.3103/S014641162207015X
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.3103/S014641162207015X