広域分散 環境に適応した

広域分散環境に適応した
柔軟な資源管理システムの提案
2006.2.17
電子情報工学科4年
近山・田浦研究室
40391 斎藤 大
1
背景

広域分散環境




高性能な計算機・高速なネットワークの普及
大規模並列計算
多数のパラメータでの計算
効率の良い資源管理の必要性

様々なスケジューラが提案
2
背景

よく用いられるシステム:“Batch scheduling system”
→マスタースケジューラがジョブへのリソース割り当てを行う

問題点

柔軟性に欠ける資源の利用方針(排他的なリソース利用)

サポートするプログラミング環境の少なさ

ジョブの実行形式の制限(自由なプロセス起動の禁止)

スケーラビリティ・single point of failure

広域環境における無駄なトラフィック
Job
Job
Job
Job
3
柔軟性に欠ける資源の利用方針

多くの場合各ノードは1プロセスが占有


プロセスの競合を発生させないため
不都合なケース


インタラクティブな(間欠的にCPUを利用する)プロセス
Cycle steeling process(例:SETI@home)



たくさんCPUを使いたいが故に控えめなプロセス
システム管理(特定ノードにのみ関心がある)
動く「場所」が性能にとって重要なプロセス
4
サポートするプログラミング環境の少なさ



ジョブの実行形式の制限がある
多くのbatch schedulerはリクエストに対し
(ユーザに代わって)プロセスを起動する
プログラミング環境(MPI, PVM, RMI…)毎に
プロセス起動方式(ssh, rsh, fork, exec…)が異なる
→プログラミング環境とbatch schedulerが
お互いに対応する必要がある
Job
Job
Job
5
スケーラビリティ・耐故障

スケーラビリティの問題


システム規模の拡大でマスターへの負荷増加
Single point of failure
→マスターの故障でシステムダウン
 ハードの故障
 キューの設定ミス(人為的なミス)
Job
6
広域環境における通信


全てのリクエストを1ノードに集約
局所性の無視


距離に関わらず実行の度にマスターとの通信
NATやfirewallの問題

多くは直接接続が不可能なケースを考慮していない
7
目的

従来のbatch scheduling system

単一のクラスタでの利用を想定



広域な環境へはad hocな対応しかしていない
実行形式に制限がある
目標するシステム


はじめから広域な環境を想定
実行ジョブの制限をしない
広域分散環境に適応した柔軟な
資源管理システムの提案
8
発表の流れ





背景と目的
関連研究
提案手法
実験と評価
まとめ
9
関連研究

Batch queueing system及びそのスケジューラ
[Raman 98]


Gang Scheduling, Co-Scheduling
[Andrea 98, Sobalvarro 97]



1ノード1ジョブを前提
全ノードで同期した時分割共有
並列計算の効率化
両者を組み合わせたシステム


Distributed Queue Tree [Hori 99]
時分割+空間分割
10
提案するシステムの概要



P2P的にグラフを張り、近隣から探索を行う
 スケーラビリティ、局所性の保存
 NAT、firewall越え
各ノードに「全てのプロセス」を監視するデーモンを置く
 自由なプロセス起動を許容する
プロセスの属性「希望占有率」を提案
 希望占有率が低いもの同士を1ノード上で共存
Node
Search
Scheduler
Daemon
11
広域環境でのグラフ構築

ネットワークアドレスを元にクラスタリング




IPアドレスが類似→同一クラスタ内(近接・接続)
ローカルIPしか持たない→NAT・ゲートノードの存在
「自クラスタ内のノード+ゲートノード」で接続
特別な事前設定無しで動作
12
ノード探索


直接接続しているノード間で定期的に
Load average情報交換
グラフに従ってn個の空きノード(ワーカ)探索
Load average<規定値?
 CPU使用率<規定値?(並列にps実行)
この二つを満たすと実行可能なワーカとみなす
全て探索しても足りない場合
上を満たさない(混雑)ノードについて
 ノード上のプロセス状況
スケジューラ
 「ジョブを投入する余裕があるか」を見る

13
ノード探索の流れ
k=3
A
8node
ps
ps B
ps D
ps C
B1
ps
C1
B3 ps
B2
C2 ps
ps
ps
14
ローカルスケジューラ

各ノード上で自律的に動作



ノード上の全ての実行プロセスを管理
ユーザが各プロセスに ‘希望占有率’を設定
nice値を調整、CPUを振り分ける
 OS内部でのプロセス優先度=20 – nice
nicei  20  20
CPUi
max(CPU )
15
ローカルスケジューラ


占有したいのか、邪魔していいのか
ノード探索システムへ



どの占有率のプロセスが
どれだけ走っているか、を返す
例)低占有率のプロセスのみだったら
実行可能なワーカとみなす
16
ユーザから見た動作




引数に実行したいプログラムを与えると
n個のワーカで実行
引数無しだと、ワーカのホスト名リストを文字列
で返す
→応用(MPIなど)
Parameter Sweepに対応
全ノード探索して十分なワーカが見つからない
時、初めてキューに追加
17
実験:負荷分散


情報理工 istbsクラスタ 190ノード管理
10,20,30,…190台のワーカ取得、hostname
1-64で低占有率×1、70-75で高占有率×3
3.5

空きノード優先
低プロセスのみ
なら実行可能
とみなす
2.5
2
1.5
低占有率
1
0.5
高占有率
0
0
10
20
30
40
50
60
70
80
9
10 0
0
11
0
12
0
13
0
14
0
15
0
16
0
17
0
18
0

load average
3
20
18
16
14
12
10
8
6
4
2
0
実行回数

ノードID
18
実験:スケジューラによる選択





20ノード管理(×2CPU)
10ノードでは高占有率プロセス(fib(35))を2つ、
10ノードでは低占有率プロセスを2つ走らせる。
CPU使用率200%、Load average≒2.0
更に10個のプロセス投入
低占有率プロセスが稼動しているノードのみが
選ばれた
19
実験:マスターへの高負荷



120ノード管理
本システムと同等の動作をするマスターワー
カー型システムとの比較
複数のユーザが同時に10台のワーカ取得し
それぞれのワーカ上でhostname
2.5
同時アクセスが
発生しても
性能変わらず
実行時間(s)

MasterWorker
本システム
2
1.5
1
0.5
0
0
5
10
同時ユーザ数
15
20
20
まとめ

資源管理システムの提案




基本は空いているノード探索
混雑時、占有率に従ったノード選択
アクセスの集中が発生しない(スケーラブル)
今後の課題



システム全体の高速化
同時起動の問題
空きが見つからないときのキューの設計
21