GPUexplore: Many-Core On-the-Fly State Space Exploration Using GPUs

In recent years, General Purpose Graphics Processors (GPUs) have been successfully applied in multiple application domains to drastically speed up computations. Model checking is an automatic method to formally verify the correctness of a system specification. Such specifications can be viewed as implicit descriptions of a large directed graph or state space, and for most model checking operations, this graph must be analysed. Constructing it, or on-the-fly exploring it, however, is computationally intensive, so it makes sense to try to implement this for GPUs. In this paper, we explain the limitations involved, and how to overcome these. We discuss the possible approaches involving related work, and propose an alternative, using a new hash table approach for GPUs. Experimental results with our prototype implementations show significant speed-ups compared to the established sequential counterparts.

[1]  A. Grimshaw,et al.  High Performance and Scalable Radix Sorting: a Case Study of Implementing Dynamic Parallelism for GPU Computing , 2011, Parallel Process. Lett..

[2]  Anton Wijs,et al.  What to do next? Analysing and optimising system behaviour in time , 2007 .

[3]  Muhammad Torabi Dashti,et al.  Pruning State Spaces with Extended Beam Search , 2006, ATVA.

[4]  Dragan Bosnacki,et al.  Improving GPU Sparse Matrix-Vector Multiplication for Probabilistic Model Checking , 2012, SPIN.

[5]  P. J. Narayanan,et al.  Accelerating Large Graph Algorithms on the GPU Using CUDA , 2007, HiPC.

[6]  Frédéric Lang,et al.  Exp.Open 2.0: A Flexible Tool Integrating Partial Order, Compositional, and On-The-Fly Verification Methods , 2005, IFM.

[7]  Rasmus Pagh Cuckoo Hashing , 2008, Encyclopedia of Algorithms.

[8]  Radu Mateescu,et al.  CADP 2010: A Toolbox for the Construction and Analysis of Distributed Processes , 2011, TACAS.

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

[10]  Anton Wijs,et al.  Hierarchical Adaptive State Space Caching Based on Level Sampling , 2009, TACAS.

[11]  Erik P. de Vink,et al.  An Overview of the mCRL2 Toolset and Its Recent Advances , 2013, TACAS.

[12]  Gwen Salaün,et al.  CADP: A Toolbox for the Construction and Analysis of Distributed Processes , 2012, FM 2012.

[13]  Martin Dietzfelbinger,et al.  Cuckoo Hashing with Pages , 2011, ESA.

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

[15]  Yangdong Deng,et al.  Taming irregular EDA applications on GPUs , 2009, 2009 IEEE/ACM International Conference on Computer-Aided Design - Digest of Technical Papers.

[16]  Dragan Bosnacki,et al.  Parallel probabilistic model checking on general purpose graphics processors , 2010, International Journal on Software Tools for Technology Transfer.

[17]  Dragan Bosnacki,et al.  GPU-PRISM: An Extension of PRISM for General Purpose Graphics Processing Units , 2010, 2010 Ninth International Workshop on Parallel and Distributed Methods in Verification, and Second International Workshop on High Performance Computational Systems Biology.

[18]  Andrew S. Grimshaw,et al.  Scalable GPU graph traversal , 2012, PPoPP '12.

[19]  Lubos Brim,et al.  Designing fast LTL model checking algorithms for many-core GPUs , 2012, J. Parallel Distributed Comput..

[20]  Radek Pelánek,et al.  Properties of state spaces and their applications , 2008, International Journal on Software Tools for Technology Transfer.

[21]  Kim G. Larsen,et al.  Memory Efficient Data Structures for Explicit Verification of Timed Systems , 2014, NASA Formal Methods.

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

[23]  Kunle Olukotun,et al.  Accelerating CUDA graph algorithms at maximum warp , 2011, PPoPP '11.

[24]  John D. Owens,et al.  Real-time parallel hashing on the GPU , 2009, SIGGRAPH 2009.

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

[26]  Radu Mateescu,et al.  CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes , 2007, CAV.

[27]  Martin D. F. Wong,et al.  An effective GPU implementation of breadth-first search , 2010, Design Automation Conference.

[28]  John D. Owens,et al.  Building an Efficient Hash Table on the GPU , 2012 .

[29]  Friedhelm Meyer auf der Heide,et al.  Algorithms — ESA 2001 , 2001, Lecture Notes in Computer Science.

[30]  Stefan Edelkamp,et al.  Efficient Explicit-State Model Checking on General Purpose Graphics Processors , 2010, SPIN.

[31]  Camil Demetrescu,et al.  Algorithms – ESA 2011 , 2011, Lecture Notes in Computer Science.

[32]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[33]  Srinivas Aluru High Performance Computing - HiPC 2007, 14th International Conference, Goa, India, December 18-21, 2007, Proceedings , 2007, HiPC.

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

[35]  Mohamed Nassim Seghir,et al.  A Lightweight Approach for Loop Summarization , 2011, ATVA.