Concurrent depth-first search algorithms based on Tarjan’s Algorithm

We present concurrent algorithms, based on depth-first search, for three problems relevant to model checking: given a state graph, to find its strongly connected components, which states are in loops, and which states are in “lassos”. Each algorithm is a variant of Tarjan’s Algorithm. Our algorithms typically exhibit a three- or four-fold speed-up over the corresponding sequential algorithms on an eight-core machine.

[1]  Lawrence Rauchwerger,et al.  Finding strongly connected components in distributed graphs , 2005, J. Parallel Distributed Comput..

[2]  Alfons Laarman,et al.  Improved Multi-Core Nested Depth-First Search , 2012, ATVA.

[3]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[4]  Jaco van de Pol,et al.  Distributed Algorithms for SCC Decomposition , 2011, J. Log. Comput..

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

[6]  Edsger W. Dijkstra Finding the Maximum Strong Components in a Directed Graph , 1982 .

[7]  A. W. Roscoe,et al.  FDR3 - A Modern Refinement Checker for CSP , 2014, TACAS.

[8]  A. W. Roscoe Understanding Concurrent Systems , 2010, Texts in Computer Science.

[9]  Dragan Bosnacki,et al.  Multi-Core Model Checking with SPIN , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[10]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[11]  Martin Odersky,et al.  Programming in Scala , 2008 .

[12]  Fabrice Kordon,et al.  Parallel Explicit Model Checking for Generalized Büchi Automata , 2015, TACAS.

[13]  Simona Orzan,et al.  On Distributed Verification and Verified Distribution , 2004 .

[14]  Failures-divergence Refinement Fdr2 User Manual , 2012 .

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

[16]  Gavin Lowe,et al.  Implementing Generalised Alt - A Case Study in Validated Design using CSP , 2011, CPA.

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

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

[19]  Nancy M. Amato,et al.  SCCMulti: an improved parallel strongly connected components algorithm , 2014, PPoPP '14.

[20]  Joël Ouaknine,et al.  Model checking Timed CSP , 2014, HOWARD-60.

[21]  Lawrence Rauchwerger,et al.  Identifying Strongly Connected Components in Parallel , 2000, PPSC.

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

[23]  Alfons Laarman,et al.  Variations on Multi-Core Nested Depth-First Search , 2011, PDMC.

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

[25]  Lieven Eeckhout,et al.  Statistically rigorous java performance evaluation , 2007, OOPSLA.