7. リモートジョブ¶
リモートジョブ投入機能を用いると、Winmostarをインストールしたマシンとは別のLinuxマシン( リモートサーバ と呼ぶ)でソルバを実行することが可能になります。
7.1. 対応するジョブスケジューラ¶
V9.2.2時点でWinmostarが対応するジョブスケジューラは以下の通りです。カスタマイズサービス Winmostar for you においてご希望のジョブスケジューラに追加対応させることも可能です。
- TORQUE (PBS)
- SGE, UGE
- SLURM
- T2SUB
- llsubmit
- NQS
- NQS2
- ST
- NSUB
- Rescale
- Winmostar Job Manager
TSUBAME3.0を利用する場合はSGEを選択する。
対応するジョブスケジューラがリモートサーバにインストールされていない場合は、以下の方法でリモートジョブを実行することができます。
- qsub , qstat などのコマンドを模倣するコマンド、スクリプトを用意し、必要に応じてそれらのコマンドの接頭辞を Prefix for Queueing Commands で指定する。
- Queue の設定で
Run
を選択する。
7.2. リモートジョブの実行手順¶
各機能の詳細は Submit Jobウィンドウの各機能 を参照してください。
計算を実行したいサーバに、ジョブスケジューラとソルバをセットアップしてください。
これからインストールする場合は、 こちら を参考にしてください。
ジョブのスケジューリングを使わずにジョブを実行する場合、ジョブスケジューラのセットアップは不要で、 Queue の設定において
Run
を選択してください。
- 基本的な操作の流れ の1, 2の手順に従い初期条件の作成とキーワードの設定を行い、キーワード設定ウィンドウを OK ボタンを押して閉じます。
- ツールバーの リモートジョブ投入 ボタン をクリックします。
Submit Remote Job ウィンドウにおいて、すでに設定が済んでいる Profile が選択されているときは、 こちら に進みます。されていない場合は、 を選択します。
Edit Profile ウィンドウ上部にて、以下の内容を入力します。
Profile Name
Connection
- Hostname
- Port(通常は22を使用)
- Timeout(わからない場合はデフォルト値を使用)
- Username
- Password
- SSH Key(必要に応じて設定)
TSUBAME、FOCUSなどに多段SSH接続する方法は https://winmostar.com/jp/manual_jp.html を参照してください。
入力後、SSH接続をテストするために、 Edit Profile ウィンドウ下の Test Connection ボタンをクリックします。
黒いターミナルウィンドウが開き、初回接続時は、
Store key in cache? (y/n)
と表示される。その場合は、 y とキー入力する。接続に成功した場合は、先ほどの Submit Remote Job ウィンドウの下部に
Connection test succeeded.
と表示されます。ユーザ設定等が間違っている場合はターミナルウィンドウで
Access denied ***@***'s password:
などど表示されます。その場で正しいパスワードを入力した場合も、再度 Edit Profile ウィンドウでパスワードを再入力してください。その他、 Submit Remote Job ウィンドウの下部に
ERROR: Connection timed out or an error occurred.
と表示された場合は、接続設定を見直してください。
Edit Profile ウィンドウ下部にて、以下の内容を入力します。
Queue & Solver
- Queue
- Solver
- Shell Script
- Options( qsub 等のジョブをサブミットするコマンドの引数)
まず接続するサーバ上にインストールされたジョブスケジューラを Queue を選択し、その上で使用するソルバを Solver で選択します。 次に、 Shell Script の Use Template をクリックします。 選択したソルバのテンプレートがない場合は、テンプレートの名前を入力すると、テンプレートがテキストエディタで開かれます。 ある場合は、 Use Template の横のプルダウンメニューで使用したいテンプレートファイルを選択し、その下の Edit... ボタンをクリックするとテンプレートファイルがテキストエディタで開きます。 テンプレートファイルには、 module load ... 、 source ... 、 export PATH=... などのコマンドや、 mpirun などの、そのサーバで選択したソルバを使用するための設定を書き入れます。
利便性を上げるため、テンプレートファイルや Options には、個々のジョブに依存する並列数やファイル名などの設定がジョブ実行時に代入されるエイリアスの形で入力することを推奨します。詳細は リモートジョブ機能で使用可能なエイリアス文字列 を参照してください。
- OK ボタンを押して Edit Profile ウィンドウを閉じます。
Submit Remote Job ウィンドウで、 メニューをクリックし、ウィンドウ下部にリモートサーバの情報が表示されることを確認します。
正常に表示されない場合は、
で設定を見直します。
- ジョブを開始するために、 Send & Submit ボタンをクリックします。ここでの操作方法は、通常のローカルジョブと同じです。
ウィンドウ下部には、サブミットしたジョブのIDが表示されます。IDはジョブをキャンセル(kill)するときに使用します。
リモートサーバでジョブが実行されたディレクトリは、 Remote Directory で設定することができ、 実際使用されたものは Submit Remote Job ウィンドウの Remote Directory 欄に表示されます。
のジョブがリモートサーバ上で開始されると、標準出力は
winmos.o
、標準エラーはwinmos.e
というファイルにそれぞれ出力されます。
- サブミットしたジョブの状況は、
---
と表示されます。
で確認してください。全てのジョブが完了した場合は
サブミットしたジョブがあまりに早く終了した場合は、サブミットした直後であっても---
と表示されます。
- リモートサーバ上の特定のジョブの状況を確認するときは、以下の操作を行ってください。
- ls ボタン
- cat ボタン
- grep ボタン
- tail ボタン
- Get & Open ... ボタン
操作対象のジョブは、 Remote Directory 欄に表示されたものとなります。デフォルトの設定の場合は、メインウィンドウで対象としたいジョブの入力ファイルを開き、ジョブ投入時のプロファイルを選択してください。
- リモートサーバ上で終了したジョブの結果解析をローカルマシンで実行したい場合は、 Get All Files ボタンをクリックします。
操作対象のジョブは、 Remote Directory 欄に表示されたものとなります。デフォルトの設定の場合は、メインウィンドウで対象としたいジョブの入力ファイルを開き、ジョブ投入時のプロファイルを選択してください。
- ファイル取得後は、ローカルジョブと同じ操作方法で結果解析を実施することができます。
7.3. Submit Jobウィンドウの各機能¶
- Fileメニュー
- Revert All Changes
- 変更を破棄しサーバ設定ファイルを読み込み直します。
- Save Setting File
- サーバ設定ファイルを上書き保存します。
- Import Setting File
- サーバ設定ファイルを読み込み、その中に含まれているプロファイルを、既存のプロファイルのリストに追加します。
- Restore Setting File
- サーバ設定ファイルを出荷時の状態に戻します。
- Close
- このウィンドウを閉じます。
- Profileメニュー
- Add Profile, Duplicate Profile, Remove Profile
- サーバ接続のプロファイルを追加、複製、削除します。 ウィンドウ内の Manage ボタンからも同様の操作が可能です。
- Edit Profile
サーバ接続のプロファイルを編集します。 一部の設定はSubmit Jobウィンドウ内で直接編集できます。
- Profile name
- Submit Jobウィンドウで表示されるプロファイル名を指定します。
- Hostname
- リモートサーバのホスト名またはIPアドレスを指定します。
- Port
- 接続に用いられるポート番号を指定します。
- Timeout
- リモートサーバからの応答が無い際に、接続を自動的に切断する時間[単位:秒]を指定します。
- Username
- リモートサーバへのログインID(ユーザ名)を指定します。
- Password
- ログインIDのパスワードを指定します。[View]をクリックするとパスワードの非表示が解除されます。
- SSH Key
- 必要に応じてSSHキーを設定します。
- Queue
- 接続するリモートサーバ上で稼働しているジョブスケジューラの種類を選択します。
- Solver
このプロファイルにおいて使用するプログラムを選択します。
ウィンドウ内でも変更可能です。
- Shell Script
デフォルトのシェルスクリプトを使用して計算を実行する場合は Use Default 、シェルスクリプトをカスタマイズする場合は Use Template をチェックします。 Use Template の場合はその横のプルダウンメニューで使用するテンプレートファイルを選択し、またテンプレートファイルを追加、編集、削除する場合はその下の Add , Edit Remove ボタンをクリックします。
テンプレートファイルの中では、 リモートジョブ機能で使用可能なエイリアス文字列 を使用可能です。
テンプレートファイルはWinmostarのインストールフォルダの
UserPref
の中に保存されます。ウィンドウ内でも変更可能です。
- Options
ジョブ投入コマンド(qsubなど)の後ろに与える引数を設定します。
本項目には リモートジョブ機能で使用可能なエイリアス文字列 を使用可能です。
ウィンドウ内でも変更可能です。
- Remote Directory
リモートサーバの作業ディレクトリを指定します。空の場合はホームディレクトリから(Local User ID)/(プログラム名)/(ファイル名)が作業ディレクトリになります。 Local User IDは操作中のWindowsにおけるユーザ名で、Submit Remote Jobウィンドウのタイトルに表示されます。Local User IDに全角文字や半角スペースが含まれている場合は、内部的に半角英数文字に変換されてディレクトリ名が設定されます。 '/work/dir' のようにシングルクォーテーションで囲うと、指定したディレクトリから
(Local User ID)/(プログラム名)/(ファイル名)
を作成します。 また、 ''/work/dir'' のようにシングルクォーテーションを2個づつで囲むと、(Local User ID)のディレクトリは作成されません。本項目には リモートジョブ機能で使用可能なエイリアス文字列 を使用可能です。
- Prefix for Queueing Commands
- qsubなどのコマンドの実行時に、それらのコマンドの接頭辞が必要な場合はここに設定します。通常は空にします。
- Test Connection
- SSHの接続テストを行います。 ジョブスケジューラのテストは行わないので注意してください。
- Connectionメニュー
- Test Connection Using SFTP
SSHの接続テストを行います。
ウィンドウ内の Test Connection ボタンでも同様の操作が可能です。
- Share SSH Connection Once Established
- SSH接続を持続させるときに使用します。 SSH接続を伴う操作の前に一度実行しておくと、それ以降の操作が軽快になります。
- Open Putty
- Puttyの設定ウィンドウを開き、接続に関する詳細な設定を行います。
- Do Not Use Putty for Connection(experimental)
- Putty接続にPuttyを使用しません。 接続を保持するため、動作が軽快になります。 鍵認証での接続では、公開鍵の指定も必要です。
- Jobメニュー
- Send Local Files & Submit Job
計算に必要な入力ファイルを生成し、SFTPでリモートサーバに転送した後、ジョブスケジューラにサブミットします。 サブミットした後ジョブのIDが表示されます。
ウィンドウ内の Send & Submit ボタンでも同様の操作が可能です。
- Submit Job
- 計算に必要な入力ファイルを生成し、SFTPでリモートサーバに転送します。
- List Files at Remote Directory
Remote Directory内のファイル一覧を取得します。
ウィンドウ内の ls ボタンでも同様の操作が可能です。
- Display Remote File
Remote Directory内の選択したファイルの内容を取得します。
ウィンドウ内の cat ボタンでも同様の操作が可能です。
- Display Last Part of Remote Log File
Remote Directory内のログファイルの末尾を取得します。
ウィンドウ内の tail ボタンでも同様の操作が可能です。
- Search String in Remote Log File
Remote Directory内のログファイルの中から文字列を検索します。
ウィンドウ内の grep ボタンでも同様の操作が可能です。
- Restert Terminated Job
- ジョブスケジューラなどによりリモートジョブが強制的に中断された場合、本機能で計算を再開します。
- Force Job Finalization
- 計算の異常終了により全てのファイルが生成されず、 Get All Remote Files が正常動作しない場合、本機能を実行すると強制的に終了処理が実行され、 Get All Remote Files を実行できるようになります。
- Get Remote File and ...
Remote Directory内の特定ファイルをgetして可視化します。
ウィンドウ内の Get File & ... ボタンでも同様の操作が可能です。
- Queueメニュー
各メニュー名に括弧書きで、選択されたジョブスケジューラにおける具体的なコマンド名が表示されます。
- List Submitted Jobs
ジョブスケジューラに登録されたジョブの一覧を取得します。
ウィンドウ内の同じコマンド名のボタンでも同様の操作が可能です。
- Kill Submitted Job
ジョブスケジューラに登録されたジョブを中断します。サブミットした直後に表示されたジョブのIDを入力する必要があります。
ウィンドウ内の同じコマンド名のボタンでも同様の操作が可能です。
- List Submitted Jobs in Detail
ジョブスケジューラに登録されたジョブの詳細な一覧を取得します。
ウィンドウ内の同じコマンド名のボタンでも同様の操作が可能です。
- Show Information of Each Queue
ジョブスケジューラが管理するキューの一覧を取得します。
ウィンドウ内の同じコマンド名のボタンでも同様の操作が可能です。
- Show Usage of Each Queue
各キューの使用状況を取得します。
ウィンドウ内の同じコマンド名のボタンでも同様の操作が可能です。
- Show Information of All Nodes
ジョブスケジューラが管理する全マシンの情報を取得します。
ウィンドウ内の同じコマンド名のボタンでも同様の操作が可能です。
- その他のメニュー
- 項目名と同じコマンドがリモートサーバ上で実行されます。
- Optionsメニュー
- Enable Admin Mode
- ルート権限でリモートサーバにアクセスする際に使用します
7.4. リモートジョブ機能で使用可能なエイリアス文字列¶
ジョブ実行時に使用するシェルスクリプトやサブミットコマンドの引数は、計算条件に応じて動的に変化する場合があるため、その様な状況に対応するためにエイリアス文字列を使うことができます。
使用可能なエイリアス文字列の一覧を以下に示します。
%WM_USER_ID% | リモートディレクトリ作成用ローカルユーザID |
---|---|
%WM_SOLVER% | ソルバの種類 |
%WM_INPUT% | 入力ファイル名 |
%WM_PREFIX% | 入力ファイル名から拡張子を除いたもの |
%WM_EXT% | 入力ファイル名の拡張子 |
%WM_NUM_PROC% | CPU(MPI)並列数 |
%WM_NUM_THREAD% | Thread並列数 |
%WM_NUM_PARALLEL% | %WM_NUM_PROC%と%WM_NUM_THREAD%の積 |
7.5. リモートジョブの設定ファイル¶
プロファイルの設定は、Winmostarのインストールフォルダの UserPref\winmos_profile.ini
に保存されます。
読み込む際には、V8以前の旧バージョンとの互換性維持のため、以下の優先順位で読み込まれます。
UserPref\winmos_profile.ini
> UserPref\winmos_server.ini
> wm_system\RemoteJobdefault_profile.ini
7.6. Windowsサーバの利用方法¶
V9.2.2からはリモートサーバでWindows PCを使用することができます。 使用するには下記のような事前準備が必要です。
- リモートサーバにOpenSSHサーバをインストールしてクライアントからSSHで接続できるようにします。
- リモートサーバにWinmostarをインストールしてWinmostarジョブマネージャを常に起動しておきます。
下記のように設定します。
- Profile編集画面でQueueにJM(Windows)を選択します。
- Winmostar PathにリモートサーバにインストールされているWinmostarのパスを設定します。
- デフォルトのシェルスクリプトは使えないので、Use Templateを選択しテンプレートファイルを作成します。Windows上で動作するバッチファイルの内容にします。
下記のような他のジョブスケジューラとの操作上の違いがあります。
- Test Connection ボタンを押した時にジョブマネージャが起動しているかのチェックも行います。
- List Jobs ボタンで表示される情報はジョブマネージャと同じで左から番号、状態、優先度、コア数、ジョブID、開始日時、終了日時、バッチファイルです。
- Delete Job ボタンでジョブを取り消す場合はジョブIDを入力します。