Parallel Strongly Connected Components Detection with Multi-partition on GPUs

The graph computing is often used to analyze complex relationships in the interconnected world, and the strongly connected components (SCC) detection in digraphs is a basic problem in graph computing. As graph size increases, many parallel algorithms based on GPUs have been proposed to detect SCC. The state-of-the-art parallel algorithms of SCC detection can accelerate on various graphs, but there is still space for improvement in: (1) Multiple traversals are time-consuming when processing real-world graphs; (2) Pivot selection is less accurate or time-consuming. We proposed an SCC detection method with multi-partition that optimizes the algorithm process and achieves high performance. Unlike existing parallel algorithms, we select a pivot and traverse it forward, and then select a vice pivot and traverse the pivot and the vice pivot backwards simultaneously. After updating the state of each vertex, we can get multiple partitions to parallelly detect SCC. At different phases of our approach, we use a vertex with the largest degree product or a random vertex as the pivot to balance selection accuracy and efficiency. We also implement weakly connected component (WCC) detection and 2-SCC to optimize our algorithm. And the vertices marked by the WCC partition are selected as the pivot to reduce unnecessary operations. We conducted experiments on the NVIDIA K80 with real-world and synthetic graphs. The results show that the proposed algorithm achieves an average detection acceleration of 8.8\(\times \) and 21\(\times \) when compared with well-known algorithms, such as Tarjan’s algorithm and Barnat’s algorithm.

[1]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[2]  David A. Bader,et al.  Design and Implementation of the HPCS Graph Analysis Benchmark on Symmetric Multiprocessors , 2005, HiPC.

[3]  Jure Leskovec,et al.  {SNAP Datasets}: {Stanford} Large Network Dataset Collection , 2014 .

[4]  David Defour,et al.  Regularity Versus Load-Balancing on GPU for Treefix Computations , 2013, ICCS.

[5]  Ravi Kumar,et al.  Structure and evolution of online social networks , 2006, KDD '06.

[6]  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).

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

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

[9]  Lawrence Rauchwerger,et al.  Finding strongly connected components in parallel in particle transport sweeps , 2001, SPAA '01.

[10]  Christos Faloutsos,et al.  R-MAT: A Recursive Model for Graph Mining , 2004, SDM.

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

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

[13]  Jiri Barnat,et al.  Parametric Multi-step Scheme for GPU-Accelerated Graph Decomposition into Strongly Connected Components , 2016, Euro-Par Workshops.

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

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

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

[17]  Peter A. Beerel,et al.  Implicit enumeration of strongly connected components and anapplication to formal verification , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[18]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

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

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

[21]  Simona Orzan,et al.  On Distributed Verification and Verified Distribution , 2004 .