Parallel Strong Connectivity Based on Faster Reachability

Computing strongly connected components (SCC) is a fundamental problems in graph processing. As today's real-world graphs are getting larger and larger, parallel SCC is increasingly important. SCC is challenging in the parallel setting and is particularly hard on large-diameter graphs. Many existing parallel SCC implementations can be even slower than Tarjan's sequential algorithm on large-diameter graphs. To tackle this challenge, we propose an efficient parallel SCC implementation using a new parallel reachability algorithm. Our solution is based on a novel idea referred to as vertical granularity control (VGC). It breaks the synchronization barriers to increase parallelism and hide scheduling overhead. To use VGC in our SCC algorithm, we also design an efficient data structure called the \emph{parallel hash bag}. It uses parallel dynamic resizing to avoid redundant work in maintaining frontiers (vertices processed in a round). We implement the parallel SCC algorithm by Blelloch et al.\ (J.\ ACM, 2020) using our new parallel reachability algorithm. We compare our implementation to the state-of-the-art systems, including GBBS, iSpan, Multi-step, and our highly optimized Tarjan's (sequential) algorithm, on 18 graphs, including social, web, $k$-NN, and lattice graphs. On a machine with 96 cores, our implementation is the fastest on 16 out of 18 graphs. On average (geometric means) over all graphs, our SCC is 6.0$\times$ faster than the best previous parallel code (GBBS), 12.8$\times$ faster than Tarjan's sequential algorithms, and 2.7$\times$ faster than the \emph{best existing implementation on each graph}. We believe that our techniques are of independent interest. We also apply our parallel hash bag and VGC scheme to other graph problems, including connectivity and least-element lists (LE-lists).

[1]  Xiang Chen,et al.  A robust clustering method with noise identification based on directed K-nearest neighbor graph , 2022, Neurocomputing.

[2]  Yan Gu,et al.  Analysis of Work-Stealing and Parallel Cache Complexity , 2021, APOCS.

[3]  Andrea Baronchelli,et al.  Mapping the NFT revolution: market trends, trade networks, and visual features , 2021, Scientific Reports.

[4]  Yan Gu,et al.  Efficient Stepping Algorithms and Implementations for Parallel Shortest Paths , 2021, SPAA.

[5]  Guy E. Blelloch,et al.  The Read-Only Semi-External Model , 2021, APOCS.

[6]  Julian Shun,et al.  GeoGraph: A Framework for Graph Processing on Geometric Data , 2021, ACM SIGOPS Oper. Syst. Rev..

[7]  Shupeng Wang,et al.  Parallel SCC Detection Based on Reusing Warps and Coloring Partitions on GPUs , 2020, ICA3PP.

[8]  Julian Shun,et al.  ConnectIt: A Framework for Static and Incremental Parallel Graph Connectivity Algorithms , 2020, Proc. VLDB Endow..

[9]  Jeremy T. Fineman,et al.  Improved Work Span Tradeoff for Single Source Reachability and Approximate Shortest Paths , 2020, SPAA.

[10]  Guy E. Blelloch,et al.  ParlayLib - A Toolkit for Parallel Algorithms on Shared-Memory Multicore Machines , 2020, SPAA.

[11]  Guy E. Blelloch,et al.  The Graph Based Benchmark Suite (GBBS) , 2020, GRADES-NDA@SIGMOD.

[12]  F. Morone,et al.  Fibration symmetries uncover the building blocks of biological networks , 2020, Proceedings of the National Academy of Sciences.

[13]  Guy E. Blelloch,et al.  Optimal Parallel Algorithms in the Binary-Forking Model , 2019, SPAA.

[14]  Robert E. Tarjan,et al.  Randomized Concurrent Set Union and Generalized Wake-Up , 2019, PODC.

[15]  Yong Wang,et al.  Parallel Strongly Connected Components Detection with Multi-partition on GPUs , 2019, ICCS.

[16]  Aaron Sidford,et al.  Parallel Reachability in Almost Linear Work and Square Root Depth , 2019, 2019 IEEE 60th Annual Symposium on Foundations of Computer Science (FOCS).

[17]  Arthur Charguéraud,et al.  Provably and practically efficient granularity control , 2019, PPoPP.

[18]  Kamalakar Karlapalem,et al.  High Dimensional Clustering: A Strongly Connected Component Clustering Solution (SCCC) , 2018, 2018 IEEE International Conference on Data Mining Workshops (ICDMW).

[19]  H. Howie Huang,et al.  iSpan: Parallel Identification of Strongly Connected Components with Spanning Trees , 2018, SC18: International Conference for High Performance Computing, Networking, Storage and Analysis.

[20]  Shoaib Kamil,et al.  GraphIt: a high-performance graph DSL , 2018, Proc. ACM Program. Lang..

[21]  André P. Vieira,et al.  Percolation on an isotropically directed lattice , 2018, Physical Review E.

[22]  Guoyin Wang,et al.  Finding strongly connected components of simple digraphs based on generalized rough sets theory , 2018, Knowl. Based Syst..

[23]  Guy E. Blelloch,et al.  Algorithmic Building Blocks for Asymmetric Memories , 2018, ESA.

[24]  Amnon Barak,et al.  Optimizing Parallel Graph Connectivity Computation via Subgraph Sampling , 2018, 2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[25]  Guy E. Blelloch,et al.  Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable , 2018, SPAA.

[26]  Alexandr Andoni,et al.  Parallel Graph Connectivity in Log Diameter Rounds , 2018, 2018 IEEE 59th Annual Symposium on Foundations of Computer Science (FOCS).

[27]  Jeremy T. Fineman Nearly work-efficient parallel algorithm for digraph reachability , 2017, STOC.

[28]  Guy E. Blelloch,et al.  Julienne: A Framework for Parallel Graph Algorithms using Work-efficient Bucketing , 2017, SPAA.

[29]  Ankush Sharma,et al.  KNN-DBSCAN: Using k-nearest neighbor information for parameter-free density based clustering , 2017, 2017 International Conference on Intelligent Computing, Instrumentation and Control Technologies (ICICICT).

[30]  Tao Tang,et al.  High Performance Detection of Strongly Connected Components in Sparse Graphs on GPUs , 2017, PMAM@PPoPP.

[31]  Tony Pan,et al.  An Adaptive Parallel Algorithm for Computing Connected Components , 2016, IEEE Transactions on Parallel and Distributed Systems.

[32]  Guy E. Blelloch,et al.  Efficient Construction of Probabilistic Tree Embeddings , 2016, ICALP.

[33]  Guy E. Blelloch,et al.  Parallelism in Randomized Incremental Algorithms , 2018, J. ACM.

[34]  Rupesh Nasre,et al.  GPU centric extensions for parallel strongly connected components computation , 2016, GPGPU@PPoPP.

[35]  Alfons Laarman,et al.  Multi-core on-the-fly SCC decomposition , 2016, PPoPP.

[36]  Guy E. Blelloch,et al.  Parallel Shortest Paths Using Radius Stepping , 2016, SPAA.

[37]  Fabio Rinaldi,et al.  RegulonDB version 9.0: high-level integration of gene regulation, coexpression, motif clustering and beyond , 2015, Nucleic Acids Res..

[38]  G. Lowe Concurrent depth-first search algorithms based on Tarjan’s Algorithm , 2016, International Journal on Software Tools for Technology Transfer.

[39]  Sadique Sheik,et al.  Reservoir computing compensates slow response of chemosensor arrays exposed to fast varying gas concentrations in continuous monitoring , 2015 .

[40]  Vincent Bloemen,et al.  On-The-Fly parallel decomposition of strongly connected components , 2015 .

[41]  Wilfred Ng,et al.  Pregel Algorithms for Graph Connectivity Problems with Performance Guarantees , 2014, Proc. VLDB Endow..

[42]  Dragan Bosnacki,et al.  GPU-Based Graph Decomposition into Strongly Connected and Maximal End Components , 2014, CAV.

[43]  Guy E. Blelloch,et al.  A simple and practical linear-work parallel algorithm for connectivity , 2014, SPAA.

[44]  Guy E. Blelloch,et al.  Phase-concurrent hash tables for determinism , 2014, SPAA.

[45]  Takuya Akiba,et al.  Fast and Accurate Influence Maximization on Large Networks with Pruned Monte-Carlo Simulations , 2014, AAAI.

[46]  Sivasankaran Rajamanickam,et al.  BFS and Coloring-Based Parallel Algorithms for Strongly Connected Components and Related Problems , 2014, 2014 IEEE 28th International Parallel and Distributed Processing Symposium.

[47]  Jennifer Widom,et al.  Optimizing Graph Algorithms on Pregel-like Systems , 2014, Proc. VLDB Endow..

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

[49]  Zhe Zhu,et al.  Efficient decomposition of strongly connected components on GPUs , 2014, J. Syst. Archit..

[50]  Kunle Olukotun,et al.  On fast parallel detection of strongly connected components (SCC) in small-world graphs , 2013, 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[51]  Le Song,et al.  Scalable Influence Estimation in Continuous-Time Diffusion Networks , 2013, NIPS.

[52]  Keshav Pingali,et al.  A lightweight infrastructure for graph analytics , 2013, SOSP.

[53]  Gary L. Miller,et al.  Parallel graph decompositions using random shifts , 2013, SPAA.

[54]  James Cheng,et al.  TF-Label: a topological-folding labeling scheme for reachability querying in a large graph , 2013, SIGMOD '13.

[55]  Guy E. Blelloch,et al.  Ligra: a lightweight graph processing framework for shared memory , 2013, PPoPP '13.

[56]  Miroslav Stuhl,et al.  Computing Strongly Connected Components with CUDA , 2013 .

[57]  David A. Patterson,et al.  Direction-optimizing Breadth-First Search , 2012, 2012 International Conference for High Performance Computing, Networking, Storage and Analysis.

[58]  Malgorzata Lucinska,et al.  Spectral Clustering Based on k-Nearest Neighbor Graph , 2012, CISIM.

[59]  Jure Leskovec,et al.  Defining and evaluating network communities based on ground-truth , 2012, Knowledge and Information Systems.

[60]  Guy E. Blelloch,et al.  Internally deterministic parallel algorithms can be fast , 2012, PPoPP '12.

[61]  Lubos Brim,et al.  Computing Strongly Connected Components in Parallel on CUDA , 2011, 2011 IEEE International Parallel & Distributed Processing Symposium.

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

[63]  Edgar Chávez,et al.  Navigating K-Nearest Neighbor Graphs to Solve Nearest Neighbor Searches , 2010, MCPR.

[64]  Jianzhong Li,et al.  Graph homomorphism revisited for graph matching , 2010, Proc. VLDB Endow..

[65]  Magdalena Balazinska,et al.  Scalable Clustering Algorithm for N-Body Simulations in a Shared-Nothing Cluster , 2010, SSDBM.

[66]  Charles E. Leiserson,et al.  A work-efficient parallel breadth-first search algorithm (or how to cope with the nondeterminism of reducers) , 2010, SPAA '10.

[67]  Hosung Park,et al.  What is Twitter, a social network or a news media? , 2010, WWW '10.

[68]  Charles E. Leiserson,et al.  The Cilk++ concurrency platform , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[69]  Wei Chen,et al.  Efficient influence maximization in social networks , 2009, KDD.

[70]  Ulrike von Luxburg,et al.  Optimal construction of k-nearest-neighbor graphs for identifying noisy clusters , 2009, Theoretical Computer Science.

[71]  Stavros Papadopoulos,et al.  Topologically Sorted Skylines for Partially Ordered Domains , 2009, 2009 IEEE 25th International Conference on Data Engineering.

[72]  Ronald L. Rivest,et al.  Introduction to Algorithms, 3rd Edition , 2009 .

[73]  Dahlia Malkhi,et al.  Efficient distributed approximation algorithms via probabilistic tree embeddings , 2008, PODC '08.

[74]  Warren Schudy,et al.  Finding strongly connected components in parallel using O(log2n) reachability queries , 2008, SPAA '08.

[75]  Xing Xie,et al.  Learning transportation mode from raw gps data for geographic applications on the web , 2008, WWW.

[76]  Krishna P. Gummadi,et al.  Measurement and analysis of online social networks , 2007, IMC '07.

[77]  Ulf Leser,et al.  Fast and practical indexing and querying of very large graphs , 2007, SIGMOD '07.

[78]  Pasi Fränti,et al.  Fast Agglomerative Clustering Using a k-Nearest Neighbor Graph , 2006, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[79]  Jon M. Kleinberg,et al.  Group formation in large social networks: membership, growth, and evolution , 2006, KDD '06.

[80]  Edgar Chávez,et al.  Using the k-Nearest Neighbor Graph for Proximity Searching in Metric Spaces , 2005, SPIRE.

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

[82]  S. Allesina,et al.  Ecological subsystems via graph theory: the role of strongly connected components , 2005 .

[83]  Martin C. Rinard,et al.  Symbolic bounds analysis of pointers, array indices, and accessed memory regions , 2005, TOPL.

[84]  Pasi Fränti,et al.  Outlier Detection Using k-Nearest Neighbour Graph , 2004, ICPR.

[85]  Edith Cohen,et al.  Efficient estimation algorithms for neighborhood variance and other moments , 2004, SODA '04.

[86]  Bruce Hendrickson,et al.  A Divide-and-conquer Algorithm for Identifying Strongly Connected Components ? , 2003 .

[87]  Uri Zwick,et al.  Improved dynamic reachability algorithms for directed graphs , 2002, The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings..

[88]  Benjamin B. Kimia,et al.  Metric-based shape retrieval in large databases , 2002, Object recognition supported by user interaction for service robots.

[89]  Raymie Stata,et al.  The Link Database: fast access to graphs of the Web , 2002, Proceedings DCC 2002. Data Compression Conference.

[90]  Guy E. Blelloch,et al.  The Data Locality of Work Stealing , 2002, SPAA '00.

[91]  J. Tenenbaum,et al.  A global geometric framework for nonlinear dimensionality reduction. , 2000, Science.

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

[93]  Vipin Kumar,et al.  Chameleon: Hierarchical Clustering Using Dynamic Modeling , 1999, Computer.

[94]  Valerie King,et al.  A fully dynamic algorithm for maintaining the transitive closure , 1999, STOC '99.

[95]  Thomas H. Spencer,et al.  Time-Work Tradeoffs of the Single-Source Shortest Paths Problem , 1999, J. Algorithms.

[96]  S. Sitharama Iyengar,et al.  Introduction to parallel algorithms , 1998, Wiley series on parallel and distributed computing.

[97]  Edith Cohen,et al.  Size-Estimation Framework with Applications to Transitive Closure and Reachability , 1997, J. Comput. Syst. Sci..

[98]  Philip N. Klein,et al.  A Randomized Parallel Algorithm for Single-Source Shortest Paths , 1997, J. Algorithms.

[99]  Edith Cohen,et al.  Using selective path-doubling for parallel shortest-path computations , 1993, [1993] The 2nd Israel Symposium on Theory and Computing Systems.

[100]  H. V. Jagadish,et al.  Hybrid Transitive Closure Algorithms , 1990, VLDB.

[101]  Mihalis Yannakakis,et al.  High-probability parallel transitive closure algorithms , 1990, SPAA '90.

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

[103]  Uzi Vishkin,et al.  An O(log n) Parallel Connectivity Algorithm , 1982, J. Algorithms.

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