skip to main content
research-article

Multi-core on-the-fly SCC decomposition

Published:27 February 2016Publication History
Skip Abstract Section

Abstract

The main advantages of Tarjan's strongly connected component (SCC) algorithm are its linear time complexity and ability to return SCCs on-the-fly, while traversing or even generating the graph. Until now, most parallel SCC algorithms sacrifice both: they run in quadratic worst-case time and/or require the full graph in advance.

The current paper presents a novel parallel, on-the-fly SCC algorithm. It preserves the linear-time property by letting workers explore the graph randomly while carefully communicating partially completed SCCs. We prove that this strategy is correct. For efficiently communicating partial SCCs, we develop a concurrent, iterable disjoint set structure (combining the union-find data structure with a cyclic list).

We demonstrate scalability on a 64-core machine using 75 real-world graphs (from model checking and explicit data graphs), synthetic graphs (combinations of trees, cycles and linear graphs), and random graphs. Previous work did not show speedups for graphs containing a large SCC. We observe that our parallel algorithm is typically 10-30× faster compared to Tarjan's algorithm for graphs containing a large SCC. Comparable performance (with respect to the current state-of-the-art) is obtained for graphs containing many small SCCs.

Skip Supplemental Material Section

Supplemental Material

References

  1. Aggarwal, A., Anderson, R. J., & Kao, M. Y. (1989). Parallel depth-first search in general directed graphs. In Proceedings of the ACM symposium on Theory of computing (pp. 297--308). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Anderson, R. J., & Woll, H. (1991). Wait-free Parallel Algorithms for the Union-find Problem. In Proceedings of the Twenty-third Annual ACM Symposium on Theory of Computing (pp. 370--380). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Backstrom, L., Huttenlocher, D., Kleinberg, J., & Lan, X. (2006). Group Formation in Large Social Networks: Membership, Growth, and Evolution. KDD. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Barnat, J., Chaloupka, J., & van de Pol, J. (2009). Distributed algorithms for SCC decomposition. Journal of Logic and Computation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Barnat, J., Brim, L., & Ročkai, P. (2010). Parallel partial order reduction with topological sort proviso. In Software Engineering and Formal Methods (SEFM), 2010 8th IEEE International Conference on (pp. 222--231). IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Barnat, J., Bauch, P., Brim, L., & Ceška, M. (2011). Computing strongly connected components in parallel on CUDA. in Proc. 25th Int. Parallel and Distributed Processing Symp. (IPDPS). IEEE, pp. 544--555. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Berry, A., Krueger, R., & Simonet, G. (2005). Ultimate generalizations of LexBFS and LEX M. In Graph-theoretic concepts in computer science (pp. 199--213). Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bloemen, V. (2015). On-The-Fly parallel decomposition of strongly connected components. Master's thesis, University of Twente.Google ScholarGoogle Scholar
  9. Bondy, J. A., & Murty, U. S. R. (1976). Graph theory with applications (Vol. 290). London: Macmillan. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Brim, L., Černá, I., Krčál, P., & Pelánek, R. (2001). Distributed LTL model checking based on negative cycle detection. In FST TCS 2001: Foundations of Software Technology and Theoretical Computer Science (pp. 96--107). Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Černá, I., & Pelánek, R. (2003). Distributed explicit fair cycle detection (set based approach). In Model Checking Software (pp. 49-73). Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Clarke, E. M., Grumberg, O., & Peled, D. (1999). Model checking. MIT press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Coppersmith, D., Fleischer, L., Hendrickson, B., & Pιnar, A. (2003). A divide-and-conquer algorithm for identifying strongly connected components. Technical Report RC23744, IBM Research, 2005.Google ScholarGoogle ScholarCross RefCross Ref
  14. Cormen, T. H. (2009). Introduction to algorithms. MIT press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Corneil, D. G., & Krueger, R. M. (2008). A unified view of graph searching. SIAM Journal on Discrete Mathematics, 22(4), 1259--1276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Courcoubetis, C., Vardi, M., Wolper, P., & Yannakakis, M. (1993). Memory-efficient algorithms for the verification of temporal properties. In Computer-aided Verification (pp. 129--142). Springer US. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Dijkstra, E. W. (1976). A discipline of programming (Vol. 1). Englewood Cliffs: prentice-hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Evangelista, S., Laarman, A., Petrucci, L., & van de Pol, J. (2012). Improved multi-core nested depth-first search. In Automated Technology for Verification and Analysis (pp. 269--283). Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Evangelista, S., Petrucci, L., & Youcef, S. (2011). Parallel nested depth-first searches for LTL model checking. In Automated Technology for Verification and Analysis (pp. 381--396). Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Fleischer, L. K., Hendrickson, B., & Pιnar, A. (2000). On identifying strongly connected components in parallel. In Parallel and Distributed Processing (pp. 505--511). Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Freeman, J. (1991). Parallel algorithms for depth-first search. Technical Report MS-CIS-91-71, University of PennsylvaniaGoogle ScholarGoogle Scholar
  22. Gabow, H. N. (2000), Path-based depth-first search for strong and biconnected components. Information Proc. Letters, 74(3-4): 107--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Goel, A., Khanna, S., Larkin, D. H., & Tarjan, R. E. (2014). Disjoint set union with randomized linking. In Proceedings of the Twenty-Fifth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA '14). SIAM 1005--1017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Hong, S., Chafi, H., Sedlar, E., & Olukotun, K., (2012). Green-Marl: A DSL for easy and efficient graph analysis, ASPLOS 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Hong, S., Rodia, N. C., & Olukotun, K. (2013). On fast parallel detection of strongly connected components (SCC) in small-world graphs. In High Performance Computing, Networking, Storage and Analysis (SC), 2013 International Conference for (pp. 1--11). IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Hopcroft, J., & Tarjan, R. E.(1974). Efficient planarity testing. Journal of the ACM (JACM), 21(4), 549--568. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Kahn, A. B. (1962). Topological sorting of large networks. Communications of the ACM, 5(11), 558--562. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Kant, G., Laarman, A., Meijer, J., van de Pol, J., Blom, S., & van Dijk, T. (2015). LTSmin: High-Performance Language-Independent Model Checking. In TACAS.Google ScholarGoogle Scholar
  29. Kaplan, H., Shafrir, N., & Tarjan, R. E. (2002). Union-find with deletions. In Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms (pp. 19--28). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Kaveh, A. (2014). Computational structural analysis and finite element methods. Wien: Springer.Google ScholarGoogle Scholar
  31. Laarman, A. W. (2014). Scalable multi-core model checking. Ph.D. thesis, University of Twente.Google ScholarGoogle Scholar
  32. Laarman, A., & Faragó, D. (2013). Improved on-the-fly livelock detection. In NASA Formal Methods (pp. 32-47). Springer.Google ScholarGoogle Scholar
  33. Laarman, A., & Wijs, A. (2014). Partial-order reduction for multicore LTL model checking. In Hardware and Software: Verification and Testing (pp. 267--283). Springer.Google ScholarGoogle Scholar
  34. Leskovec, J., Kleinberg, J., & Faloutsos, C. (2005). Graphs over Time: Densification Laws, Shrinking Diameters and Possible Explanations. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD). Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Leskovec, J. SNAP: Stanford network analysis project. http://snap.stanford.edu/index.html, last accessed 9 Sep 2015.Google ScholarGoogle Scholar
  36. Lowe, G. (2015). Concurrent depth-first search algorithms based on Tarjan's Algorithm. International Journal on Software Tools for Technology Transfer, 1--19.Google ScholarGoogle Scholar
  37. Liu, Y., Sun, J., & Dong, J. S. (2009). Scalable multi-core model checking fairness enhanced systems. In Formal Methods and Software Engineering (pp. 426--445). Springer Berlin Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Madduri, K., & Bader, D. A. GTgraph: A suite of synthetic graph generators. http://www.cse.psu.edu/kxm85/software/GTgraph/, last accessed 9 Sep 2015.Google ScholarGoogle Scholar
  39. McLendon III, W., Hendrickson, B., Plimpton, S., & Rauchwerger, L. (2005). Finding strongly connected components in distributed graphs. Journal of Parallel and Distributed Computing, 65(8):901--910. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Munro, I. (1971). Efficient determination of the transitive closure of a directed graph. Information Processing Letters, 1(2), 56--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Nuutila, E., & Soisalon-Soininen, E. (1993). Efficient transitive closure computation. Technical Report TKO-B113, Helsinki University of Technology, Laboratory of Information Processing Science.Google ScholarGoogle Scholar
  42. Orzan, S. M. (2004). On distributed verification and verified distribution. Ph.D. dissertation, Vrije Universiteit.Google ScholarGoogle Scholar
  43. Pelánek, R. (2007). BEEM: Benchmarks for Explicit Model Checkers. In SPIN, volume 4595 of LNCS, pp. 263--267. Springer Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Purdom Jr, P. (1970). A transitive closure algorithm. BIT Numerical Mathematics, 10(1), 76--94.Google ScholarGoogle ScholarCross RefCross Ref
  45. Reif, J. H. (1985). Depth-first search is inherently sequential. Information Processing Letters, 20(5), 229--234.Google ScholarGoogle Scholar
  46. Renault, E., Duret-Lutz, A., Kordon, F., & Poitrenaud, D. (2015). Parallel explicit model checking for generalized Büchi automata. In Tools and Algorithms for the Construction and Analysis of Systems (pp. 613--627). Springer Berlin Heidelberg.Google ScholarGoogle Scholar
  47. Savage, C. (1982). Depth-first search and the vertex cover problem. Information Processing Letters, 14(5).Google ScholarGoogle Scholar
  48. Schudy, W. (2008). Finding strongly connected components in parallel using O(log2 n) reachability queries. In Parallelism in algorithms and architectures (pp. 146--151). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Slota, G. M., Rajamanickam, S., & Madduri, K. (2014). BFS and coloring-based parallel algorithms for strongly connected components and related problems. In Parallel and Distributed Processing Symposium, 2014 IEEE 28th International (pp. 550--559). IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Spencer, T. H. (1991). More time-work tradeoffs for parallel graph algorithms. In Proceedings of the third annual ACM symposium on Parallel algorithms and architectures (pp. 81--93). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Takac, L., & Zábovský, M. Data Analysis in Public Social Networks, International Scientific Conference & International Workshop Present Day Trends of Innovations, May 2012 Lomza, Poland.Google ScholarGoogle Scholar
  52. Tarjan, R. E. (1972). Depth-first search and linear graph algorithms. SIAM. Comput. 1:146--60.Google ScholarGoogle ScholarCross RefCross Ref
  53. Tarjan, R. E. (1976). Edge-disjoint spanning trees and depth-first search. Acta Informatica, 6(2), 171--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Tarjan, R. E., & van Leeuwen, J. (1984). Worst-case analysis of set union algorithms. Journal of the ACM (JACM), 31(2), 245--281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. de la Torre, P., & Kruskal, C. (1991). Fast and efficient parallel algorithms for single source lexicographic depth-first search, breadth-first search and topological-first search. In International Conference on Parallel Processing (Vol. 3, pp. 286--287).Google ScholarGoogle Scholar
  56. Träff, J. L. (2013). A Note on (Parallel) Depth-and Breadth-First Search by Arc Elimination. arXiv preprint arXiv:1305.1222.Google ScholarGoogle Scholar
  57. Vardi, M. Y., & Wolper, P. (1986). An automata-theoretic approach to automatic program verification. In 1st Symposium in Logic in Computer Science (LICS). IEEE Computer Society.Google ScholarGoogle Scholar
  58. Wyllie, J. C. (1979). The complexity of parallel computations. Technical Report TR79-387, Cornell University. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!