Skip to main content
QUICK REVIEW

[論文レビュー] Parallel Louvain Community Detection Optimized for GPUs

Richárd Forster|arXiv (Cornell University)|May 28, 2018
Wireless Communication Networks Research被引用数 3
ひとこと要約

この論文では、CUDAを用いてGPUに最適化された並列実装を提示し、Louvainコミュニティ検出アルゴリズムの固有の逐次的性質を克服するための並列ヒューリスティクスを活用している。この手法により、GeForce GTX 980上でCPUベースの並列実装と比較して理論的最速が31倍、実験的最速が23倍に達し、CERNのコラボレーションスポッティングプロジェクトから得られたような大規模グラフにおけるモジュラリティ最適化を顕著に高速化している。

ABSTRACT

Community detection now is an important operation in numerous graph based applications. It is used to reveal groups that exist within real world networks without imposing prior size or cardinality constraints on the set of communities. Despite its potential, the support for parallel computers is rather limited. The cause is largely the irregularity of the algorithm and the underlying heuristics imply a sequential nature. In this paper a GPU based parallelized version of the Louvain method is presented. The Louvain method is a multi-phase, iterative heuristic for modularity optimization. It was originally developed by Blondel et al. (2008), the method has become increasingly popular owing to its ability to detect high modularity community partitions in a fast and memory-efficient manner. The parallel heuristics used, were first introduced by Hao Lu et al. (2015). As the Louvain method is inherently sequential, it limits the possibility of scalable usage. Thanks to the proposed parallel heuristics, I observe how this method can behave on GPUs. For evaluation I implemented the heuristics using CUDA on a GeForce GTX 980 GPU and for testing Ive used organization landscapes from the CERN developed Collaboration Spotting project that involves patents and publications to visualize the connections in technologies among its collaborators. Compared to the parallel Louvain implementation running on 8 threads on the same machine that has the used GPU, the CUDA implementation is able to produce community outputs comparable to the CPU generated results, while providing absolute speedups of up to 30 using the GeForce GTX 980 consumer grade GPU.

研究の動機と目的

  • アルゴリズムの不規則で反復的かつ貪欲な性質により、並列アーキテクチャ上でのスケーラビリティが制限されているため、その問題を解決すること。
  • CUDAを用いてLouvain手法をGPUに移植することで、大規模グラフにおける高性能コミュニティ検出を可能にすること。
  • 実世界のコラボレーショングラフ上で、GPU並列化されたLouvainアルゴリズムの性能を、マルチスレッドCPU実装と比較して評価すること。
  • GPU効率に影響を与える性能ボトルネックおよび構造的要因を特定すること。

提案手法

  • Hao Luら(2015)の並列ヒューリスティクスを採用し、本質的に逐次のLouvainアルゴリズムをGPU実行に適した形に再構築した。
  • GeForce GTX 980 GPU上でCUDAを用いてアルゴリズムを実装し、ホストとデバイス間のメモリ転送を最小限に抑えるように管理した。
  • 主要フェーズを最適化した:コミュニティ割り当て(モジュラリティ増加量の計算)、グラフ誘導(コミュニティの集約)、隣接ノード処理。
  • 隣接リストと重み付き次数を用いて、GPUスレッド全体で並列にモジュラリティ増加量を効率的に計算した。
  • ノードの次数が類似するノードをグループ化することで、スレッドの分岐を低減するためのノード再順序付けヒューリスティクスを適用した。
  • CERNのコラボレーションスポッティングプロジェクトから得た実世界のグラフ、特に coPapersDLBP および friendster を用いて性能を評価した。

実験結果

リサーチクエスチョン

  • RQ1本質的に逐次のLouvainアルゴリズムは、CUDAを用いたGPUアーキテクチャ上で効果的に並列化可能か?
  • RQ2Louvainのモジュラリティ最適化をGPUにオフロードすることで、マルチスレッドCPU実装と比較してどの程度の性能向上が達成できるか?
  • RQ3グラフ構造とデータレイアウトは、コミュニティ検出ワークロードにおけるGPU性能にどのように影響を与えるか?
  • RQ4GPU並列化Louvainにおける主な性能ボトルネックは何か?また、アルゴリズム的またはメモリ最適化によってこれらを軽減できるか?

主な発見

  • coPapersDLBPグラフにおいて、GPU実装は8スレッドCPU並列版と比較して23倍の高速化を達成し、理論的ピーク速度向上は31倍に達した。
  • CNRグラフでは、GPU上での1フェーズモジュラリティ計算がCPUより7.2倍速く、他のテストケースでは最大20倍の高速化が得られた。
  • グラフ誘導と隣接ノード処理フェーズは、それぞれGPUで28倍および16倍の高速化が達成され、前処理ステップでの顕著な性能向上が示された。
  • GPU版はすべての測定フェーズでCPU版を上回った:t_onephase_gpu << t_onephase_cpu、t_induce_gpu << t_induce_cpu、および t_neighbour_gpu << t_neighbour_cpu。
  • 性能はグラフ構造に強く依存しており、Europe-osmグラフでは再番号割り当てが非効率だったため、速度向上が得られなかった。これは、データレイアウトがGPU効率に影響を与えることを示している。
  • ノード次数のばらつきによるスレッド分岐が性能の制限要因であったため、ノード再順序付けによりGPU利用効率をさらに向上できる可能性がある。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。