14
Quincy: Fair Scheduling for Distributed Computing Clusters (SOSP’09) を読む @peryaudo 第4回 システム系論文輪読会 #system_reading

Quincy: Fair Scheduling for Distributed Computing Clusters (SOSP’09) を読む

Embed Size (px)

Citation preview

Quincy: Fair Scheduling for Distributed Computing Clusters

(SOSP’09) を読む@peryaudo

第4回 システム系論文輪読会 #system_reading

• 自己紹介

• 論文を選んだ理由

概要• クラスタ上でのジョブのスケジューリング

• Fine-grainedなジョブを対象

• データ局所性と公平性の両立

• 最小費用流(Minimum Cost Flow)問題に帰着

• Microsoft Research Silicon Valley

Fine-grained vs. coarse-grained• Quincyの対象: Fine-grained allocation

• 例: MapReduce, Hadoop, Dryad, …

• 開始時に全てのワーカーを立ち上げなくてよい

• ワーカーが異常終了しても問題はない

• Coarse-grained allocation

• 例: MPI

• 開始時に全てのワーカーが立ち上がっている必要がある

• 何れかのノードが異常終了すると全体が異常終了する(原則)

データ局所性• データ並列性の高いタスクを実行したい

• MapReduce, Hadoop, Dryad, …

• クラスタ上の分散FSに対象データが保管されている

• GFS, HDFS, TidyFS, …

• ネットワーク帯域は相対的に貴重→なるべく該当データを持っているノード上で ジョブを実行したい

公平でないスケジューリング• 1つのキューを用いた方法

• 複数キューを用いた貪欲法

(論文中から引用)

公平性• あるジョブがクラスタ全体を占拠しては困る

• データ局所性と公平性はトレードオフ

• 複数キューを用いた貪欲法を拡張してもよいが…

• ヒューリスティクスに基づかない方法は?

• 優先度ベースの既存ジョブの停止を実装するには? (プリエンプション)

提案手法: 最小費用流を使う• 最小費用流(Minimum Cost Flow)問題

(「プログラミングコンテストチャレンジブック」から引用)

最小費用流問題• フローネットワーク

• 有向グラフを考える

• 複数の始点と単一の終点S(Sink)が与えられる (Quincyの場合)

• 各辺には最大流量cと単位流量あたりのコストdが定義

• 始点から終点まで流量fを流した時の最小コストは?

最小費用流問題の解法• いくつもの解法が存在

• 残余グラフを用いた単純なアルゴリズム

• f回Bellman-Ford法を適用: O(f|E||V|) (fは流量の総和)

• 論文で用いられているアルゴリズム

• O(O(VElog(VP)log(V^2/E))(Pは辺コストの最小値,どちらも最悪時間計算量)

グラフの構築• r: マスター

• w: ワーカー

• U: 未実行

• X: クラスタ

• R: ラック

• C: コンピュータ

• S: 終点ノード(論文中から引用)

ベンチマーク

まとめ• データ局所性と公平性を両立

• 辺コストとして様々な条件を組み込める

• ラック間の具体的通信コスト

• 中断のコスト

• 優先度の高いジョブ etc.

• スケジューリングに要するコストが予測可能

参考文献• Isard, M., Prabhakaran, V., Currey, J., Wieder, U., Talwar, K., & Goldberg, A. (2009, October). Quincy: fair scheduling for distributed computing clusters. In Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles (pp. 261-276). ACM.

• Schwarzkopf, M., Konwinski, A., Abd-El-Malek, M., & Wilkes, J. (2013, April). Omega: flexible, scalable schedulers for large compute clusters. In Proceedings of the 8th ACM European Conference on Computer Systems (pp. 351-364). ACM.

• 秋葉拓哉, 岩田陽一, & 北川宜稔. (2010). プログラミングコンテストチャレンジブック.