[论文解读] Parallel Algorithms for Butterfly Computations
该论文提出 ParButterfly,一种用于二分图中高效并行蝴蝶计算的模块化框架,通过排序、哈希、直方图或批处理方式实现楔子聚合,并结合顶点排序策略。其在 48 核系统上相对于最快顺序算法实现最高达 13.6 倍的加速,自相对加速最高达 38.5 倍,显著优于通用子图计数方法和先前的并行实现。
Butterflies are the smallest non-trivial subgraph in bipartite graphs, and therefore having efficient computations for analyzing them is crucial to improving the quality of certain applications on bipartite graphs. In this paper, we design a framework called ParButterfly that contains new parallel algorithms for the following problems on processing butterflies: global counting, per-vertex counting, per-edge counting, tip decomposition (vertex peeling), and wing decomposition (edge peeling). The main component of these algorithms is aggregating wedges incident on subsets of vertices, and our framework supports different methods for wedge aggregation, including sorting, hashing, histogramming, and batching. In addition, ParButterfly supports different ways of ranking the vertices to speed up counting, including side ordering, approximate and exact degree ordering, and approximate and exact complement coreness ordering. For counting, ParButterfly also supports both exact computation as well as approximate computation via graph sparsification. We prove strong theoretical guarantees on the work and span of the algorithms in ParButterfly. We perform a comprehensive evaluation of all of the algorithms in ParButterfly on a collection of real-world bipartite graphs using a 48-core machine. Our counting algorithms obtain significant parallel speedup, outperforming the fastest sequential algorithms by up to 13.6x with a self-relative speedup of up to 38.5x. Compared to general subgraph counting solutions, we are orders of magnitude faster. Our peeling algorithms achieve self-relative speedups of up to 10.7x and outperform the fastest sequential baseline by up to several orders of magnitude.
研究动机与目标
- 解决大规模二分图中蝴蝶计算缺乏高效并行算法的问题,此类计算在链接垃圾信息检测和文档聚类等应用中至关重要。
- 设计一种模块化框架,支持多种聚合策略(排序、哈希、直方图、批处理)和顶点排序方法(度数、核心度、边序),以优化性能。
- 通过图稀疏化实现精确与近似蝴蝶计数,并集成缓存优化的楔子检索以提升内存效率。
- 开发并行剥除算法(尖端与翼部分解),以分层方式提取密集子图,类似于在单部图中的 k-核心分解。
- 为所有算法建立强理论保证(工作量与跨度),确保在共享内存多核架构上的正确性与可扩展性。
提出的方法
- 使用四种并行聚合技术(排序、哈希、直方图、批处理)对关联在顶点对上的楔子(2-路径)进行聚合,以支持高效的蝴蝶计数。
- 通过度数排序(精确与近似)和核心度排序(精确与近似)实施顶点排序,以优先处理高影响力楔子并减少冗余计算。
- 集成 Sanei-Mehri 等人 [53] 提出的图稀疏化技术,实现具有可证明误差边界的快速近似蝴蝶计数。
- 利用 Cilk 调度器实现楔子聚合与剥除迭代中的任务并行,确保负载均衡与低开销。
- 实现并行的尖端(顶点)与翼部(边)剥除算法,通过迭代移除蝴蝶计数最少的顶点/边,并在各次迭代中并行更新计数。
- 集成 Wang 等人 [65] 提出的缓存优化楔子检索策略,以减少楔子枚举过程中的内存访问延迟。
实验结果
研究问题
- RQ1能否设计出基于模块化、可组合组件的高效并行算法,实现二分图中全局、每顶点及每边的蝴蝶计数?
- RQ2在共享内存并行系统中,不同的楔子聚合策略(排序、哈希、直方图、批处理)对性能与可扩展性有何影响?
- RQ3通过度数或核心度排序的顶点排序在多大程度上能减少蝴蝶计数中的计算工作量?
- RQ4通过图稀疏化实现的近似蝴蝶计数能否在保持高精度的同时显著提升大规模图的处理速度?
- RQ5并行的尖端与翼部分解剥除算法在性能与可扩展性方面,与顺序基线及现有分布式解决方案相比如何?
主要发现
- ParButterfly 的计数算法在 48 核机器上相对于最快顺序基线实现最高达 13.6 倍的加速,自相对加速最高达 38.5 倍,展现出强大的并行可扩展性。
- 该框架在性能上显著优于通用子图计数方案,尤其在大型真实二分图(如 Delicious 标签-项目图)上表现突出。
- 剥除算法实现最高达 10.7 倍的自相对加速,且在性能上比最快顺序基线高出数个数量级,证实其在密集子图发现中的有效性。
- 顶点排序(尤其是度数与补核心度排序)与高效聚合方法的结合,显著减少了所有测试图的运行时间。
- 图稀疏化技术使近似计数实现快速处理且精度损失极小,适用于大规模图的交互式分析。
- 集成 Wang 等人 [65] 提出的缓存优化楔子检索策略进一步提升了性能,尤其在内存受限的工作负载中表现显著。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。