Tarmo: A Framework for Parallelized Bounded Model Checking

This paper investigates approaches to parallelizing Bounded Model Checking (BMC) for shared memory environments as well as for clusters of workstations. We present a generic framework for parallelized BMC named Tarmo. Our framework can be used with any incremental SAT encoding for BMC but for the results in this paper we use only the current state-of-the-art encoding for full PLTL [4]. Using this encoding allows us to check both safety and liveness properties, contrary to an earlier work on distributing BMC that is limited to safety properties only. Despite our focus on BMC after it has been translated to SAT, existing distributed SAT solvers are not well suited for our application. This is because solv ing a BMC problem is not solving a set of independent SAT instances but rather involves solving multiple related SAT instances, encoded incrementally, where the satisfiability of each instance corresponds to th e existence of a counterexample of a specific length. Our framework includes a generic archit ecture for a shared clause database that allows easy clause sharing between SAT solver threads solving various such instances. We present extensive experimental results obtained with multiple variants of our Tarmo implementation. Our shared memory variants have a significantly b etter performance than conventional single threaded approaches, which is a result that many users can benefit from as multi-core and multi-processor technology is widely available. Furthermore we demonstrate that our framework can be deployed in a typical cluster of workstations, where several multi-core machines are connected by a network.

[1]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[2]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[3]  Ilkka Niemelä,et al.  Incorporating Clause Learning in Grid-Based Randomized SAT Solving , 2009, J. Satisf. Boolean Model. Comput..

[4]  Robert B. Ross,et al.  Using MPI-2: Advanced Features of the Message Passing Interface , 2003, CLUSTER.

[5]  Maria Paola Bonacina,et al.  PSATO: a Distributed Propositional Prover and its Application to Quasigroup Problems , 1996, J. Symb. Comput..

[6]  Bernd Becker,et al.  PaMiraXT: Parallel SAT Solving with Threads and Message Passing , 2009, J. Satisf. Boolean Model. Comput..

[7]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[8]  Ilkka Niemelä,et al.  Strategies for Solving SAT in Grids by Randomized Search , 2008, AISC/MKM/Calculemus.

[9]  Timo Latvala,et al.  Incremental and Complete Bounded Model Checking for Full PLTL , 2005, CAV.

[10]  Bernd Becker,et al.  Parallel SAT Solving in Bounded Model Checking , 2006, J. Log. Comput..

[11]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[12]  Lakhdar Sais,et al.  ManySAT: a Parallel SAT Solver , 2009, J. Satisf. Boolean Model. Comput..

[13]  Viktor Schuppan,et al.  Linear Encodings of Bounded LTL Model Checking , 2006, Log. Methods Comput. Sci..

[14]  Niklas Sörensson,et al.  Temporal induction by incremental SAT solving , 2003, BMC@CAV.

[15]  D. Mpekas The first steps to a hybrid SAT Solver , 2006 .

[16]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.