Skip to main content
Log in

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

  • TACAS 2014
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

Notes

  1. Available from http://www.cs.ox.ac.uk/people/gavin.lowe/parallelDFS.html.

  2. http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html.

References

  1. Armstrong, P., Lowe, G., Ouaknine, J., Roscoe, A.W.: Model checking timed CSP. In: Proceedings of HOWARD-60 (2012)

  2. Barnat, J., Chaloupka, J., van de Pol, J.: Distributed algorithms for SCC decomposition. J. Logic Comput. 21(1), 23–44 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  3. Cliff Click: A lock-free hash table. JavaOne Conference. http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdf (2007)

  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)

  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. 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)

  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)

  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)

  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. 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)

  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)

  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)

  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)

  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)

  15. Lowe, G.: Implementing generalised alt: a case study in validated design using CSP. In: Communicating Process Architectures (2011)

  16. Lowe, G.: Concurrent hash maps: a comparative study. Technical report, University of Oxford (2014)

  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)

    Article  MATH  Google Scholar 

  18. Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima (2008)

  19. Orzan, S.: On Distributed Verification and Verified Distribution. Ph.D. thesis, Free University of Amsterdam (2004)

  20. Reif, J.H.: Depth-first search is inherently sequential. Inf. Process. Lett. 20(5), 229–234 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  22. Roscoe, A.W.: Theory and Practice of Concurrency. Prentice Hall, Europe (1998)

    Google Scholar 

  23. Roscoe, A.W.: Understanding Concurrent Systems. Springer, London (2010)

    Book  MATH  Google Scholar 

  24. Tarjan, R.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  26. University of Oxford: Failures-Divergence Refinement–FDR 3 User Manual. http://www.cs.ox.ac.uk/projects/fdr/manual/index.html (2013)

  27. Vardi, M.Y., Wolper, P.: An automata-theoretic approach to automatic program verification. In: Proceedings of Logic in Computer Science (1986)

Download references

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gavin Lowe.

Appendix

Appendix

See Appendix Tables 1, 2 and 3.

Table 1 Statistics about the CSP graphs
Table 2 Comparison of run times for the concurrent and sequential algorithms
Table 3 Comparison of run times for the concurrent and loosely synchronized algorithms

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Lowe, G. Concurrent depth-first search algorithms based on Tarjan’s Algorithm. Int J Softw Tools Technol Transfer 18, 129–147 (2016). https://doi.org/10.1007/s10009-015-0382-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-015-0382-1

Keywords

Navigation