[論文レビュー] Efficient Processing of Very Large Graphs in a Small Cluster
GraphD は、計算と通信を重ねながらローカルディスクにエッジとメッセージをストリーミングすることで、小さなクラスタ上でも非常に大きなグラフを効率的に処理できる Pregel に類似したシステムである。ID 再符号化と新規スキップ関数を用いることで、外部メモリ操作にかかる高コストを回避し、近似主記憶装置性能を達成しており、1 マシンあたり O(|V|/n) のメモリで十分であり、従来の外部記憶システムを桁違いに上回る性能を発揮する。
Inspired by the success of Google's Pregel, many systems have been developed recently for iterative computation over big graphs. These systems provide a user-friendly vertex-centric programming interface, where a programmer only needs to specify the behavior of one generic vertex when developing a parallel graph algorithm. However, most existing systems require the input graph to reside in memories of the machines in a cluster, and the few out-of-core systems suffer from problems such as poor efficiency for sparse computation workload, high demand on network bandwidth, and expensive cost incurred by external-memory join and group-by. In this paper, we introduce the GraphD system for a user to process very large graphs with ordinary computing resources. GraphD fully overlaps computation with communication, by streaming edges and messages on local disks, while transmitting messages in parallel. For a broad class of Pregel algorithms where message combiner is applicable, GraphD eliminates the need of any expensive external-memory join or group-by. These key techniques allow GraphD to achieve comparable performance to in-memory Pregel-like systems without keeping edges and messages in memories. We prove that to process a graph G=(V, E) with n machines using GraphD, each machine only requires O(|V|/n) memory space, allowing GraphD to scale to very large graphs with a small cluster. Extensive experiments show that GraphD beats existing out-of-core systems by orders of magnitude, and achieves comparable performance to in-memory systems running with enough memories.
研究の動機と目的
- 非常に大きなグラフを処理する際に、主記憶装置に大きなメモリを要するインメモリグラフ処理システムのスケーラビリティ制限を解消すること。
- ジョインやグループ化といった高コストな外部メモリ操作に依存する既存の外部記憶システムの非効率性を克服すること。
- 1 スーパーステップあたりのアクティブな頂点が非常に少ないスパースな計算ワークロードを、外部記憶環境でも効率的に処理できること。
- ローカルディスクバッファリングを活用して計算と通信を完全に重ねることで、標準的なクラスタ環境における I/O とネットワークのボトル neck を最小限に抑えるシステム設計をすること。
- 通常の計算リソースで運用可能な状態で、インメモリシステムと同等の性能を達成しながら、1 マシンあたり O(|V|/n) のメモリ使用量に抑えること。
提案手法
- GraphD は、グラフ全体とメッセージセットを主記憶装置に保持せず、ディスクから直接エッジとメッセージをストリーミングする。
- スパースな計算ワークロードを効率的に処理するため、非アクティブな頂点をロードせずにスキップする新しいスキップ関数(skip(num_items))を採用する。
- 送信メッセージをローカルディスクにバッファリングすることで、ディスク I/O とネットワーク通信を重ね、I/O レイテンシを通信時間内に隠す。
- メッセージコンビナが使用されるアルゴリズムでは、ID 再符号化を適用することで、高コストな外部メモリのマージソートやグループ化操作の必要性を排除する。
- ランダムアクセスを最小限に抑え、スループットを最大化するようにデータアクセスパターンを最適化することで、連続的 I/O 帯域幅を最大限に活用する。
- Gigabit エthernet で接続されたクラスタを想定し、低帯域幅と高い I/O 効率を最適化する。
実験結果
リサーチクエスチョン
- RQ1インメモリにグラフ全体とメッセージセットを保持しない状態でも、Pregel に類似したシステムが非常に大きなグラフに対して近似主記憶装置性能を達成できるか?
- RQ21 スーパーステップあたりのアクティブな頂点が非常に少ないスパースなワークロードにおいて、外部記憶グラフ処理をどのように効率化できるか?
- RQ3標準クラスタ環境において、ディスクストリーミングと通信の重ね合わせを効果的に活用することで、I/O とネットワークのボトル neck を最小限に抑えることができるか?
- RQ4ID 再符号化によって、外部記憶処理における高コストな外部メモリ操作(マージソートやグループ化)の必要性をどの程度排除できるか?
- RQ5GraphD のパフォーマンスは、多様なグラフワークロードとクラスタ構成において、インメモリシステムおよび既存の外部記憶システムと比較してどの程度優れているか?
主な発見
- GraphD は、特に SSSP や BFS のようなスパースワークロードにおいて、既存の外部記憶システムを桁違いに上回る性能を発揮する。
- WebUK グラフにおいて、GraphD は 0.02〜0.03 秒というサブ秒レベルのスーパーステップ時間(sub-second superstep times)を達成したが、Pregelix は 1 スーパーステップあたり最低でも 35 秒の固定コストを要し、1000 倍以上遅かった。
- X-Stream は、各イテレーションですべてのエッジをストリーミングする高コストな I/O オーバーヘッドのため、WebUK で 1 日以内に処理を完了できず、長時間実行されるスパースなアルゴリズムにおける非効率性が顕著に現れた。
- BTC および WebUK において、メッセージ数が少ない状況では、GraphD の IO-Recoding モードが IO-Basic よりも優れた性能を発揮した。これは、アレイ管理コストの低減によるものである。
- GraphD は、インメモリ Pregel に類似したシステムですら十分なメモリを備えている状況でも、同等のパフォーマンスを達成しており、その効率性とスケーラビリティを裏付けた。
- システムは 1 マシンあたり O(|V|/n) のメモリしか使用せず、ClueWeb(400GB 以上)のような非常に大きなグラフを、小規模なクラスタと通常のハードウェアで処理可能である。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。