skip to main content
10.1145/2851141.2851161acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Multi-core on-the-fly SCC decomposition

Published: 27 February 2016 Publication History

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.

Supplementary Material

Supplemental material. (a8-bloemen.zip)

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.
[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.
[3]
Backstrom, L., Huttenlocher, D., Kleinberg, J., & Lan, X. (2006). Group Formation in Large Social Networks: Membership, Growth, and Evolution. KDD.
[4]
Barnat, J., Chaloupka, J., & van de Pol, J. (2009). Distributed algorithms for SCC decomposition. Journal of Logic and Computation.
[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.
[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.
[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.
[8]
Bloemen, V. (2015). On-The-Fly parallel decomposition of strongly connected components. Master's thesis, University of Twente.
[9]
Bondy, J. A., & Murty, U. S. R. (1976). Graph theory with applications (Vol. 290). London: Macmillan.
[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.
[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.
[12]
Clarke, E. M., Grumberg, O., & Peled, D. (1999). Model checking. MIT press.
[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.
[14]
Cormen, T. H. (2009). Introduction to algorithms. MIT press.
[15]
Corneil, D. G., & Krueger, R. M. (2008). A unified view of graph searching. SIAM Journal on Discrete Mathematics, 22(4), 1259--1276.
[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.
[17]
Dijkstra, E. W. (1976). A discipline of programming (Vol. 1). Englewood Cliffs: prentice-hall.
[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.
[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.
[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.
[21]
Freeman, J. (1991). Parallel algorithms for depth-first search. Technical Report MS-CIS-91-71, University of Pennsylvania
[22]
Gabow, H. N. (2000), Path-based depth-first search for strong and biconnected components. Information Proc. Letters, 74(3-4): 107--114.
[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.
[24]
Hong, S., Chafi, H., Sedlar, E., & Olukotun, K., (2012). Green-Marl: A DSL for easy and efficient graph analysis, ASPLOS 2012.
[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.
[26]
Hopcroft, J., & Tarjan, R. E.(1974). Efficient planarity testing. Journal of the ACM (JACM), 21(4), 549--568.
[27]
Kahn, A. B. (1962). Topological sorting of large networks. Communications of the ACM, 5(11), 558--562.
[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.
[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).
[30]
Kaveh, A. (2014). Computational structural analysis and finite element methods. Wien: Springer.
[31]
Laarman, A. W. (2014). Scalable multi-core model checking. Ph.D. thesis, University of Twente.
[32]
Laarman, A., & Faragó, D. (2013). Improved on-the-fly livelock detection. In NASA Formal Methods (pp. 32-47). Springer.
[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.
[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).
[35]
Leskovec, J. SNAP: Stanford network analysis project. http://snap.stanford.edu/index.html, last accessed 9 Sep 2015.
[36]
Lowe, G. (2015). Concurrent depth-first search algorithms based on Tarjan's Algorithm. International Journal on Software Tools for Technology Transfer, 1--19.
[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.
[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.
[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.
[40]
Munro, I. (1971). Efficient determination of the transitive closure of a directed graph. Information Processing Letters, 1(2), 56--58.
[41]
Nuutila, E., & Soisalon-Soininen, E. (1993). Efficient transitive closure computation. Technical Report TKO-B113, Helsinki University of Technology, Laboratory of Information Processing Science.
[42]
Orzan, S. M. (2004). On distributed verification and verified distribution. Ph.D. dissertation, Vrije Universiteit.
[43]
Pelánek, R. (2007). BEEM: Benchmarks for Explicit Model Checkers. In SPIN, volume 4595 of LNCS, pp. 263--267. Springer
[44]
Purdom Jr, P. (1970). A transitive closure algorithm. BIT Numerical Mathematics, 10(1), 76--94.
[45]
Reif, J. H. (1985). Depth-first search is inherently sequential. Information Processing Letters, 20(5), 229--234.
[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.
[47]
Savage, C. (1982). Depth-first search and the vertex cover problem. Information Processing Letters, 14(5).
[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.
[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.
[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.
[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.
[52]
Tarjan, R. E. (1972). Depth-first search and linear graph algorithms. SIAM. Comput. 1:146--60.
[53]
Tarjan, R. E. (1976). Edge-disjoint spanning trees and depth-first search. Acta Informatica, 6(2), 171--185.
[54]
Tarjan, R. E., & van Leeuwen, J. (1984). Worst-case analysis of set union algorithms. Journal of the ACM (JACM), 31(2), 245--281.
[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).
[56]
Träff, J. L. (2013). A Note on (Parallel) Depth-and Breadth-First Search by Arc Elimination. arXiv preprint arXiv:1305.1222.
[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.
[58]
Wyllie, J. C. (1979). The complexity of parallel computations. Technical Report TR79-387, Cornell University.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '16: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
February 2016
420 pages
ISBN:9781450340922
DOI:10.1145/2851141
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 February 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. SCC
  2. algorithm
  3. depth-first search
  4. digraph
  5. graph
  6. keywords strongly connected components
  7. multi-core
  8. parallel
  9. union-find

Qualifiers

  • Research-article

Funding Sources

  • Austrian National Research Network S11403-N23 (RiSE) of the Austrian Science Fund (FWF)
  • Vienna Science and Technology Fund (WWTF)

Conference

PPoPP '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 1,014 submissions, 23%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)1
Reflects downloads up to 05 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media