Methods to Model-Check Parallel Systems Software

We report on an effort to develop methodologies for formal verification of parts of the Multi-Purpose Daemon (MPD) parallel process management system. MPD is a distributed collection of communicating processes. While the individual components of the collection execute simple algorithms, their interaction leads to unexpected errors that are difficult to uncover by conventional means. Two verification approaches are discussed here: the standard model checking approach using the software model checker SPIN and the nonstandard use of a general-purpose first-order resolution-style theorem prover OTTER to conduct the traditional state space exploration. We compare modeling methodology and analyze performance and scalability of the two methods with respect to verification of MPD.

[1]  William Gropp,et al.  A Scalable Process-Management Environment for Parallel Programs , 2000, PVM/MPI.

[2]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[3]  Anthony Skjellum,et al.  A High-Performance, Portable Implementation of the MPI Message Passing Interface Standard , 1996, Parallel Comput..

[4]  David L. Dill,et al.  Better verification through symmetry , 1996, Formal Methods Syst. Des..

[5]  William Gropp,et al.  Components and interfaces of a process management system for parallel programs , 2001, Parallel Comput..

[6]  Alan J. Hu,et al.  Protocol verification as a hardware design aid , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[7]  J. S. Moore,et al.  A Mechanically Checked Proof of a Multiprocessor Result via a Uniprocessor View , 1999, Formal Methods Syst. Des..

[8]  Daniel Jackson,et al.  Elements of style: analyzing a software design feature with a counterexample detector , 1996, ISSTA '96.

[9]  Theo C. Ruys Low-Fat Recipes for SPIN , 2000, SPIN.

[10]  Theodorus Cornelis Ruys,et al.  Towards effective model checking , 2001 .

[11]  William McCune,et al.  OTTER 3.0 Reference Manual and Guide , 1994 .

[12]  William McCune,et al.  SPINning Parallel Systems Software , 2002, SPIN.

[13]  George S. Avrunin,et al.  Comparing Finite-State Verification Techniques for Concurrent Software , 1999 .

[14]  W. Richard Stevens,et al.  Unix network programming , 1990, CCRV.

[15]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..