Skip to main content
QUICK REVIEW

[論文レビュー] GraphX: Unifying Data-Parallel and Graph-Parallel Analytics

Reynold Xin, Daniel Crankshaw|arXiv (Cornell University)|Feb 11, 2014
Graph Theory and Algorithms参考文献 22被引用数 57
ひとこと要約

GraphX は、グラフを頂点と辺のコレクションとしてモデル化することで、データ並列処理とグラフ並列処理を1つのフレームワークに統合し、両方のアルゴリズムとデータ並列操作を1つのシステム内で効率的に実行できるようにする。これは、専用のグラフシステムと同等のパフォーマンスを達成しながら、最小限のデータ移動でエンド・ツー・エンドのグラフ分析パイプラインを実現し、開発者の生産性を向上させる。

ABSTRACT

From social networks to language modeling, the growing scale and importance of graph data has driven the development of numerous new graph-parallel systems (e.g., Pregel, GraphLab). By restricting the computation that can be expressed and introducing new techniques to partition and distribute the graph, these systems can efficiently execute iterative graph algorithms orders of magnitude faster than more general data-parallel systems. However, the same restrictions that enable the performance gains also make it difficult to express many of the important stages in a typical graph-analytics pipeline: constructing the graph, modifying its structure, or expressing computation that spans multiple graphs. As a consequence, existing graph analytics pipelines compose graph-parallel and data-parallel systems using external storage systems, leading to extensive data movement and complicated programming model. To address these challenges we introduce GraphX, a distributed graph computation framework that unifies graph-parallel and data-parallel computation. GraphX provides a small, core set of graph-parallel operators expressive enough to implement the Pregel and PowerGraph abstractions, yet simple enough to be cast in relational algebra. GraphX uses a collection of query optimization techniques such as automatic join rewrites to efficiently implement these graph-parallel operators. We evaluate GraphX on real-world graphs and workloads and demonstrate that GraphX achieves comparable performance as specialized graph computation systems, while outperforming them in end-to-end graph pipelines. Moreover, GraphX achieves a balance between expressiveness, performance, and ease of use.

研究の動機と目的

  • グラフ分析パイプラインにおける、分離されたデータ並列処理とグラフ並列処理システムの非効率性と複雑さを解消すること。
  • データ並列処理とグラフ並列処理を、データの重複や移動を伴わずに1つの組み合わせ可能なフレームワークに統合すること。
  • Pregel や PowerGraph の抽象化を表現できるが、リレーショナル代数と互換性を持つ最小限で表現力のあるグラフ演算子のセットを設計すること。
  • 1つのシステム内で、グラフの構築、変換、計算、分析をエンド・ツー・エンドで行えるようにすること。
  • 既存のデータ並列最適化技術(例:ジョインの再書き換えやインクリメンタルビューの維持)を活用し、効率的なグラフ計算を実現すること。

提案手法

  • GraphX は、分散かつ水平にパーティショニングされたデータセットに格納された頂点と辺のコレクションとしてグラフをモデル化し、効率的なアクセスを可能にする補助インデックス構造を備える。
  • エッジ中心の計算と変換を可能にするために、サブグラフや mrTriplets といったグラフ並列演算子のコアセットを導入する。
  • グラフ計算は、特にジョインと集約を含むリレーショナル代数の操作のシーケンスとして表現され、GAS 構造の Scatter-Gather 阶段に対応する。
  • ジョインのパフォーマンス最適化のために、自動的なジョイン再書き換えと分散ルーティングテーブルを活用し、分散データベースにおけるジョインサイト選択を模倣する。
  • 反復的グラフアルゴリズムにおいて中間結果を再利用するインクリメンタルビューの維持技術を適用し、冗長な計算を削減する。
  • Spark などのデータ並列エンジンと統合することで、同じデータ上でデータ並列処理とグラフ並列処理をシームレスに組み合わせられるようにする。

実験結果

リサーチクエスチョン

  • RQ1統合されたシステムは、パフォーマンスを犠牲にすることなく、データ並列処理とグラフ並列処理の両方のワークロードを効率的に表現できるか?
  • RQ2Pregel や PowerGraph のような既存のグラフ並列抽象化を表現できるが、リレーショナル代数と互換性を持つ最小限のグラフ演算子セットを設計できるか?
  • RQ3データ並列システムで用いられる最適化技術(例:ジョインの再書き換えやインクリメンタルビューの維持)を、グラフ計算の高速化にどの程度適応できるか?
  • RQ4エンド・ツー・エンドのグラフ分析パイプラインにおいて、統合されたシステムのパフォーマンスは、専用のグラフ並列システムと比べてどの程度か?
  • RQ5グラフ処理とデータ並列処理の抽象化を統合することで、実世界のグラフ分析ワークフローにおけるデータ移動の削減と開発者の生産性向上が達成できるか?

主な発見

  • GraphX は、PageRank や連結成分の検出といった反復的グラフアルゴリズムにおいて、Pregel や PowerGraph といった専用のグラフ並列システムと同等のパフォーマンスを達成している。
  • エンド・ツー・エンドのグラフ分析パイプラインにおいて、データ並列処理とグラフ並列処理の間に外部ストレージを介する組み合わせシステムよりも、GraphX が優れたパフォーマンスを示している。
  • システムは、データ並列処理とグラフ並列処理の操作を1つのフレームワーク内でシームレスに組み合わせられ、データシャッフルやカスタムデータ交換フォーマットの必要性が削減された。
  • GraphX は、わずかなコア演算子のセットのみで Pregel や PowerGraph の抽象化を成功裏に実装しており、その狭いウエスト(narrow-waist)アーキテクチャの表現力の高さを示している。
  • リレーショナル代数とジョイン最適化技術の統合により、特に反復処理間で中間ジョイン結果を再利用することで、グラフ計算の効率的実行が可能になった。
  • 産業界のユーザーは、GraphX を導入したことで、従来のグラフ分析パイプラインと比較して2桁の速度向上を報告しており、実世界でのパフォーマンスメリットが裏付けられた。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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