Advertisement

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

  • Gavin LoweEmail author
TACAS 2014

Abstract

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.

Keywords

Depth-first search Concurrent algorithm Strongly connected components Tarjan’s Algorithm Model checking 

Notes

Acknowledgments

I would like to thank Tom Gibson-Robinson for many interesting and useful discussions that contributed to this paper. I would also like to thank the TACAS and STTT anonymous referees for their useful comments.

References

  1. 1.
    Armstrong, P., Lowe, G., Ouaknine, J., Roscoe, A.W.: Model checking timed CSP. In: Proceedings of HOWARD-60 (2012)Google Scholar
  2. 2.
    Barnat, J., Chaloupka, J., van de Pol, J.: Distributed algorithms for SCC decomposition. J. Logic Comput. 21(1), 23–44 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Cliff Click: A lock-free hash table. JavaOne Conference. http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdf (2007)
  4. 4.
    Courcoubetis, C., Vardi, M. Y., Wolper, P., Yannakakis, M.: Memory efficient algorithms for the verification of temporal properties. In: Proceedings of Computer-Aided Verification (CAV), vol. 531 of LNCS, pp. 233–242 (1990)Google Scholar
  5. 5.
    Dijkstra, E.W.: Ewd 376: finding the maximum strong components in a directed graph. http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD376.PDF (1973)
  6. 6.
    Evangelista, S., Laarman, A.W., Petrucci, L., van de Pol, J.C.: Improved multi-core nested depth-first search. In: Proceedings of the 10th International Symposium on Automated Technology for Verification and Analysis, vol. 7561 of Lecture Notes in Computer Science, pp. 269–283 (2012)Google Scholar
  7. 7.
    Evangelista, S., Petrucci, L., Youcef, S.: Parallel nested depth-first searches for LTL model checking. In: Proceedings of the 9th International Symposium on Automated Technology for Verification and Analysis, vol. 6996 of Lecture Notes in Computer Science, pp. 381–396 (2011)Google Scholar
  8. 8.
    Fleischer, L.K., Hendrickson, B., Pnar, A.: On identifying strongly connected components in parallel. In: Parallel and Distributed Processing, vol. 1800 of Lecture Notes in Computer Science, pp. 505–511 (2000)Google Scholar
  9. 9.
    Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous Java performance evaluation. SIGPLAN Notices., 42(10), 57–76. http://dl.acm.org/citation.cfm?id=1297033 (2007)
  10. 10.
    Gibson-Robinson, T., Armstrong, P., Boulgakov, A., Roscoe, A.W.: FDR3–a modern refinement checker for CSP. In: Proceedings of Tools and Algorithms for the Construction and Analysis of Systems (TACAS), vol. 8413 of Lecture Notes in Computer Science, pp. 187–201 (2014)Google Scholar
  11. 11.
    Holzmann, G.J., Bos̆nac̆ki, D.: Multi-core model checking with spin. In: Proceedings of Parallel and Distributed Processing Symposium, pp. 1–8 (2007)Google Scholar
  12. 12.
    Laarman, A., van de Pol, J., Weber, M.: Boosting multi-core reachability performance with shared hash tables. In: Proceedings of 10th International Conference on Formal Methods in Computer-Aided Design (FMCAD 2010) (2010)Google Scholar
  13. 13.
    Laarman, A.W., Langerak, R., van de Pol, J.C., Weber, M., Wijs, A.: Multi-core nested depth-first search. In: Proceedings of the 9th International Symposium on Automated Technology for Verification and Analysis, vol. 6996 of Lecture Notes in Computer Science, pp. 321–335 (2011)Google Scholar
  14. 14.
    Laarman, A.W., van de Pol, J.C.: Variations on multi-core nested depth-first search. In: Proceedings of the 10th International Workshop on Parallel and Distributed Methods in Verification, vol. 72 of Electronic Proceedings in Theoretical Computer Science, pp. 13–28 (2011)Google Scholar
  15. 15.
    Lowe, G.: Implementing generalised alt: a case study in validated design using CSP. In: Communicating Process Architectures (2011)Google Scholar
  16. 16.
    Lowe, G.: Concurrent hash maps: a comparative study. Technical report, University of Oxford (2014)Google Scholar
  17. 17.
    McLendon III, W., Hendrickson, B., Plimpton, S.J., Rauchwerger, L.: Finding strongly connected components in distributed graphs. J.Parallel Distrib. Comput. 65(8), 901–910 (2005)CrossRefzbMATHGoogle Scholar
  18. 18.
    Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima (2008)Google Scholar
  19. 19.
    Orzan, S.: On Distributed Verification and Verified Distribution. Ph.D. thesis, Free University of Amsterdam (2004)Google Scholar
  20. 20.
    Reif, J.H.: Depth-first search is inherently sequential. Inf. Process. Lett. 20(5), 229–234 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Renault, E., Duret-Lutz, A., Kordon, F., Poitrenaud, D.: Parallel explicit model checking for generalized Büchi automata. In: Proceedings of Tools and Algorithms for the Construction and Analysis of Systems (TACAS) (2015) (Forthcoming)Google Scholar
  22. 22.
    Roscoe, A.W.: Theory and Practice of Concurrency. Prentice Hall, Europe (1998)Google Scholar
  23. 23.
    Roscoe, A.W.: Understanding Concurrent Systems. Springer, London (2010)CrossRefzbMATHGoogle Scholar
  24. 24.
    Tarjan, R.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972)MathSciNetCrossRefzbMATHGoogle Scholar
  25. 25.
    Tomkins, D., Smith, T.G., Amato, N.M., Rauchwerger, L.: SCCMulti: an improved parallel strongly connected components algorithm. In: Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’14) (2014)Google Scholar
  26. 26.
    University of Oxford: Failures-Divergence Refinement–FDR 3 User Manual. http://www.cs.ox.ac.uk/projects/fdr/manual/index.html (2013)
  27. 27.
    Vardi, M.Y., Wolper, P.: An automata-theoretic approach to automatic program verification. In: Proceedings of Logic in Computer Science (1986)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of OxfordOxfordUK

Personalised recommendations