Thread-based multi-engine model checking for multicore platforms

This article describes a multithreaded, portfolio-based approach to model checking, where multiple cores are exploited as the underlying computing framework to support concurrent execution of cooperative engines. We introduce a portfolio-based approach to model checking. Our portfolio is first driven by an approximate runtime predictor that provides a heuristic approximation to a perfect oracle and suggests which engines are more suitable for each verification instance. Scalability and robustness of the overall model-checking effort highly rely on a concurrent, multithreaded model of execution. Following similar approaches in related application fields, we dovetail data partitioning, focused on proving several properties in parallel, and engine partitioning, based on concurrent runs of different model-checking engines competing for completion of the same problem. We investigate concurrency not only to effectively exploit several available engines, which operate independently, but also to show that a cooperative effort is possible. In this case, we adopt a straightforward, light-weight, model of inter-engine communication and data sharing. We provide a detailed description of the ideas, algorithms, and experimental results obtained on the benchmarks from the Hardware Model Checking Competition suites (HWMCC'10 and HWMCC'11).

[1]  Gianpiero Cabodi,et al.  Benchmarking a model checker for algorithmic improvements and tuning for performance , 2011, Formal Methods Syst. Des..

[2]  G. Cabodi,et al.  Stepping Forward with Interpolants in Unbounded Model Checking , 2006, 2006 IEEE/ACM International Conference on Computer Aided Design.

[3]  Aaron R. Bradley,et al.  SAT-Based Model Checking without Unrolling , 2011, VMCAI.

[4]  Gianpiero Cabodi,et al.  Automated abstraction by incremental refinement in interpolant-based model checking , 2008, ICCAD 2008.

[5]  R. Wolski,et al.  GridSAT: A Chaff-based Distributed SAT Solver for the Grid , 2003, ACM/IEEE SC 2003 Conference (SC'03).

[6]  Koen Claessen,et al.  SAT-Based Verification without State Space Traversal , 2000, FMCAD.

[7]  Jason Baumgartner,et al.  Scalable Sequential Equivalence Checking across Arbitrary Design Transformations , 2006, 2006 International Conference on Computer Design.

[8]  Gianpiero Cabodi,et al.  Boosting interpolation with dynamic localized abstraction and redundancy removal , 2008, TODE.

[9]  Siert Wieringa,et al.  Tarmo: A Framework for Parallelized Bounded Model Checking , 2009, PDMC.

[10]  Hai Zhou,et al.  Parallel CAD: Algorithm Design and Programming Special Section Call for Papers TODAES: ACM Transactions on Design Automation of Electronic Systems , 2010 .

[11]  Armin Biere Lingeling, Plingeling, PicoSAT and PrecoSAT at SAT Race 2010 , 2010 .

[12]  Kenneth L. McMillan,et al.  Interpolation and SAT-Based Model Checking , 2003, CAV.

[13]  Robert K. Brayton,et al.  ABC: An Academic Industrial-Strength Verification Tool , 2010, CAV.

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

[15]  Bernd Becker,et al.  Multithreaded SAT Solving , 2007, 2007 Asia and South Pacific Design Automation Conference.

[16]  David R. O'Hallaron,et al.  Parallel breadth-first BDD construction , 1997, PPOPP '97.

[17]  Gianpiero Cabodi,et al.  Optimized model checking of multiple properties , 2011, 2011 Design, Automation & Test in Europe.

[18]  Forrest Brewer,et al.  Implementation of an efficient parallel BDD package , 1996, DAC '96.

[19]  Wolfgang Küchlin,et al.  PaSAT - Parallel SAT-Checking with Lemma Exchange: Implementation and Applications , 2001, Electron. Notes Discret. Math..

[20]  CabodiGianpiero,et al.  Thread-based multi-engine model checking for multicore platforms , 2013 .

[21]  R. Brayton,et al.  The Benefit of Concurrency in Model Checking , 2011 .

[22]  Tad Hogg,et al.  An Economics Approach to Hard Computational Problems , 1997, Science.

[23]  Gianpiero Cabodi,et al.  Automated abstraction by incremental refinement in interpolant-based model checking , 2008, 2008 IEEE/ACM International Conference on Computer-Aided Design.

[24]  Hana Chockler,et al.  Incremental formal verification of hardware , 2011, 2011 Formal Methods in Computer-Aided Design (FMCAD).

[25]  Mary Sheeran,et al.  Checking Safety Properties Using Induction and a SAT-Solver , 2000, FMCAD.

[26]  Jason Baumgartner,et al.  Scalable Automated Verification via Expert-System Guided Transformations , 2004, FMCAD.

[27]  Nachum Dershowitz,et al.  Parallel Multithreaded Satisfiability Solver: Design and Implementation , 2005, PDMC.

[28]  Lucas Bordeaux,et al.  Experiments with Massively Parallel Constraint Solving , 2009, IJCAI.

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

[30]  Assaf Schuster,et al.  A Scalable Parallel Algorithm for Reachability Analysis of Very Large Circuits , 2002, Formal Methods Syst. Des..

[31]  Gianpiero Cabodi,et al.  Strengthening Model Checking Techniques With Inductive Invariants , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[32]  Masahiro Fujita,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, DAC '99.

[33]  Gianpiero Cabodi,et al.  Partitioning Interpolant-Based Verification for Effective Unbounded Model Checking , 2010, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[34]  Lakhdar Sais,et al.  Diversification and Intensification in Parallel SAT Solving , 2010, CP.

[35]  Gianpiero Cabodi,et al.  Detecting hard faults with combined approximate forward/backward symbolic techniques , 1994, Proceedings of IEEE International Symposium on Circuits and Systems - ISCAS '94.

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

[37]  Gianpiero Cabodi,et al.  Trading-Off SAT Search and Variable Quantifications for Effective Unbounded Model Checking , 2008, 2008 Formal Methods in Computer-Aided Design.