Boosting multi-core reachability performance with shared hash tables

This paper focuses on data structures for multi-core reachability, which is a key component in model checking algorithms and other verification methods. A cornerstone of an efficient solution is the storage of visited states. In related work, static partitioning of the state space was combined with thread-local storage. This solution leaves room for improvements. This paper presents a solution with a shared state storage. It is based on a lockless hash table implementation and scales better. The solution is specifically designed for the cache architecture of modern CPUs. Because model checking algorithms impose loose requirements on the hash table operations, their design can be streamlined substantially compared to related work on lockless hash tables. The resulting speedups are analyzed and compared with related tools. Our implementation outperforms two state-of-the-art multi-core model checkers, SPIN (presented at FMCAD 2006) and DiVinE, by a large margin, while placing fewer constraints on the load balancing and search algorithms.

[1]  Petr Rockai,et al.  Shared Hash Tables in Parallel Model Checking , 2008, Electron. Notes Theor. Comput. Sci..

[2]  Simona Orzan,et al.  A distributed algorithm for strong bisimulation reduction of state spaces , 2004, International Journal on Software Tools for Technology Transfer.

[3]  Lubos Brim,et al.  DiVinE 2.0: High-Performance Model Checking , 2009, 2009 International Workshop on High Performance Computational Systems Biology.

[4]  Maurice Herlihy,et al.  Hopscotch Hashing , 2008, DISC.

[5]  Witold Litwin,et al.  Linear Hashing: A new Algorithm for Files and Tables Addressing , 1980, ICOD.

[6]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[7]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[8]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[9]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .

[10]  Andreas Podelski,et al.  Terminator: Beyond Safety , 2006, CAV.

[11]  Dragan Bosnacki,et al.  The Design of a Multicore Extension of the SPIN Model Checker , 2007, IEEE Transactions on Software Engineering.

[12]  Rasmus Pagh,et al.  Cuckoo Hashing , 2001, Encyclopedia of Algorithms.

[13]  D. M. Hutton,et al.  The Art of Multiprocessor Programming , 2008 .

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

[15]  Michael Weber,et al.  An embeddable virtual machine for state space generation , 2007, International Journal on Software Tools for Technology Transfer.

[16]  Vipin Kumar,et al.  Superlinear Speedup in Parallel State-Space Search , 1988, FSTTCS.

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

[18]  Andreas Podelski,et al.  Terminator: Beyond Safety (Tool Paper) , 2006 .

[19]  Lubos Brim,et al.  Distributed Verification: Exploring the Power of Raw Computing Power , 2006, FMICS/PDMC.

[20]  DAVID P. HELMBOLD,et al.  Modeling Speedup (n) Greater than n , 1990, IEEE Trans. Parallel Distributed Syst..

[21]  Howard Barringer,et al.  Effective State Exploration for Model Checking on a Shared Memory Architecture , 2002, PDMC@CONCUR.

[22]  Stefan Edelkamp,et al.  Parallel External Directed Model Checking with Linear I/O , 2006, VMCAI.

[23]  Timothy L. Harris,et al.  Non-blocking Hashtables with Open Addressing , 2005, DISC.

[24]  Eli Upfal,et al.  Balanced Allocations , 1999, SIAM J. Comput..

[25]  Henry S. Warren,et al.  Hacker's Delight , 2002 .

[26]  Michael B. Monagan,et al.  Parallel sparse polynomial multiplication using heaps , 2009, ISSAC '09.

[27]  Jaco van de Pol,et al.  A Database Approach to Distributed State-Space Generation , 2008, J. Log. Comput..

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

[29]  Gerard J. Holzmann A Stack-Slicing Algorithm for Multi-Core Model Checking , 2008, Electron. Notes Theor. Comput. Sci..

[30]  Jaco van de Pol,et al.  Bridging the Gap between Enumerative and Symbolic Model Checkers , 2009 .