[论文解读] ConnectIt: A Framework for Static and Incremental Parallel Graph Connectivity Algorithms
ConnectIt 是一种用于多核系统上静态与增量并行图连通性的统一框架,通过结合边采样、树链接和压缩策略,生成数百种算法变体。相较于最先进的实现,其平均加速比达到 12.4 倍,并在 72 个核心上以不到 10 秒的时间完成对 35 亿个顶点、1280 亿条边的图的连通性计算,增量更新的处理速度可达每秒数亿条边。
Connected components is a fundamental kernel in graph applications. The fastest existing parallel multicore algorithms for connectivity are based on some form of edge sampling and/or linking and compressing trees. However, many combinations of these design choices have been left unexplored. In this paper, we design the ConnectIt framework, which provides different sampling strategies as well as various tree linking and compression schemes. ConnectIt enables us to obtain several hundred new variants of connectivity algorithms, most of which extend to computing spanning forest. In addition to static graphs, we also extend ConnectIt to support mixes of insertions and connectivity queries in the concurrent setting. We present an experimental evaluation of ConnectIt on a 72-core machine, which we believe is the most comprehensive evaluation of parallel connectivity algorithms to date. Compared to a collection of state-of-the-art static multicore algorithms, we obtain an average speedup of 12.4x (2.36x average speedup over the fastest existing implementation for each graph). Using ConnectIt, we are able to compute connectivity on the largest publicly-available graph (with over 3.5 billion vertices and 128 billion edges) in under 10 seconds using a 72-core machine, providing a 3.1x speedup over the fastest existing connectivity result for this graph, in any computational setting. For our incremental algorithms, we show that our algorithms can ingest graph updates at up to several billion edges per second. To guide the user in selecting the best variants in ConnectIt for different situations, we provide a detailed analysis of the different strategies. Finally, we show how the techniques in ConnectIt can be used to speed up two important graph applications: approximate minimum spanning forest and SCAN clustering.
研究动机与目标
- 设计一个灵活且可组合的框架,以系统性地探索并行图连通性中多样化的算法组合。
- 在并发多核环境中同时支持静态图连通性与动态增量更新(边插入)。
- 在广泛的图工作负载和算法变体上提供全面的性能评估。
- 通过框架中优化的连通性原语,加速两个关键图应用——近似最小生成森林与 SCAN 聚类。
- 通过深入分析采样、链接与压缩策略,指导用户根据特定图与工作负载特性选择最优算法变体。
提出的方法
- 提出一种模块化框架,将不同的采样策略、树链接方案与路径压缩技术组合成单一可扩展的架构。
- 支持多种并查集变体,采用原子操作(CAS)与基于锁的同步机制,确保在并发更新下的正确性。
- 采用钩子压缩(hook-compress)与拼接原子(splice-atomic)范式,减少内存访问并提升并行执行中的负载均衡。
- 利用边采样减少后续阶段处理的边数,提升大规模图的可扩展性。
- 集成早期终止与捷径优化技术,最小化连通性计算中的冗余工作。
- 通过维护支持高效新边插入与快速查询解析的数据结构,实现增量连通性计算。
实验结果
研究问题
- RQ1在多核系统上,哪些采样、链接与压缩策略的组合能在并行图连通性中实现最高性能?
- RQ2ConnectIt 框架在包含超过 35 亿个顶点与 1280 亿条边的大型真实图工作负载上如何实现可扩展性?
- RQ3该框架能否在高吞吐量边插入工作负载下高效支持增量连通性?其性能边界是什么?
- RQ4在共享内存架构上,不同并查集变体(如钩子压缩、rem-lock、基于 CAS 的实现)在性能与可扩展性方面如何比较?
- RQ5ConnectIt 的优化连通性原语在多大程度上能加速更高层次的图应用,如最小生成森林与 SCAN 聚类?
主要发现
- 在 72 核机器上,ConnectIt 相较于最先进的静态多核连通性算法,平均获得 12.4 倍的加速比。
- 该框架在最大公开可用图(35 亿个顶点,1280 亿条边)上完成连通性计算的时间不足 10 秒,相比现有最快结果提升 3.1 倍。
- ConnectIt 中的增量连通性算法可维持每秒数亿条边的更新速率,展现出对动态工作负载的高吞吐能力。
- 通过组合不同的采样、链接与压缩策略,该框架生成了数百种新的算法变体,其中大多数可扩展至生成森林计算。
- ConnectIt 的优化变体显著加速了两个实际应用:近似最小生成森林与 SCAN 聚类,通过加速底层连通性内核实现。
- 对策略的详细分析使用户能够根据其特定图与工作负载特性,选择性能最佳的算法变体。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。