Distributed Safety Verification Using Vertex Centric Programming Model

Software is finding place in deeply embedded systems to large scale distributed systems of cloud service providers such as Amazon and Google. Due to the concurrent and distributed nature of this software, it is hard to test for correctness of such systems in a foolproof manner. Explicit state model checking is an approach in which we build a model of the system and specify the properties it should hold. Then we construct a state transition system from the model and check if it satisfies the specified properties. There are two kinds of properties of interest: safety and liveness. In this paper, we focus our attention on safety verification, which involves checking if the states that are generated in the transition system satisfy some predicate formulae specified in the form of assertions. The main problem here is that the number of states in the transition system grows exponentially with the number of bits required to store the state of a model at any given point time. So the available main memory even in a server class machine is not sufficient to model check non-trivial practical models. One approach to address this problem is by using resources from a distributed collection of machines. In this paper, we adopt this approach, by proposing a distributed safety property verification algorithm using the vertex centric programming model.

[1]  Lubos Brim,et al.  Scalable Multi-core LTL Model-Checking , 2007, SPIN.

[2]  Gary L. Peterson A New Solution to Lamport's Concurrent Programming Problem Using Small Shared Variables , 1983, TOPL.

[3]  Edmund M. Clarke,et al.  State space reduction using partial order techniques , 1999, International Journal on Software Tools for Technology Transfer.

[4]  Alex Groce,et al.  Swarm Verification , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[5]  Lubos Brim,et al.  DiVinE - A Tool for Distributed Verification , 2006, CAV.

[6]  Thomas Kropf,et al.  Introduction to Formal Hardware Verification , 1999, Springer Berlin Heidelberg.

[7]  Lubos Brim,et al.  Accepting Predecessors Are Better than Back Edges in Distributed LTL Model-Checking , 2004, FMCAD.

[8]  Lubos Brim,et al.  Designing fast LTL model checking algorithms for many-core GPUs , 2012, J. Parallel Distributed Comput..

[9]  Jian Zhai,et al.  A vertex centric parallel algorithm for linear temporal logic model checking in Pregel , 2014, J. Parallel Distributed Comput..

[10]  M. Ben,et al.  Principles of concurrent and distributed programming, second edition , 2006 .

[11]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[12]  Radek Pelánek,et al.  BEEM: Benchmarks for Explicit Model Checkers , 2007, SPIN.

[13]  Gerard J. Holzmann,et al.  Design and Validation of Protocols: A Tutorial , 1993, Comput. Networks ISDN Syst..

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

[15]  Marc de Jonge The SpinJ model checker : a fast, extensible, object-oriented model checker , 2008 .

[16]  Jaco van de Pol,et al.  1 Motivation : A Modular , High-Performance Model Checker , 2010 .