Skip to main content
QUICK REVIEW

[論文レビュー] Enabling Operator Reordering in Data Flow Programs Through Static Code Analysis

Fabian Hueske, Aljoscha Krettek|arXiv (Cornell University)|Jan 17, 2013
Cloud Computing and Resource Management参考文献 9被引用数 6
ひとこと要約

本稿では、逆方向のデータフローや制御フロー解析を通じて、フィールドのプロジェクション、コピーや書き込みといった演算子の性質を自動的に推論することにより、データフロー・プログラムにおける代数的演算子の再順序付けを可能にする静的コード解析手法を提示する。この手法は、命令型のデータフロー・システムにおいてリレーショナル代数最適化を安全にエミュレートし、最小限のパフォーマンスオーバーヘッドで正確な競合検出を実現する。

ABSTRACT

In many massively parallel data management platforms, programs are represented as small imperative pieces of code connected in a data flow. This popular abstraction makes it hard to apply algebraic reordering techniques employed by relational DBMSs and other systems that use an algebraic programming abstraction. We present a code analysis technique based on reverse data and control flow analysis that discovers a set of properties from user code, which can be used to emulate algebraic optimizations in this setting.

研究の動機と目的

  • 現代のデータフロー・システムが命令型のユーザ定義関数(UDFs)を採用している中で、代数的最適化のサポートが不足している問題に対処すること。
  • UDFの隠れた意味的性質を露呈させることで、データフロー・プログラムにおける演算子の安全な再順序付けを可能にすること。
  • 自動コード解析を通じて、データフロー・プログラミング・モデルとリレーショナル代数最適化の間のギャップを埋めること。
  • 手動のアノテーションを必要とせず、再順序付けによるパフォーマンス向上を実現する保守的でスケーラブルな解析を提供すること。

提案手法

  • UDFに対して逆方向のデータフローおよび制御フロー解析を実行し、読み取り、書き込み、コピー、プロジェクションが行われるフィールドの集合を計算する。
  • メモ化を用いた再帰的訪問により、データ競合と元情報の検出を実施し、ループが存在しても安全に終了する。
  • 使用-定義および定義-使用チェーンの保守的近似を計算することで、フィールド依存関係と元記録を追跡する。
  • 制御フローエッジと潜在的なループ反復回数の分析を通じて、emitのカーディナリティの下限および上限を導出する。
  • 再計算を避けるためにメモテーブルを維持し、有限時間内に終了を保証する。
  • プロジェクション、コピーや明示的書き込み集合といった推論された性質により、データフロー・パイプラインにおける演算子の安全な再順序付けが可能になる。

実験結果

リサーチクエスチョン

  • RQ1データフロー・プログラムにおける命令型UDFの静的解析が、代数的演算子再順序付けに必要な性質を信頼性高く推論できるか。
  • RQ2手動のアノテーションなしに、データフローと制御フロー解析を統合することで、UDF内でのフィールドレベルのデータ競合を検出できるか。
  • RQ3提案手法が、保守的であることで正しさを保証しつつ、最適化の可能性をどの程度保持できるか。
  • RQ4自動的に推論された性質の精度が、手動アノテーションによるものと比較してどの程度か。
  • RQ5実際のデータフローワークロードにおける、解析のパフォーマンスオーバーヘッドとスケーラビリティはいかがなっているか。

主な発見

  • 提案された静的解析手法は、フィールドレベルのデータ競合を非常に高い精度で推定しており、手動アノテーションによる結果と密接に一致する。
  • 保守的近似により安全が保証されており、再順序付けがプログラムの意味を変更しないことを保証する。
  • 使用-定義チェーンが事前に計算済みであると仮定した場合、解析はO(en)時間で終了する。ここでnはUDFのサイズ、eはemitステートメントの数を表す。
  • アルゴリズムは、フィールドのプロジェクション、コピーや明示的書き込みを正しく同定でき、プッシュダウン選択やジョイン再順序付けといったリレーショナル代数最適化のエミュレーションを可能にする。
  • 本手法は、MapReduceスタイルのUDFを用いるシステム、例えばStratosphere、Hadoop、およびその他のデータフロー・プラットフォームに対しても再順序付けをサポートする。
  • メモ化と早期終了を伴う再帰的訪問により、ループや複雑な制御フローに対しても頑健である。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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