Implementation and Experiments of a Distributed SMT Solving Environment

SMT-based Bounded Model Checking (BMC) consists of two primary tasks: (1) encoding a bounded model checking problem into a propositional formula that represents the problem, and (2) using a SMT solver to solve the formula, that is, finding a set of variable assignments that makes the formula true. Solving the formula (namely, SMT solving) involves computation-intensive processes and is thus time-consuming. Furthermore, as the model-checking bound increases, the encoded formulas become larger in size and harder to solve. The target of this paper is to accelerate SMT solving through distributed computation so as to enhance the performance of SMT-based BMC. To this end, we implement a multi-CPUs & multi-cores based distributed computation environment, to which different SMT solvers can be integrated. In this paper, we describe the implementation details and report our preliminary experimental results. Keywords-acceleration, distributed smt solving, mpi, openmp

[1]  Nikolaj Bjørner,et al.  Satisfiability Modulo Theories: An Appetizer , 2009, SBMF.

[2]  Cesare Tinelli,et al.  Handbook of Satisfiability , 2021, Handbook of Satisfiability.

[3]  Robert P. Kurshan,et al.  Experimental Analysis of Different Techniques for Bounded Model Checking , 2003, TACAS.

[4]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2021, Handbook of Satisfiability.

[5]  Bernd Fischer,et al.  SMT-Based Bounded Model Checking for Embedded ANSI-C Software , 2012, IEEE Transactions on Software Engineering.

[6]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[7]  Youssef Hamadi,et al.  A Concurrent Portfolio Approach to SMT Solving , 2009, CAV.

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

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

[10]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[11]  Stephan Merz,et al.  Model Checking , 2000 .

[12]  Akira Fukuda,et al.  On Accelerating SMT-based Bounded Model Checking of HSTM Designs , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[13]  Akira Fukuda,et al.  Harnessing SMT-Based Bounded Model Checking through Stateless Explicit-State Exploration , 2013, 2013 20th Asia-Pacific Software Engineering Conference (APSEC).

[14]  Tomohiro Shiraishi,et al.  An SMT-Based Approach to Bounded Model Checking of Designs in State Transition Matrix , 2011, IEICE Trans. Inf. Syst..

[15]  Armin Biere,et al.  Bounded model checking , 2003, Adv. Comput..

[16]  Alessandro Armando,et al.  Bounded model checking of software using SMT solvers instead of SAT solvers , 2006, International Journal on Software Tools for Technology Transfer.

[17]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.