skip to main content
research-article

Verification of MPI Java programs using software model checking

Published:27 February 2016Publication History
Skip Abstract Section

Abstract

Development of concurrent software requires the programmer to be aware of non-determinism, data races, and deadlocks. MPI (message passing interface) is a popular standard for writing message oriented distributed applications. Some messages in MPI systems can be processed by one of the many machines and in many possible orders. This non-determinism can affect the result of an MPI application. The alternate results may or may not be correct. To verify MPI applications, we need to check all these possible orderings and use an application specific oracle to decide if these orderings give correct output. MPJ Express is an open source Java implementation of the MPI standard. We developed a Java based model of MPJ Express, where processes are modeled as threads, and which can run unmodified MPI Java programs on a single system. This enabled us to adapt the Java PathFinder explicit state software model checker (JPF) using a custom listener to verify our model running real MPI Java programs. We evaluated our approach using small examples where model checking revealed message orders that would result in incorrect system behavior.

References

  1. E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. G. Gopalakrishnan, R. M. Kirby, S. Siegel, R. Thakur, W. Gropp, E. Lusk, B. R. De Supinski, M. Schulz, and G. Bronevetsky. Formal Analysis of MPI-based Parallel Programs. Communications of the ACM, 54(12): 82--91, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Havelund and T. Pressburger. Model Checking Java Programs Using Java Pathfinder. International Journal on Software Tools for Technology Transfer, 2(4):366--381, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  4. R. van Galen. Towards Verification of MPJ-based Java Programs. 15th Twente Student Conference on IT, 15, 2011.Google ScholarGoogle Scholar

Index Terms

  1. Verification of MPI Java programs using software model checking

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 51, Issue 8
            PPoPP '16
            August 2016
            405 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/3016078
            Issue’s Table of Contents
            • cover image ACM Conferences
              PPoPP '16: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
              February 2016
              420 pages
              ISBN:9781450340922
              DOI:10.1145/2851141

            Copyright © 2016 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 27 February 2016

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!