[論文レビュー] GRE: A Graph Runtime Engine for Large-Scale Distributed Graph-Parallel Applications
GREは、スキャッタ・コンバイン計算モデルとエージェント・グラフデータモデルを用いて、大規模分散グラフ並列計算を向上させる画期的なグラフランタイムエンジンを提案する。アクティブメッセージを用いた細粒度エッジレベル並列処理と、頂点因子化による有向グラフの最適化されたパーティショニングにより、PowerGraphと比較して2.5–17倍の性能向上を達成し、768GBメモリ環境で最大10億頂点、170億エッジのグラフを処理可能となり、速度およびメモリ効率の両面で既存のフレームワークを凌駆する。
Large-scale distributed graph-parallel computing is challenging. On one hand, due to the irregular computation pattern and lack of locality, it is hard to express parallelism efficiently. On the other hand, due to the scale-free nature, real-world graphs are hard to partition in balance with low cut. To address these challenges, several graph-parallel frameworks including Pregel and GraphLab (PowerGraph) have been developed recently. In this paper, we present an alternative framework, Graph Runtime Engine (GRE). While retaining the vertex-centric programming model, GRE proposes two new abstractions: 1) a Scatter-Combine computation model based on active message to exploit massive fined-grained edge-level parallelism, and 2) a Agent-Graph data model based on vertex factorization to partition and represent directed graphs. GRE is implemented on commercial off-the-shelf multi-core cluster. We experimentally evaluate GRE with three benchmark programs (PageRank, Single Source Shortest Path and Connected Components) on real-world and synthetic graphs of millions billion of vertices. Compared to PowerGraph, GRE shows 2.5~17 times better performance on 8~16 machines (192 cores). Specifically, the PageRank in GRE is the fastest when comparing to counterparts of other frameworks (PowerGraph, Spark,Twister) reported in public literatures. Besides, GRE significantly optimizes memory usage so that it can process a large graph of 1 billion vertices and 17 billion edges on our cluster with totally 768GB memory, while PowerGraph can only process less than half of this graph scale.
研究の動機と目的
- 不規則なデータアクセスと低局所性に起因する大規模グラフ並列ワークロードにおける不規則な細粒度並列処理の表現の課題に対処する。
- 度数分布が偏ったスケールフリーグラフにおけるバランスの取れたグラフパーティショニングの難しさ、ならびにその結果生じる高い通信オーバーヘッドを克服する。
- 頂点中心モデルの簡潔さを保ちつつ、効率的かつ大規模なエッジレベル並列処理を可能にする新しい計算モデルを設計する。
- 有向グラフにおいて頂点をエージェントに因子化することで、通信コストとメモリ使用量を削減する分散データモデルを開発する。
- 商用マルチコアクラスタ上で、数十億の頂点とエッジを有する実世界および合成グラフに対して、高い性能とスケーラビリティを実現する。
提案手法
- 従来のGAS(Gather-Apply-Scatter)における二面的エッジ処理を、細粒度エッジレベル並列処理を活用する一方向のアクティブメッセージに変換するスキャッタ・コンバイン計算モデルを導入する。
- 通信プリミティブとしてアクティブメッセージ伝送を採用し、従来のメッセージパスティングや共有メモリモデルと比較して、効率的で低オーバーヘッドのメッセージ送信を実現する。
- 頂点をエージェントに因子化して有向グラフを表現するエージェント・グラフデータモデルを提案する。これにより、分散システムにおけるより効率的なパーティショニングとエッジカットの低減が可能になる。
- エッジカットと類似した頂点カットベースのパーティショニングをエージェント・グラフモデルに適用するが、有向グラフに適応させ、通信削減を最適化する。
- 細粒度同期のためのvLockやスレッドレベル通信のためのFastForwardといった低レベル最適化を統合し、マルチコアマシン上の局所的性能を向上させる。
- 商用オフザシェルフのマルチコアクラスタ上に完全なランタイムシステムを構築し、PageRank、SSSP、連結成分といった反復的グラフアルゴリズムをサポートする。
実験結果
リサーチクエスチョン
- RQ1不規則なアクセスパターンを示す大規模分散グラフ並列アプリケーションにおいて、細粒度エッジレベル並列処理をどのように効率的に表現・活用できるか?
- RQ2頂点因子化に基づくデータモデルは、度数分布が偏ったスケールフリー有向グラフにおいて、通信オーバーヘッドをどれほど低減し、負荷分散を改善できるか?
- RQ3アクティブメッセージに基づく新しい計算モデルは、従来のGASおよびメッセージパスティングモデルに比べ、性能およびメモリ効率において優れていると期待できるか?
- RQ4実世界のグラフにおいて、提案されたエージェント・グラフモデルはエッジカットおよび頂点カットパーティショニングと比較して、通信コストとスケーラビリティの面で優れているか?
- RQ5PowerGraph、Spark、Twisterといった既存のフレームワークと比較して、GREは100億規模のグラフ処理においてエンド・ツー・エンドの性能およびメモリ効率をどのように達成しているか?
主な発見
- GREは、3つのベンチマークワークロード(PageRank、単一始点最短経路、連結成分)において、8〜16台のマシン(192コア)でPowerGraph比2.5〜17倍の性能向上を達成した。
- GREにおけるPageRankは、公開文献に記載された中で最も高速な実装であり、PowerGraph、Spark、Twisterの各実装を上回っている。
- GREはメモリ使用量を顕著に削減し、768GBメモリクラスタ上での10億頂点・170億エッジのグラフ処理を可能にした。一方、PowerGraphはその半分未満の規模しか処理できない。
- エージェント・グラフモデルは、頂点因子化によるエッジカットの最小化により通信コストを低減し、特に度数分布が偏った有向グラフにおいて顕著な効果を示した。
- スキャッタ・コンバインモデルにより、アクティブメッセージ伝送によって同期および通信オーバーヘッドが削減され、大規模なエッジ粒度並列処理の効率的活用が可能になった。
- ランタイムシステムは強力なスケーラビリティと効率性を示し、実世界および合成グラフの両方で高い性能を発揮した。これにより、実装された抽象化の実用的有効性が裏付けられた。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。