QUICK REVIEW
[論文レビュー] Distributed-Memory Breadth-First Search on Massive Graphs
Aydın Buluç, Scott Beamer|arXiv (Cornell University)|May 10, 2017
Graph Theory and Algorithms参考文献 6被引用数 22
ひとこと要約
本稿では、一般化された2次元プロセッサグリッド分割と方向最適化技術を用いて、大規模グラフのための高性能でスケーラブルな分散メモリBFSアルゴリズムを提示する。ハイパースパースDCSCストレージ、マルチスレーディング、および適応的トップダウン/ボトムアップ走査を組み合わせることで、Crayアーキテクチャを含む大規模システムにおける通信コストとメモリ使用量を低減し、優れたパフォーマンスを達成する。
ABSTRACT
This chapter studies the problem of traversing large graphs using the breadth-first search order on distributed-memory supercomputers. We consider both the traditional level-synchronous top-down algorithm as well as the recently discovered direction optimizing algorithm. We analyze the performance and scalability trade-offs in using different local data structures such as CSR and DCSC, enabling in-node multithreading, and graph decompositions such as 1D and 2D decomposition.
研究の動機と目的
- 計算強度が低く、メモリアクセスが不規則な大規模不規則グラフを、分散メモリシステムで効率的にBFS処理する課題に対処する。
- 正方形グリッドを超えて任意の長方形配置に一般化された2次元プロセッサグリッド分割を用いることで、並列BFSのスケーラビリティとパフォーマンスを向上させる。
- ノード内マルチスレーディングとスパース行列ストレージ形式(DCSC対CSR)が通信、計算、メモリ使用量に与える影響を評価する。
- フロンティアサイズに応じてトップダウンとボトムアップ走査を切り替える方向最適化BFSの有効性を示す。これにより、余分なエッジ検査を最小限に抑える。
- 実世界のグラフと大規模HPCプラットフォーム(CrayシステムおよびTwitterグラフを含む)上で実装を検証する。
提案手法
- グラフの隣接行列を分散するために、一般化された$p_r \times p_c$長方形2次元プロセッサグリッドを用い、柔軟な負荷分散と通信最適化を実現する。
- 動的に入れ替えられる方向最適化BFSを実装:初期段階・後期段階ではトップダウン、フロンティアが大きい段階ではボトムアップに切り替え、重複するエッジチェックを削減する。
- 局所的サブグラフのための二重圧縮スパースカラム(DCSC)形式を採用し、CSRに比べてメモリ使用量を削減し、メモリ帯域幅効率を向上させる。
- AlltoallvとAllgathervを用いてグローバル通信を実装:列方向にAlltoallvでフロンティア交換、行方向にAllgathervでグローバル同期。
- ノード内マルチスレーディングを統合し、特に大スルーレットコアシステムにおいて通信遅延を隠蔽し、計算利用効率を向上させる。
- トップダウンとボトムアップBFSの長所を組み合わせたハイブリッドアプローチを採用し、合計のエッジ検査回数を最小限に抑え、負荷バランスを改善する。
実験結果
リサーチクエスチョン
- RQ1プロセッサグリッドの歪み(例:正方形対長方形対フラット)が、分散BFSにおける通信、計算、全体的なパフォーマンスに与える影響は何か?
- RQ2メモリ制限のあるシステムにおいて、大規模分散BFSでDCSCとCSRのスパース行列形式を用いると、パフォーマンスにどのような影響があるか?
- RQ3ノード内マルチスレーディングは、分散BFSにおけるスケーラビリティ向上と通信遅延の隠蔽に、どの程度効果的か?
- RQ4方向最適化BFS(トップダウンとボトムアップの切り替え)は、余分なエッジ検査をどの程度削減し、実行時間にどのような改善をもたらすか?
- RQ5Twitterのような実世界のグラフでは、アルゴリズムはどの程度スケーリングし、サブ秒の走査時間を達成するためにはどの程度のコア数が必要か?
主な発見
- 長方形グリッド(特に正方形またはやや縦長/横長のグリッド)を用いた2次元プロセッサグリッド分割は、フラットで短いグリッドよりも優れたパフォーマンスを発揮する。これは、より良い負荷分散とAllgatherv通信コストの低減によるものである。
- DCSCストレージ形式はCSRに比べて顕著にメモリ使用量を削減し、より大規模なグラフ走査を可能にする。例として、1×110×440グリッドではスケール33でCSRではメモリ不足に陥ったが、DCSCではこれを回避した。
- マルチスレーディングは、特に大スルーレットコアシステムにおいて通信遅延を隠蔽し、計算利用効率を向上させるため、パフォーマンスとスケーラビリティを向上させる。
- 方向最適化BFSアルゴリズムは、フロンティアが最大となる中間段階で、余分なエッジ検査を最大90%まで削減し、実行時間の大幅な改善をもたらす。
- Twitterグラフ(1440コア)では、方向最適化BFSが0.08秒で完了し、ベースライン手法に比べて10倍少ないコア数で0.2秒未満のパフォーマンスを達成した。
- 入力サイズを2倍(スケール32から33に)した際、通信コストが2.5倍に増加したが、パフォーマンス劣化の主な要因は局所的計算の増加であり、2次元グリッド上でのCSRのスケーラビリティの限界を浮き彫りにした。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。