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の拡張 – 計算実行中の資源の追加 – コマンドの追加投入 今後の課題 • よりよい耐故障機構の実装 – 現在は下位のネットワークのエラーによって故障 を検知 – 対処はユーザが行う – ネットワークエラーの起きない故障の検知・対処 • 拡張を利用したよりハイレベルなジョブスケ ジューラの実装