分散アプリケーションを支援した カーネル レベル バジェット スケジューラの設計と実装 近山・田浦研究室 50374 グェン トアン ドゥク 背景 計算資源が膨大、分散している 資源をユーザで共通 資源を効率的に利用ために、うまくスケジュール 必要 目的 広域分散資源管理システムのスケジューラ 効率的にリソースを利用 並列アプリケーションをサポート ユーザ間の平等性を保つ Interactiveプロセスをサポート 関連研究 Fair share scheduler Batch queuing system (PBS, SGE…) Co-scheduling, gang-scheduling Fair share scheduler 各ユーザの間の平等性を保つ 実装の仕方は色々 例: fixed-budget model: Budgetを各ユーザに配り、ユーザのプロセスが実行される ときに、コストがかかって、budgetが減る。Budgetが0の ユーザのプロセスは実行されない 単にbudgetとコストを使うと、並列アプリケーショ ンに向かない Batch queuing system Jobsをqueueに入れて、リソースがあったら実行 するシステム 例: PBS, SGE 効率的にリソース利用のが難しい。負荷集中 Running job Job3 Job2 Job1 Job4 Job n Running job Gang scheduling, co-scheduling 並列アプリケーションのためのスケジューリング 並列アプリケーションのプロセスをgroupに同時にス ケジュール スケジュールされたアプリケーションのプロセスが占 有的に資源を使用 ユーザ間の平等性はあまり考えない 分散環境でのコストが大きい 提案手法 Fixed-budget model のように、 ユーザは各プロセスの優先度を直接設定可能 並列と逐次計算アプリケーションを区別 カーネル レベルで実装 各ユーザはbudgetを持つ、スケジューラはcharging 平等性 Interactive プロセスを対応 リソースを効率的に利用 各ノードのスケジューラは独立 負荷集中なし 平等性 「平等性」の定義は難しい 使用時間が同じなら平等 Interactive processは? 短CPU時間プロセスを常に優先 どう判断する? ユーザの目的に応じて平等性が違う 正確的に平等ではないが、目的に応じての平等 が必要 variant price と fixed-budget Price設定可能 Priceはプロセスのdynamic priority 普通のOSでは設定できない Fixed-budgetであれば、price設定が可能 プロセス間の平等を保てない ずっとCPU独占できないから Dynamic priorityをユーザが決めれば、並列ア プリケーションを一定の時間で優先できる 全ノードで同時に優先すれば、co-schedulingの効果 Interactiveプロセスの対応 Batch queuing systemでinteractiveプロセスの 支援が難しい Queueで待たせる ノード探す時間がかかる カーネル レベルで実装すれば、すぐinteractive プロセスをスケジュール可能 分散したスケジューラ 全ノードのリソースを管理するのは大変 各ノードでスケジューラが制御 同時にノードを取得したい時に、 負荷集中なし 空いているノードを探索 高いpriceを設定 分散してもシステムの全体を協調可能 システムの構成 Budget スケジューラ 各ノードで独立に動作 リソース探索システム 各ノードの負荷情報、最大、最小priceの情報を提供 全ノードで集計するにはGXPを使う Budget scheduler Normal mode と budget mode CPU intensiveなプロセス budget mode 普通のプロセス normal mode 実行しているうちにmodeを変更させる Normal modeのプロセスは常に優先される Interactive processはこのモード CPU intensiveなプロセスはpriceを高くすれば 一時的にCPU独占可能 ノード検索システム 簡単なプログラム 各ノードで実行されて、情報を提供 負荷、CPU utilization, 最大、最小price… 全ノードの集計のために、GXPを使う 評価 Interactivity 並列アプリケーションのperformance ユーザ間の平等 Interactive プロセスの性能 メッセージping-pongテスト Budget scheduler と普通のLinux 2.6 schedulerで の round-trip timeを比較 CPU intensiveなプロセスが無い時 同じユーザのCPU intensiveなプロセスが backgroundにあった時 Round-trip time(us) Round-trip time (backgroundプロセスなし) 700 Budget scheduler disabled 600 Budget scheduler enabled 500 400 300 200 100 0 0 20 40 60 Message number 80 100 Round-trip time (infinite-loopがbackground で実行) Time(us) 400 350 Budget scheduler disabled 300 Budget scheduler enabled 250 200 150 100 50 0 0 20 40 60 80 Message number 100 120 NAS Parallel Benchmarksの結果 EP benchmark: CPU intensive, 4 nodes 300 Budget scheduler disabled 250 Budget scheduler enabled Time(s) 200 150 100 50 0 0 1 2 3 Number of background processes at each node 4 IS benchmark (計算と通信性能): 4 nodes 25 Budget scheduler disabled Budget scheduler enabled Time(s) 20 15 10 5 0 0 1 2 3 Number of background proceses at each node 4 ユーザ間のCPU割り当て 3 users: A, B, C A: 1つのプロセス A1 だけ実行 B: 2つのプロセス B1, B2 C: 3つのプロセス C1, C2, C3 全てのプロセスは同じコード: infinite loop 10億回のvariable update の時間を測定 各プロセスの実行時間 700 600 Time(s) 500 400 300 200 100 0 A B1 B2 Process C1 C2 C3 結論 並列分散アプリケーションを支援したスケジュー ラシステムを提案した 専用でないクラスタでの並列アプリケーションの性能 を専用クラスタと同じようにできた Interactive プロセスを支援 ユーザ間の目的に応じての平等性を実現した 今後の課題 Co-scheduling 効果は1 epochだけにあった Budget が間もなく無くなったときに、空いている ノードまでのプロセスmigration その後同期しないと消える Co-scheduling効果を維持する必要 ユーザモードでbudget run-out signal handlerでやる 実際のクラスタに運用して、正確な評価をする
© Copyright 2024 ExpyDoc