Skip to main content
QUICK REVIEW

[论文解读] GVE-Louvain: Fast Louvain Algorithm for Community Detection in Shared Memory Setting

Subhajit Sahu|arXiv (Cornell University)|Dec 8, 2023
Complex Network Analysis Techniques被引用 7
一句话总结

本文提出 GVE-Louvain,一种针对共享内存环境的 Louvain 算法优化并行实现,通过 9 项针对性优化加速了局部移动与聚合阶段。在双 16 核 Intel Xeon 系统上,GVE-Louvain 在 38 亿条边的网络图上实现了每秒 5.6 亿条边的处理速度,相较于 Vite、Grappolo 和 NetworKit 分别提升了 50 倍、22 倍和 20 倍,且每增加一倍线程可实现 1.6 倍的加速比。

ABSTRACT

Community detection is the problem of identifying natural divisions in networks. Efficient parallel algorithms for identifying such divisions is critical in a number of applications, where the size of datasets have reached significant scales. This technical report presents one of the most efficient multicore implementations of the Louvain algorithm, a high quality community detection method. On a server equipped with dual 16-core Intel Xeon Gold 6226R processors, our Louvain, which we term as GVE-Louvain, outperforms Vite, Grappolo, NetworKit Louvain, and cuGraph Louvain (running on NVIDIA A100 GPU) by 50x, 22x, 20x, and 5.8x faster respectively - achieving a processing rate of 560M edges/s on a 3.8B edge graph. In addition, GVE-Louvain improves performance at an average rate of 1.6x for every doubling of threads.

研究动机与目标

  • 解决 Louvain 算法聚合阶段的性能瓶颈问题,尽管局部移动阶段的并行化已取得进展,但该阶段仍缺乏充分优化。
  • 通过针对共享内存多核架构进行优化,提升大规模图社区检测的效率,此类架构具有能效高且广泛可用的优势。
  • 提供一个统一的、高度优化的实现,将分散的算法改进整合为单一高性能并行框架。
  • 在最小化负载不平衡与并发执行竞争的前提下,实现强可扩展性并保持高模块度质量。
  • 通过为未来动态算法扩展奠定基础,实现动态图中实时或交互式社区检测。

提出的方法

  • 对 Louvain 算法应用 9 项针对性优化,重点降低共享内存环境中的内存竞争并提升数据局部性。
  • 通过向量化哈希表与高效的线程分配策略优化局部移动阶段,以减少虚假共享与缓存未命中。
  • 通过自定义可扩展的归约策略加速聚合阶段,最大限度减少锁竞争并提升线程间负载均衡。
  • 引入结合 OpenMP 任务调度与静态调度的混合方法,以在不规则图工作负载中平衡工作分配并降低开销。
  • 实现一种动态负载均衡机制,能够根据不同输入类型中图度数与社区结构的变化自适应调整。
  • 将性能关键组件(如社区重编号与树状图查找)集成至主计算流水线,以减少延迟。

实验结果

研究问题

  • RQ1如何优化 Louvain 算法的聚合阶段,以克服共享内存并行化中的性能瓶颈?
  • RQ2在多核共享内存环境中,哪些算法级与系统级优化组合能为社区检测带来最大性能提升?
  • RQ3当局部移动与聚合阶段均被优化时,Louvain 算法在多大程度上可实现强可扩展性?
  • RQ4优化后的 GVE-Louvain 实现与现有开源实现(如 Vite、Grappolo 和 NetworKit)相比,其模块度质量如何?
  • RQ5图特征(如度分布、聚类性)对优化后实现的性能与可扩展性行为有何影响?

主要发现

  • 在 38 亿条边的网络图上,GVE-Louvain 实现每秒处理 5.6 亿条边,处理速率达 560M edges/s。
  • 在相同硬件与数据集上,GVE-Louvain 相较于 Vite、Grappolo 和 NetworKit 分别实现 50 倍、22 倍和 20 倍的性能提升。
  • 每增加一倍线程,GVE-Louvain 平均实现 1.6 倍的加速比,表现出优异的强可扩展性。
  • 在 64 个线程下,GVE-Louvain 相较单线程实现获得 11.4 倍的加速比,性能下降主要由 NUMA 效应引起。
  • 局部移动阶段占总运行时间的 49%,聚合阶段占 35%,其余阶段(初始化、重编号等)占 16%。
  • 在网页图上,GVE-Louvain 的模块度比 Vite 高 3.1%;在聚类性较差的社会网络图上,模块度比 Grappolo 和 NetworKit 低 0.6%。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。