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).
翻译:与电子计算机紧密相连的组件( SCC) 是图形处理中的一个基本问题 。 由于今天真实世界的图形正在变得越来越大, 平行的 SCC 越来越重要 。 在平行的设置中, SCC 具有挑战性, 在大直径图中特别困难 。 许多现有的平行 SCC 执行甚至比 Tarjan 在大直径图中的序列算法更慢。 为了应对这一挑战, 我们建议使用新的平行可达性算法来实施高效平行的 SCC 。 我们的解决方案基于一种新颖的理念, 即垂直颗粒控制( VGC ) 。 它打破了同步屏障, 增加平行值$, 并隐藏间接值 。 为了在我们的 SCC 算法中使用 VGC, 许多平行的 SCC 执行程序甚至比 18 的平面平面的平面计算法( 包括 GBBS 的平面图 ) 。 我们用 Blelodlemental 和 V. ( J.</s>