skip to main content
10.1145/1504176.1504214acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Formal verification of practical MPI programs

Published: 14 February 2009 Publication History

Abstract

This paper considers the problem of formal verification of MPI programs operating under a fixed test harness for safety properties without building verification models. In our approach, we directly model-check the MPI/C source code, executing its interleavings with the help of a verification scheduler. Unfortunately, the total feasible number of interleavings is exponential, and impractical to examine even for our modest goals. Our earlier publications formalized and implemented a partial order reduction approach that avoided exploring equivalent interleavings, and presented a verification tool called ISP. This paper presents algorithmic and engineering innovations to ISP, including the use of OpenMP parallelization, that now enables it to handle practical MPI programs, including:(i)~ParMETIS - a widely used hypergraph partitioner, and (ii)~MADRE - a Memory Aware Data Re-distribution Engine, both developed outside our group. Over these benchmarks, ISP has automatically verified up to 14K lines of MPI/C code, producing error traces of deadlocks and assertion violations within seconds.

References

[1]
http://www.cs.utah.edu/formal_verification/ISP
[2]
E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, Dec. 1999.
[3]
C. Flanagan and P. Godefroid. Dynamic partial-order reduction for model checking software. In POPL, pages 110--121. ACM, 2005.
[4]
A. Geist. Sustained Petascale: The next MPI challenge. Invited Talk at EuroPVM/MPI 2007.
[5]
P. Godefroid.Partial-Order Methods for the Verification of Concurrent Systems: An approach to the State-Explosion Problem. PhD thesis, Universite De Liege, 1994--95.
[6]
P. Godefroid, B. Hanmer, and L. Jagadeesan. Systematic software testing using VeriSoft: An analysis of the 4ess heart-beat monitor. Bell Labs Technical Journal, 3(2), April-June 1998.
[7]
W. Gropp, E. Lusk, N. Doss, and A. Skjellum. A high-performance, portable implementation of the MPI message passing interface standard. Parallel Computing, 22(6):789--828, Sept. 1996.
[8]
G. Karypis. METIS and ParMETIS. http://glaros.dtc.umn.edu/gkhome/views/metis.
[9]
G. Karypis and V. Kumar. Parallel multilevel k-way partitioning scheme for irregular graphs. In SuperComputing (SC), 1996.
[10]
B. Krammer, K. Bidmon, M. S. Müller, and M. M. Resch. Marmot: An MPI analysis and checking tool. In Parallel Computing 2003, Sept. 2003.
[11]
L. Lamport. Time, clocks and ordering of events in distributed systems. Communications of the ACM, 21(7):558--565, July 1978.
[12]
A. L. Lastovetsky, T. Kechadi, and J. Dongarra, editors. Recent Advances in Parallel Virtual Machine and Message Passing Interface, 15th European PVM/MPI Users' Group Meeting, 2008, volume 5205 of Lecture Notes in Computer Science. Springer, 2008.
[13]
G. Luecke, H. Chen, J. Coyle, J. Hoekstra, M. Kraeva, and Y. Zou. MPI-CHECK: A tool for checking Fortran 90 MPI programs. Concurrency and Computation: Practice and Experience, 15:93--100, 2003.
[14]
M. Musuvathi and S. Qadeer. Fair stateless model checking. In PLDI '08: Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation, pages 362--371, New York, NY, USA, 2008. ACM.
[15]
V. Prasad. Scalable and Accurate Approaches to Program Dependence Analysis, Slicing, and Verification of Concurrent Object Oriented Programs. PhD thesis, Kansas State University, 2006.
[16]
S. Sharma, S. Vakkalanka, G. Gopalakrishnan, R. M. Kirby, R. Thakur, and W. Gropp. A formal approach to detect functionally irrelevant barriers in mpi programs. In Lastovetsky et al. {12}, pages 265--273.
[17]
S. V. Sharma, G. Gopalakrishnan, and R. M. Kirby. A survey of MPI related debuggers and tools. Technical Report UUCS-07-015, University of Utah, School of Computing, 2007. http://www.cs.utah.edu/research/techreports.shtml.
[18]
S. Siegel. The MADRE manual. http://vsl.cis.udel.edu/madre/.
[19]
S. F. Siegel and G. S. Avrunin. Verification of MPI-based software for scientific computation. In Proceedings of the 11th International SPIN Workshop on Model Checking Software, pages 286--303, 2004.
[20]
S. F. Siegel and L. F. Rossi. Analyzing BlobFlow: A case study using model checking to verify parallel scientific software. In Lastovetsky et al. DBLP:conf/pvm/2008, pages 274--282.
[21]
S. F. Siegel and A. R. Siegel. MADRE: The Memory-Aware Data Redistribution Engine. In Lastovetsky et al. {12}, pages 218--226.
[22]
S. Vakkalanka, M. DeLisi, G. Gopalakrishnan, and R. M. Kirby. Scheduling considerations for building dynamic verification tools for MPI. In Parallel and Distributed Systems -- Testing and Debugging (PADTAD-VI), July 2008.
[23]
S. Vakkalanka, M. DeLisi, G. Gopalakrishnan, R. M. Kirby, R. Thakur, and W. Gropp. Implementing efficient dynamic formal verification methods for mpi programs. In Lastovetsky et al. {12}, pages 248--256.
[24]
S. Vakkalanka, G. Gopalakrishnan, and R. M. Kirby.Dynamic verification of MPI programs with reductions in presence of split operations and relaxed orderings. In CAV, volume 5123 of Lecture Notes in Computer Science, pages 66--79. Springer, 2008.
[25]
J. S. Vetter and B. R. de Supinski. Dynamic software testing of MPI applications with Umpire. In Supercomputing, pages 70--79, 2000.
[26]
Y. Yang, X. Chen, G. Gopalakrishnan, and R. M. Kirby. Distributed dynamic partial order reduction based verification of threaded software. In SPIN, Lecture Notes in Computer Science, pages 58--75. Springer, 2007.
[27]
Y. Yang, X. Chen, G. Gopalakrishnan, and R. M. Kirby. Efficient stateful dynamic partial order reduction. In SPIN, Lecture Notes in Computer Science, pages 288--305. Springer, 2008.

Cited By

View all
  • (2018)Detecting MPI usage anomalies via partial program symbolic executionProceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis10.5555/3291656.3291740(1-5)Online publication date: 11-Nov-2018
  • (2018)Detecting MPI usage anomalies via partial program symbolic executionProceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis10.1109/SC.2018.00066(1-5)Online publication date: 11-Nov-2018
  • (2018)Model Checking Concurrent ProgramsHandbook of Model Checking10.1007/978-3-319-10575-8_18(573-611)Online publication date: 19-May-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '09: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
February 2009
322 pages
ISBN:9781605583976
DOI:10.1145/1504176
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 44, Issue 4
    PPoPP '09
    April 2009
    294 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1594835
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 February 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. distributed programming
  2. dynamic partial order reduction
  3. message passing interface
  4. model checking
  5. mpi

Qualifiers

  • Research-article

Conference

PPoPP09
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 1,014 submissions, 23%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)28
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2018)Detecting MPI usage anomalies via partial program symbolic executionProceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis10.5555/3291656.3291740(1-5)Online publication date: 11-Nov-2018
  • (2018)Detecting MPI usage anomalies via partial program symbolic executionProceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis10.1109/SC.2018.00066(1-5)Online publication date: 11-Nov-2018
  • (2018)Model Checking Concurrent ProgramsHandbook of Model Checking10.1007/978-3-319-10575-8_18(573-611)Online publication date: 19-May-2018
  • (2017)Noise Injection Techniques to Expose Subtle and Unintended Message RacesACM SIGPLAN Notices10.1145/3155284.301876752:8(89-101)Online publication date: 26-Jan-2017
  • (2017)Noise Injection Techniques to Expose Subtle and Unintended Message RacesProceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3018743.3018767(89-101)Online publication date: 26-Jan-2017
  • (2016)BSP-WhyInternational Journal of Parallel Programming10.1007/s10766-015-0360-y44:3(574-597)Online publication date: 1-Jun-2016
  • (2015)MPI-checkerProceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC10.1145/2833157.2833159(1-10)Online publication date: 15-Nov-2015
  • (2015)Calculation coverage testing in scientific applicationsProceedings of the 2015 International Symposium on Software Testing and Analysis10.1145/2771783.2771807(350-360)Online publication date: 13-Jul-2015
  • (2015)When truth is efficient: analysing concurrencyProceedings of the 2015 International Symposium on Software Testing and Analysis10.1145/2771783.2771790(141-152)Online publication date: 13-Jul-2015
  • (2015)Protocols by DefaultCompiler Construction10.1007/978-3-662-46663-6_11(212-232)Online publication date: 2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media