Variations on Multi-Core Nested Depth-First Search

Recently, two new parallel algorithms for on-the-fly model checking of LTL properties were presented at the same conference: Automated Technology for Verification and Analysis, 2011. Both approaches extend Swarmed NDFS, which runs several sequential NDFS instances in parallel. While parallel random search already speeds up detection of bugs, the workers must share some global information in order to speed up full verification of correct models. The two algorithms differ considerably in the global information shared between workers, and in the way they synchronize. Here, we provide a thorough experimental comparison between the two algorithms, by measuring the runtime of their implementations on a multi-core machine. Both algorithms were implemented in the same framework of the model checker LTSmin, using similar optimizations, and have been subjected to the full BEEM model database. Because both algorithms have complementary advantages, we constructed an algorithm that combines both ideas. This combination clearly has an improved speedup. We also compare the results with the alternative parallel algorithm for accepting cycle detection OWCTY-MAP. Finally, we study a simple statistical model for input models that do contain accepting cycles. The goal is to distinguish the speedup due to parallel random search from the speedup that can be attributed to clever work sharing schemes.

[1]  Lubos Brim,et al.  DiVinE: Parallel Distributed Model Checker , 2010, 2010 Ninth International Workshop on Parallel and Distributed Methods in Verification, and Second International Workshop on High Performance Computational Systems Biology.

[2]  Christel Baier,et al.  Principles of model checking , 2008 .

[3]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[4]  Mihalis Yannakakis,et al.  On nested depth first search , 1996, The Spin Verification System.

[5]  Sami Evangelista,et al.  Parallel Nested Depth-First Searches for LTL Model Checking , 2011, ATVA.

[6]  Stefan Schwoon,et al.  Comparison of Algorithms for Checking Emptiness on Büchi Automata , 2009, MEMICS.

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

[8]  Javier Esparza,et al.  A Note on On-the-Fly Verification Algorithms , 2005, TACAS.

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

[10]  Tommaso Mazza High Performance Computational Systems Biology , 2012, TCBB.

[11]  Alfons Laarman,et al.  Parallel Recursive State Compression for Free , 2011, SPIN.

[12]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[13]  Lubos Brim,et al.  A Time-Optimal On-the-Fly Parallel Algorithm for Model Checking of Weak LTL Properties , 2009, ICFEM.

[14]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[15]  Lubos Brim,et al.  Scalable shared memory LTL model checking , 2010, International Journal on Software Tools for Technology Transfer.

[16]  Lubos Brim,et al.  DiVinE Multi-Core - A Parallel LTL Model-Checker , 2008, ATVA.

[17]  Ivana Cerná,et al.  Distributed Explicit Fair Cycle Detection (Set Based Approach) , 2003, SPIN.

[18]  Alfons Laarman,et al.  Boosting multi-core reachability performance with shared hash tables , 2010, Formal Methods in Computer Aided Design.

[19]  Pierre Wolper,et al.  Memory-efficient algorithms for the verification of temporal properties , 1990, Formal Methods Syst. Des..

[20]  John H. Reif,et al.  Depth-First Search is Inherently Sequential , 1985, Inf. Process. Lett..

[21]  Alfons Laarman,et al.  Multi-core Nested Depth-First Search , 2011, ATVA.

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

[23]  Petr Ročkai,et al.  DiVinE: Parallel Distributed Model Checker (Tool paper) , 2010 .

[24]  Alfons Laarman,et al.  Multi-Core LTSmin: Marrying Modularity and Scalability , 2011, NASA Formal Methods.

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