ppt - 東京大学

Download Report

Transcript ppt - 東京大学

グリッド用シェルGXPの
長時間計算のための拡張
関谷 岳史
田浦 健次朗
(東京大学)
背景
• 複数拠点にまたがった計算資源を使える機
会の増加
– Grid5000
– PLANETLAB
– InTriggerプラットフォーム
• ひとつの大きな計算資源として利用するため
には様々な困難がある
– 拠点間のヘテロ性が主な理由
困難その1
ハードウェア・ソフトウェアの不均一性
• ハードウェアの不均一
– 計算・通信性能の違いによる扱いにくさ
• 負荷をバランスしにくい
– CPUのアーキテクチャの違いにより、バイナリ
ファイルが使いまわせない
• ソフトウェアの不均一
– 利用したいソフトウェアがインストールされていな
い
• インストールに管理者権限が必要なものもある
困難その2
様々に指定された利用方法
• ssh/rsh、torque、SGE etc…
• sshなどのインタラクティブな利用
– 1ノードづつ対話的に使うのには便利
• バッチキューを通しての利用
– 順番が来るまで待たないといけない
– 拠点ごとに別々の管理だと、同時に複数拠点の
ノードをまとめて確保できるとは限らない
困難その3
管理ドメイン・管理ポリシーの違い
• ヘテロ性の解消を阻害
– 管理組織がことなることで、各拠点で環境をそろ
えにくい
• ネットワークセグメントの違いによる通信の難
しさ
– セキュリティの確保のため、外部ネットワークとの
間のファイアウォールの利用
– ネットワーク事情やIPアドレスの不足によるNAT
の利用
グリッド環境で使う場合の
既存のミドルウェアの問題点
• 同一管理ドメインでの利用を想定したもの
– アカウント名の統一
– NFSなどで共有されたファイルシステム
– 全対全通信(NAT・ファイアウォールなし)
• 導入が大変なもの
– 管理者権限でのインストール
– 複雑な設定
GXP [Taura 2004]
• グリッド用のツール
– プロセスマネージャとしてMPD [Butler et al. 2000]
と似た機能を提供
• プロセスの並列起動
• ローカル⇔リモート間のstdioのリダイレクト
– マスターワーカーモデル計算とEPジョブの実行を
サポート
GXPのアプローチ
• なるべく少ない前提条件で動く
– 最小のソフトウェア
– 一般ユーザ権限
• 様々な資源利用方式に対応し、それらをまと
めてインタラクティブに利用できるようにする
• 環境のヘテロ性を隠して、単純なプログラミン
グモデルをユーザに提供
本研究の目的
• GXPを使った長時間計算のための拡張
– 計算実行中のノードの新規獲得・コマンドの投入
– 計算実行中のプロセスの脱退
大きなCPUパワーを得たい人がなるべく少ない
労力で、より簡単にグリッド環境を利用できるように
GXPの特徴(1)
• 導入が簡単
– 最小限のソフトウェアで動く (python + ssh)
– pythonスクリプトなので、コンパイルが不要・イン
ストールはコピーするだけ
– 1つのノードにのみインストールすればOK
• 新しいノードを獲得する際に自分自身をコピーし、自動
的にインストール
– 設定がほとんどいらない
GXPの特徴(2)
• 複数のリモートシェルに対応
– sshなどのインタラクティブシェル
– torqueなどのバッチキュー
• まとめて対話的に利用可能
sshログイン
対話的に
コマンド投入
バッチキューによる
ノード獲得
GXPの特徴(3)
• 最小限の通信で動作
– sshやtorqueなどでユーザ
プロセスを立ち上げ可能で
あれば、ノードを獲得可能 Global Network
• Tree状に多段ログイン
– NAT/Firewallなどによる制
限をうけづらい
Private Network
構成
コマンドの投入
stdioのリダイレクト
gxpc
gxpd
sshd or torque etc.
client
ユーザから見たGXP
• ヘテロな環境の資源をまとめて、直接対話的
に利用可能なノード群に見せる
Firewall
・
・
・
バッチシステム
sshログイン
ノードの獲得
• useコマンド
% gxpc use ssh hongo000 suzuk000
– あるホストから別のホストへのログイン手段を指
示(ssh、torqueなど)
– ログインに用いるユーザ名も指定可能
• exploreコマンド
% gxpc explore hongo[[000-010]]
– useコマンドの指定に従って、実際に指定された
ノードへ接続を試み、デーモンプロセスを立ち上
げる
コマンド投入
• eコマンド
– 選択した各ノードでコマンド実行
– 各ノード⇔コンソール間でstdioをリダイレクト
– unixパイプによるシェルと協調
% cat file | gxpc e ‘cat > local_file’
% gxpc e hostname | sort
マスター・ワーカーモデル
• mwコマンド
– ユーザの作成したマスターをローカル、ワーカー
を各ノードに立ち上げる
– ある決まったファイルディスクリプタを読み書きす
ることで、マスターワーカー間の通信が可能
% mw --master MASTER WORKER
MASTER
WORKER
簡単なマスターワーカーの例
マスター
ワーカー
while True:
(task要求が来るまで
FD3を読む)
(task生成)
(あて先とtaskをFD4へ
書き込み)
while True:
(FD4へtask要求書き
込み)
(自分宛のメッセージが
来るまでFD3を読む)
(task消費)
下位のネットワークを意識せずに、
ローカルのファイルディスクリプタへの書き込みで通信が可能
Embarrassingly Parallel
• epコマンド
% gxpc ep tasks_file
– mwコマンドにより実現
– tasks_fileに書かれたコマンドを順に各ノードへ割
り振り(パラメータスイープジョブを実行可能)
tasks_file
タスク要求
cmd1
task1 cmd1
task2 cmd2
task3 cmd3
cmd2
cmd3
task4 cmd4
cmd4
GXPを用いた長時間大規模計算
• epコマンド・mwコマンドによる長時間大規模
計算
– 自然言語処理・VGXP[鴨志田ら ‘06]など
• 資源の大規模化・計算の長時間化
– 利用可能資源の動的な変化
• バッチキューの順番待ち
• 連続利用時間の制限
– 故障の発生
計算実行中の資源の増減への対応が必要
GXPの拡張
• 長時間計算のための拡張
– 計算実行中のノードの新規獲得・コマンドの投入
• 動的explore
• ノード追加eコマンド
– epコマンド実行中のワーカーの脱退
– それぞれ対話的に行えるよう拡張
• 自律的な資源管理機構と組み合わせも可能
• 利用例:
– バッチキューの順番を待ちつつ、獲得できた他のノードで
計算を始めておく
– 利用時間制限のある拠点からのみプロセスを脱退
ユーザから見た資源の追加
• 通常のexploreコマン
ドと同様に対話的に
資源の追加が可能
• マスタープログラムを
ワーカの増加に対応
するよう記述
マスター
ワーカー
計算資源の脱退
• epコマンドのみに対応
• 脱退の命令を受け取るとタスクをそれ以上要
求しない
– 実行中のタスクが終わり次第、脱退
– 命令を受け取ってから、脱退できるまでの時間は
タスクの粒度による
デモ
• POV-rayによるレイトレーシング
– epコマンドによる並列化
– 全体画像を領域分割し、各プロセスで32*24の画
像をレンダリング(パラメータスイープジョブ)
– 総タスク数1024 ・1タスク5秒程度
• シナリオ
– はじめistbsクラスタで実行開始
– sheepクラスタを計算に追加
– istbsクラスタへのタスクの割り振りを停止
まとめ
• ヘテロなグリッド環境の資源をまとめて使うた
めの手段としてのGXP
– 導入が簡単
– eコマンドやepコマンドによる並列ジョブの実行
• 大規模長時間計算のためのGXPの拡張
– 計算実行中の資源の追加
– コマンドの追加投入
今後の課題
• よりよい耐故障機構の実装
– 現在は下位のネットワークのエラーによって故障
を検知
– 対処はユーザが行う
– ネットワークエラーの起きない故障の検知・対処
• 拡張を利用したよりハイレベルなジョブスケ
ジューラの実装