Skip to main content
QUICK REVIEW

[論文レビュー] Distributed GraphLab: A Framework for Machine Learning in the Cloud

Yucheng Low, Joseph E. Gonzalez|arXiv (Cornell University)|Apr 26, 2012
Graph Theory and Algorithms参考文献 34被引用数 91
ひとこと要約

この論文は、クラウドにおけるスケーラブルな機械学習およびデータマイニングを可能にする高水準なフレームワーク、Distributed GraphLabを紹介する。これは共有メモリ型のGraphLab抽象化を分散システムへ拡張したもので、パイプライン化されたロック、データバージョニング、および新しい原子グラフ(atom graph)を用いたデータ配置により、非同期的かつ動的でグラフ並列処理を効率的に行う。その結果、Hadoopよりも20–60倍の性能向上を達成し、Amazon EC2上での手動最適化されたMPIシステムと同等の性能を発揮した。

ABSTRACT

While high-level data parallel frameworks, like MapReduce, simplify the design and implementation of large-scale data processing systems, they do not naturally or efficiently support many important data mining and machine learning algorithms and can lead to inefficient learning systems. To help fill this critical void, we introduced the GraphLab abstraction which naturally expresses asynchronous, dynamic, graph-parallel computation while ensuring data consistency and achieving a high degree of parallel performance in the shared-memory setting. In this paper, we extend the GraphLab framework to the substantially more challenging distributed setting while preserving strong data consistency guarantees. We develop graph based extensions to pipelined locking and data versioning to reduce network congestion and mitigate the effect of network latency. We also introduce fault tolerance to the GraphLab abstraction using the classic Chandy-Lamport snapshot algorithm and demonstrate how it can be easily implemented by exploiting the GraphLab abstraction itself. Finally, we evaluate our distributed implementation of the GraphLab abstraction on a large Amazon EC2 deployment and show 1-2 orders of magnitude performance gains over Hadoop-based implementations.

研究の動機と目的

  • MapReduce や Pregel といった既存のフレームワークが、機械学習およびデータマイニングの非同期的かつ動的でグラフ並列処理をサポートする点に限界があることに対処すること。
  • 共有メモリ型の GraphLab 抽象化を分散環境へ拡張することと、強いデータ一貫性と高い並列性能を維持すること。
  • グラフベースのデータバージョニングとパイプライン化されたロックを用いて、分散実行におけるネットワーク混雑と遅延を軽減すること。
  • Chandy-Lamport スナップショットアルゴリズムを用いたフェイルセーフを、GraphLab 抽象化内でネイティブに表現可能であるように実装すること。
  • 512プロセッサのEC2クラスタを用いた大規模な評価を通じて、Hadoop、Pregel、MPIと比較して顕著な性能向上を示すこと。

提案手法

  • 効率的な負荷分散とデータイングレッションを実現するための2段階パーティショニング方式を用いて、GraphLab 抽象化を分散システムへ拡張する。
  • グラフ構造データを分散ノード間で迅速かつ局所性に配慮した配置が可能な「アトムグラフ」を導入する。
  • ネットワーク遅延を隠蔽し、ロックエンジンにおける動的優先順位付け実行を可能にする、パイプライン化された分散ロックを採用する。
  • 静的スケジューリングと順序一貫性を実現する部分的に同期的なクロミックエンジンを実現するためのグラフ彩色法を用いる。
  • Chandy-Lamport に基づく同期的および非同期的な2つのスナップショット方式を実装し、両方ともGraphLabプリミティブでネイティブに表現可能である。
  • データバージョニングを最適化することで、分散環境におけるネットワーク混雑を低減し、スケーラビリティを向上させる。

実験結果

リサーチクエスチョン

  • RQ1データ一貫性と高い性能を維持しつつ、GraphLab 抽象化を分散環境へ効果的に拡張できるか?
  • RQ2分散グラフ並列処理において、ネットワーク混雑と遅延をどのように軽減できるか?
  • RQ3標準的な分散アルゴリズムを用いて、フェイルセーフをGraphLab 抽象化に効率的に統合できるか?
  • RQ4同期的またはバッチベースのアプローチと比較して、動的かつ非同期的処理が機械学習アルゴリズムの収束にどの程度寄与するか?
  • RQ5実世界のワークロードにおいて、Distributed GraphLab の性能は Hadoop、Pregel、および手動最適化されたMPI実装と比べてどの程度優れているか?

主な発見

  • 512プロセッサのAmazon EC2クラスタ上で、Distributed GraphLabはHadoop/MapReduce実装と比較して20–60倍の性能向上を達成した。
  • フレームワークは、熟練した手動最適化が施されたMPI実装と同等の性能を発揮し、分散実行における高い効率性を示した。
  • Netflix推薦タスクの実験では、動的処理によるGraphLabが、バッチ処理や同期的アプローチと同等のテスト誤差に到達するまでに更新回数を約半分に抑えた。
  • Amazon EC2上での価格性能比において、GraphLabはHadoopよりも顕著に優れており、細分化された課金モデルで測定された。
  • パイプライン化されたロックと遅延隠蔽を備えたロックエンジンにより、一般のグラフ構造において非同期実行が効率的に行え、動的ワークロードでは同期モデルを上回った。
  • Chandy-Lamport スナップショットを用いたフェイルセーフは、成功裏に実装され、GraphLabプリミティブでネイティブに表現可能であるため、デプロイと正しさの保証が簡素化された。

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

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

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

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