[论文解读] RECEIPT: REfine CoarsE-grained IndePendent Tasks for Parallel Tip decomposition of Bipartite Graphs
RECEIPT 是一种新颖的共享内存并行算法,用于二分图中的尖端分解,通过利用不同尖端数层级下顶点的独立子集,实现高并行性并大幅减少同步开销。在大规模数据集上,与现有最先进方法相比,其自相对加速比最高达 17.1×,楔子遍历次数减少 64×,线程同步次数减少 1100×。
Tip decomposition is a crucial kernel for mining dense subgraphs in bipartite networks, with applications in spam detection, analysis of affiliation networks etc. It creates a hierarchy of vertex-induced subgraphs with varying densities determined by the participation of vertices in butterflies (2,2-bicliques). To build the hierarchy, existing algorithms iteratively follow a delete-update(peeling) process: deleting vertices with the minimum number of butterflies and correspondingly updating the butterfly count of their 2-hop neighbors. The need to explore 2-hop neighborhood renders tip-decomposition computationally very expensive. Furthermore, the inherent sequentiality in peeling only minimum butterfly vertices makes derived parallel algorithms prone to heavy synchronization. In this paper, we propose a novel parallel tip-decomposition algorithm -- REfine CoarsE-grained Independent Tasks (RECEIPT) that relaxes the peeling order restrictions by partitioning the vertices into multiple independent subsets that can be concurrently peeled. This enables RECEIPT to simultaneously achieve a high degree of parallelism and dramatic reduction in synchronizations. Further, RECEIPT employs a hybrid peeling strategy along with other optimizations that drastically reduce the amount of wedge exploration and execution time. We perform detailed experimental evaluation of RECEIPT on a shared-memory multicore server. It can process some of the largest publicly available bipartite datasets orders of magnitude faster than the state-of-the-art algorithms -- achieving up to 1100x and 64x reduction in the number of thread synchronizations and traversed wedges, respectively. Using 36 threads, RECEIPT can provide up to 17.1x self-relative speedup. Our implementation of RECEIPT is available at https://github.com/kartiklakhotia/RECEIPT.
研究动机与目标
- 解决现有串行和并行尖端分解算法依赖最小蝴蝶顶点串行剥除所导致的可扩展性限制。
- 降低尖端分解中 2 跳邻域探索的高计算成本,该过程在大规模图中涉及数万亿个楔子的遍历。
- 最小化并行实现中的线程同步开销,由于剥除过程的固有串行性,这会阻碍可扩展性。
- 在共享内存多核系统上实现高效、可扩展且实用的大型二分图尖端分解。
- 探索该方法在其他图分析问题(如翼分解和分布式内存执行)中的可扩展性。
提出的方法
- 接收一个二分图,并根据其尖端数将顶点划分为独立子集,从而在 k-尖端层次的不同层级上实现并发剥除。
- 采用混合剥除策略,结合粗粒度独立任务调度与细粒度优化,以减少楔子探索并改善负载均衡。
- 使用一种新颖的索引方案,预先计算蝴蝶计数,并在剥除过程中支持高效的 2 跳邻居更新,从而最小化冗余计算。
- 引入一种动态任务调度机制,根据估计的计算成本在不同线程间分配剥除工作负载,减少负载不平衡。
- 应用内存访问优化并利用 SIMD 并行性,以改善共享内存执行中的数据局部性并减少 NUMA 效应。
- 通过扩展相同的任务独立性和优化原则,同时支持顶点剥除(尖端分解)和边剥除(翼分解)。
实验结果
研究问题
- RQ1能否识别并行处理不同尖端数层级下的顶点独立子集,以打破尖端分解中串行剥除的瓶颈?
- RQ2通过智能工作负载分区和混合剥除策略,能否在并行尖端分解中显著减少楔子遍历和线程同步?
- RQ3与现有并行算法相比,RECEIPT 在大规模二分图上随着线程数量增加的性能扩展性如何?
- RQ4所提出的优化是否可推广至其他图分析问题,如翼分解或分布式内存执行?
- RQ5在共享内存环境下,大规模尖端分解的算法复杂度、内存使用与性能之间存在何种权衡?
主要发现
- RECEIPT 在共享内存多核服务器上使用 36 个线程时,最高实现 17.1× 的自相对加速比,显著优于现有并行算法。
- 在 LiveJournal 数据集上,RECEIPT 在 16 分钟内完成尖端分解,而最佳串行算法(Bit-BU)耗时超过 15 小时。
- 与现有最先进并行算法相比,RECEIPT 将线程同步次数最多减少 1100×,楔子遍历次数最多减少 64×。
- 该算法仅消耗数 GB 内存,相比之下,基于 bloom 索引的方法(如 Bit-BU)需要数百 GB 内存。
- 混合剥除策略和任务分区显著降低了 2 跳邻域探索的计算成本,这是尖端分解中的主要性能瓶颈。
- RECEIPT 的设计可扩展至并行翼分解和分布式内存系统,通过细粒度并行和通信感知任务调度,具备进一步提升可扩展性的潜力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。