Formal Verification of Programs That Use MPI One-Sided Communication
We used formal-verification methods based on model checking to analyze the correctness properties of one existing and two new distributed-locking algorithms implemented by using MPI’s one-sided communication. Model checking exposed an overlooked correctness issue with the first algorithm, which had been developed by relying only on manual reasoning. Model checking helped confirm the basic correctness properties of the two new algorithms, while also identifying the remaining problems in them. Our experience is that MPI-based programming, especially the tricky and relatively poorly understood one-sided communication features, stand to gain immensely from model checking. Considering that many other areas of concurrent hardware and software design now routinely employ model checking, our experience confirms that the MPI community can benefit greatly from the use of formal verification.
Unable to display preview. Download preview PDF.
- 2.Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)Google Scholar
- 3.Gropp, W., Lusk, E., Thakur, R.: Using MPI-2: Advanced Features of the Message-Passing Interface. MIT Press, Cambridge (1999)Google Scholar
- 5.Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2003)Google Scholar
- 6.Kranzlmüller, D.: Event Graph Analysis for Debugging Massively Parallel Programs. PhD thesis, John Kepler University Linz, Austria (September 2000), http://www.gup.uni-linz.ac.at/dk/thesis
- 10.Message Passing Interface Forum. MPI-2: Extensions to the Message-Passing Interface (July 1997), http://www.mpi-forum.org/docs/docs.html
- 11.S. Pervez.: http://www.cs.utah.edu/spervez/model.tar.gz
- 12.Pervez, S.: Byte-range locks using MPI one-sided communication. Technical report, University of Utah, School of Computing (2006), http://www.cs.utah.edu/formal_verification/OnesidedTR1/
- 14.Siegel, S.F., Mironova, A., Avrunin, G.S., Clarke, L.A.: Using model checking with symbolic execution to verify parallel numerical programs. In: Proceedings of the ACM SIGSOFT 2006 International Symposium on Software Testing and Analysis (July 2006)Google Scholar
- 15.Tanenbaum, A.S.: Modern Operating Systems. Prentice-Hall, Inc., Englewood Cliffs (2001)Google Scholar