ISP Formal Verification Tool

Last updated

ISP ("In-situ Partial Order") is a tool for the formal verification of MPI programs developed within the School of Computing at the University of Utah. Like model checkers, such as SPIN, ISP verifies the complete state space of a system for a set of safety properties. However, unlike model checkers, ISP performs code level verification. This means that the tool verifies all relevant interleavings of a concurrent program by replaying the actual program code without building verification models. This idea was pioneered in a number of tools, notably by Godefroid, in his VeriSoft tool. [1] Other recent tools of this genre include the Java Pathfinder, Microsoft's CHESS tool, and MODIST. Relevant interleavings are computed using a customized dynamic partial order reduction [2] algorithm called POE. [3]

Contents

ISP has been used to successfully verify up to 14,000 lines of MPI/C code for deadlocks and assertion violations. It currently supports over 60 MPI 2.1 functions, and has been tested with MPICH2, OpenMPI,and Microsoft MPI libraries.

ISP is available for download for linux and Mac OS X; as a Visual Studio plugin for running under Windows, and as an Eclipse plugin..

Related Research Articles

In computer science, abstract interpretation is a theory of sound approximation of the semantics of computer programs, based on monotonic functions over ordered sets, especially lattices. It can be viewed as a partial execution of a computer program which gains information about its semantics without performing all the calculations.

Message Passing Interface (MPI) is a standardized and portable message-passing standard designed by a group of researchers from academia and industry to function on a wide variety of parallel computing architectures. The standard defines the syntax and semantics of a core of library routines useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran. There are several well-tested and efficient implementations of MPI, many of which are open-source or in the public domain. These fostered the development of a parallel software industry, and encouraged development of portable and scalable large-scale parallel applications.

Model checking

In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification. This is typically associated with hardware or software systems, where the specification contains liveness requirements as well as safety requirements.

In computing, SPMD is a technique employed to achieve parallelism; it is a subcategory of MIMD. Tasks are split up and run simultaneously on multiple processors with different input in order to obtain results faster. SPMD is the most common style of parallel programming. It is also a prerequisite for research concepts such as active messages and distributed shared memory.

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

Modelica programming language

Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents. The free Modelica language is developed by the non-profit Modelica Association. The Modelica Association also develops the free Modelica Standard Library that contains about 1400 generic model components and 1200 functions in various domains, as of version 4.0.0.

In computer science, an abstract state machine (ASM) is a state machine operating on states that are arbitrary data structures.

In computer science, partial order reduction is a technique for reducing the size of the state-space to be searched by a model checking or Automated planning and scheduling algorithm. It exploits the commutativity of concurrently executed transitions, which result in the same state when executed in different orders.

In computer science, separation logic is an extension of Hoare logic, a way of reasoning about programs. It was developed by John C. Reynolds, Peter O'Hearn, Samin Ishtiaq and Hongseok Yang, drawing upon early work by Rod Burstall. The assertion language of separation logic is a special case of the logic of bunched implications (BI). A CACM review article by O'Hearn charts developments in the subject to early 2019.

The Portable, Extensible Toolkit for Scientific Computation, is a suite of data structures and routines developed by Argonne National Laboratory for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the Message Passing Interface (MPI) standard for all message-passing communication. PETSc is the world’s most widely used parallel numerical software library for partial differential equations and sparse matrix computations. PETSc received an R&D 100 Award in 2009. The PETSc Core Development Group won the SIAM/ACM Prize in Computational Science and Engineering for 2015.

The Parallel Virtual File System (PVFS) is an open-source parallel file system. A parallel file system is a type of distributed file system that distributes file data across multiple servers and provides for concurrent access by multiple tasks of a parallel application. PVFS was designed for use in large scale cluster computing. PVFS focuses on high performance access to large data sets. It consists of a server process and a client library, both of which are written entirely of user-level code. A Linux kernel module and pvfs-client process allow the file system to be mounted and used with standard utilities. The client library provides for high performance access via the message passing interface (MPI). PVFS is being jointly developed between The Parallel Architecture Research Laboratory at Clemson University and the Mathematics and Computer Science Division at Argonne National Laboratory, and the Ohio Supercomputer Center. PVFS development has been funded by NASA Goddard Space Flight Center, The DOE Office of Science Advanced Scientific Computing Research program, NSF PACI and HECURA programs, and other government and private agencies. PVFS is now known as OrangeFS in its newest development branch.

The ACM–IEEE Symposium on Logic in Computer Science (LICS) is an annual academic conference on the theory and practice of computer science in relation to mathematical logic. Extended versions of selected papers of each year's conference appear in renowned international journals such as Logical Methods in Computer Science and ACM Transactions on Computational Logic.

Thread Level Speculation (TLS) is a technique to speculatively execute a section of computer code that is anticipated to be executed later in parallel with the normal execution on a separate independent thread. Such a speculative thread may need to make assumptions about the values of input variables. If these prove to be invalid the speculative thread will need to be discarded and squashed. If the assumptions are correct the program can complete in a shorter time provided the thread was able to be scheduled efficiently.

Computer cluster group of computers

A computer cluster is a set of loosely or tightly connected computers that work together so that, in many respects, they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software.

Concolic testing is a hybrid software verification technique that performs symbolic execution, a classical technique that treats program variables as symbolic variables, along a concrete execution path. Symbolic execution is used in conjunction with an automated theorem prover or constraint solver based on constraint logic programming to generate new concrete inputs with the aim of maximizing code coverage. Its main focus is finding bugs in real-world software, rather than demonstrating program correctness.

In computing, algorithmic skeletons, or parallelism patterns, are a high-level parallel programming model for parallel and distributed computing.

Message passing in computer clusters

Message passing is an inherent element of all computer clusters. All computer clusters, ranging from homemade Beowulfs to some of the fastest supercomputers in the world, rely on message passing to coordinate the activities of the many nodes they encompass. Message passing in computer clusters built with commodity servers and switches is used by virtually every internet service.

Radhia Cousot Inventor of abstract interpretation

Radhia Cousot was a French computer scientist known for inventing abstract interpretation.

David Lansing Dill is a computer scientist and academic noted for contributions to formal verification, electronic voting security, and computational systems biology. He is the Donald E. Knuth Professor, Emeritus, in the School of Engineering and Professor, Emeritus, of Computer Science at Stanford University.

References

  1. Patrice Godefroid, Model Checking for Programming Languages using VeriSoft POPL 1997
  2. Cormac Flanagan and Patrice Godefroid, Dynamic partial-order reduction for model checking software,, POPL 2005, pp. 110-121, ACM, ISBN   1-58113-830-X
  3. Sarvani Vakkalanka, Ganesh Gopalakrishnan, and Robert M. Kirby, Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations and Relaxed Orderings, Computer Aided Verification (CAV 2008), pp. 66-79, LNCS 5123.

Anh Vo, Sarvani Vakkalanka, Michael DeLisi, Ganesh Gopalakrishnan, Robert M. Kirby, and Rajeev Thakur, Formal Verification of Practical MPI Programs, PPoPP 2009

Sarvani Vakkalanka, Michael DeLisi, Ganesh Gopalakrishnan, and Robert M. Kirby, Scheduling Considerations for Building Dynamic Verification Tools for MPI, Parallel and Distributed Systems - Testing and Debugging (PADTAD-VI), Seattle, WA, July, 2008.

Sarvani Vakkalanka, Michael DeLisi, Ganesh Gopalakrishnan, Robert M. Kirby, Rajeev Thakur, and William Gropp, Implementing Efficient Dynamic Formal Verification Methods for MPI Programs, Recent Advances in Parallel Virtual Machine and Message Passing Interface (EuroPVM/MPI 2008), Dublin, Ireland, 2008, LNCS 5205, pp. 248–256.

Sarvani Vakkalanka, Subodh Sharma, Ganesh Gopalakrishnan, and Robert M. Kirby, ISP: A Tool for Model Checking MPI Programs, Principles and Practices of Parallel Programming (PPoPP 2008), Salt Lake City, February 2008, pp. 285–286.

Salman Pervez, Robert Palmer, Ganesh Gopalakrishnan, Robert M. Kirby, Rajeev Thakur, and William Gropp, Practical Model Checking Methods for Verifying Correctness of MPI Programs, Recent Advances in Parallel Virtual Machine and Message Passing Interface (PDF) (EuroPVM/MPI), Paris, 344—353, LNCS 4757, France, September 30 - October 3, 2007

Cited By

Combining symbolic execution with model checking to verify parallel numerical programs,umass.edu PDF SF Siegel, A Mironova, GS Avrunin, LA Clarke - ACM Transactions on Software Engineering and Methodology - portal.acm.org

Verification of halting properties for MPI programs using nonblocking operations

- psu.edu PDF 

SF Siegel, GS Avrunin - Lecture Notes in Computer Science, 2007 - Springer

MPIWiz: Subgroup reproducible replay of MPI applications R Xue, X Liu, M Wu, Z Guo, W Chen, W Zheng, Z Zhang, Geoffrey M. Voelker Tsinghua University, Microsoft Research Asia, University of Southern California San Diego - cs.ucsd.edu

Dynamic testing of flow graph based parallel applications

- epfl.ch 

B Schaeli, RD Hersch - Proceedings of the 6th workshop on Parallel and distributed Programming, 2008 - portal.acm.org

Visual Debugging of MPI Applications

- epfl.ch PDF 

B Schaeli, A Al-Shabibi, RD Hersch - Proceedings of the 15th European PVM/MPI Users' Group …, 2008 - Springer