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,我们还设计了一种称为"并行哈希袋"的高效数据结构。它利用并行动态调整大小来避免在维护前沿(每轮处理的顶点)时产生冗余工作。我们采用新的并行可达性算法实现了Blelloch等人(J. ACM, 2020)的并行SCC算法。我们将实现与最先进的系统(包括GBBS、iSpan、Multi-step以及我们高度优化的Tarjan串行算法)在18个图(包括社交图、网页图、k-NN图与格图)上进行对比。在96核机器上,我们的实现在18个图中有16个最快。在所有图上按几何平均计算,我们的SCC比之前最优的并行代码(GBBS)快6.0倍,比Tarjan串行算法快12.8倍,比每个图上现有最佳实现快2.7倍。我们认为我们的技术具有独立的研究价值。我们还将并行哈希袋和VGC方案应用于其他图问题,包括连通性和最小元素列表(LE-list)。