last updated on 09 October 2023

ホストの設定

このページではリモートホストを各環境に合わせて設定する方法について説明していきます。 リモートホストは、OACIS実行ホストから(1)パスワードなしでSSH接続でき、(2)xsub導入済みであることが必要です。


ジョブスケジューラ経由でのジョブ投入の仕組みについて

一般的にHPCやクラスタを使用するときにはTorqueなどのジョブスケジューラを経由してジョブを実行します。

ジョブスケジューラに投入する際には確保するノード数などを指定して実行する必要がありますが、ジョブの投入方法やパラメータの指定方法がシステムによって大きく異なります。 そこでOACISではジョブスケジューラの差異を吸収するために、 xsub またはxsub_py というラッパスクリプトを経由してジョブ投入します。 xsubコマンドは各実行ホストに事前に設定しておく必要があります。

xsubの導入方法はxsubのページまたはxsub_pyのページを参照してください。(xsubはRubyで、xsub_pyはPythonで実装されたxsubコマンドです。) インストール後には xsub, xstat, xdel というコマンドが利用可能になっているはずです。

(注)OACISはこれらのコマンドをbashのログインシェルから実行します。 (bash -lコマンド経由で実行される。) PATHなどの環境変数の設定は”.bash_profile”で行ってください。

xsubの概念図

ジョブ投入時に指定する必要があるパラメータ(ノード数など)を”ホストパラメータ”と呼んでいます。 スケジューラのタイプごとに指定するホストパラメータは異なりますが、OACISはHostを登録する際に必要なホストパラメータについての情報をリモートホストのxsubコマンドから取得します。 つまりOACISのウェブUIでホストを登録する前に、リモートホスト側でxsubのセットアップを完了している必要があります。 ここで取得されたホストパラメータはRunの作成時に指定できるようになります。 下図のように、Runを作成する際に入力用のフォームが現れます。

ホストパラメータを指定してのRun作成

Hostの仕様

OACISにリモートホストを登録する時に設定する項目について説明します。

フィールド 説明
Name Hostの名前。”~/.ssh/config”のHostで指定される名前。
Work base dir ワークディレクトリとして利用するホスト上のパス。ここで指定したパス以下でジョブが実行される。
Mounted work base dir localhostでジョブを実行する場合やホームディレクトリがNFSで共有されている場合など、OACISが実行中のサーバーからWork base dirを直接参照できる場合のパス。マウントされていない場合は空白にしておく
Max num jobs このホストに投入可能なジョブの最大数。
Polling interval ジョブのステータスを確認するインターバル。ここで指定した時間間隔でSSH接続しジョブの状態を確認する。
MPI processes MPIプロセス数の最小値と最大値。Runを作成するときにここで指定した範囲外の値を指定しようとするとエラーになる。
OMP threads OMPスレッド数の最小値と最大値。Runを作成するときにここで指定した範囲外の値を指定しようとするとエラーになる。
Executable simulators 実行可能なSimulatorをチェックボックスで指定。
Executable analyzers 実行可能なAnalyzerをチェックボックスで指定。

HostのSSH接続についての情報は”~/.ssh/config”ファイルに記述する必要があります。例えば、”MyHost”という名前のホストの設定は以下のように記述します。

Host MyHost
  HostName example.com
  User user_ABC
  IdentityFile ~/.ssh/id_rsa
  port 22
Tips
Mounted work base dirを指定するとホストとのファイル転送にSFTP接続ではなく、マウントされたパスからコピーを行います。パフォーマンスが向上する場合があります。 localhostを指定する場合には、Work base dirと同じ値を指定するとよいです。
Tips
OACIS Version3から"Hostname", "User", "Port", "IdentityFile"の情報は"~/.ssh/config"ファイルに記述するように仕様変更しました。

ホスト登録時に”no such command xsub” というエラーが発生した場合は、そのホストでXSUBの設定を確認してください。正しく設定されていれば、OACISのマシンの端末から下記のコマンドを実行するとリモートホストの設定が取得できるはずです。

京コンピュータを利用するケース

京コンピュータでジョブを実行する場合、実行するシミュレーターのファイルもステージングする必要があるため、他のホストとは異なる設定が必要になります。

実行コマンドは絶対パスやホームディレクトリからの相対パスで指定する事はできません。ステージング後のパスが異なるためです。 そこで、プリプロセスを使って実行ファイルをカレントディレクトリにコピーし、実行コマンドはカレントディレクトリからの相対パスで指定するようにします。

実行ファイルが ~/path/to/simulator.out にある場合、プリプロセスには以下のように書きます。

cp ~/path/to/simulator.out .

xsubで実行すると、各ワークディレクトリが丸ごとステージインされるので、必要なファイルはすべてカレントディレクトリに事前にコピーしておきます。

実行コマンドは以下のように指定します。

./simulator.out

このように設定しておけば、xsubがカレントディレクトリを丸ごとステージインして実行してくれます。 実行結果は、他のホストの場合と同様にカレントディレクトリ以下に配置しておけば、ステージアウトして結果を取り込んでくれるので、特にステージアウトするファイルを指定する必要はありません。

また京に対してもxsubまたはxsub_pyを導入する必要があります。RubyまたはPythonで実装されているので、ログインノードにRubyまたはPythonをインストールする必要があります。 Rubyを使う場合、rbenvやrvmなどのツールを使用すると比較的簡単に導入することができます。

Next »