Rescale CLI 応用

アプリはデフォルトで SGE 入力パーサーを使用して、Rescale の設定として使用されるランタイム スクリプトからの情報を解析し、入力送信スクリプト (ラッパー スクリプトではない) 内の不要なクラスター固有の設定を解析します。 たとえば、ユーザーは次のようなスクリプトを持っているとします。 submit.sh という名前のスクリプトを持っていて、それが次のようなものだったとします。

#!/bin/bash #RESCALE_NAME="Hello World!" module load hello-worldsource /home/rescale/environments/hello_world/usr/lib64/openmpi/bin/mpirun echo "hello-world" > $(ホスト名)

パーサーは、クラスタ固有の行 module load… を確実に解析し、スクリプトがこの行でエラーにならないようにします。次に、環境を変更するコマンドをすべて削除しようとします。この場合、source以降の行は、Rescaleの環境に干渉しないように解析されます。さらに、実行ファイルやバイナリへの絶対参照も削除します。実行ファイルがローカルクラスタとRescaleの同じ場所に存在しない可能性が高いからです。この場合、mpirunへの参照はRescale環境のPATH CLIディレクティブを通して参照されます。出来上がったスクリプトはrun.shというファイルに保存され、以下のような内容になります。

#!/bin/bash #RESCALE_NAME="Hello World!" #module load hello-world #source /home/rescale/environments/hello_world mpirun echo "hello-world" > $(ホスト名)

Rescaleの解析コマンドは、 ./run.shに設定されます。このスクリプトは、入力ファイルとともにRescaleにアップロードされます。

このアプリは、サブミットスクリプト内でRescale固有の設定ディレクティブの使用をサポートしており、ユーザが望むとおりにジョブを構成することができます。現在利用可能な変数を以下に示します。これらの変数が含まれていない場合、デフォルト値が使用されます。


#RESCALE_CORES=<integer>
{1|2|4|8|16|32|64|128|...}

使用するコアの数。コアの種類によって、許可される値はリストされたオプションのサブセットになります。このオプションのデフォルト値は、SGE #$ -peの値です。


#RESCALE_CORE_TYPE=<string>
{Marble|Nickel|Emerald|Iron|Gold|Obsidian|...}

使用するRescaleコアタイプ。このオプションに有効な値の一覧を取得する方法については、 このドキュメントのコマンドのセクションを参照してください。


#RESCALE_NAME=<string>

ジョブの名前です。このオプションのデフォルト値は、SGE #$  #$ -N の値です。


#RESCALE_PROJECT_ID=<project name>

会社のプラットフォーム設定で設定したプロジェクトに、ジョブを割り当てる必要がある場合に使用します。


#RESCALE_ANALYSIS=<string>
{abaqus|adina|aermod|ansys_cfx|ansys_fluent|...|user_included|...}

使用する解析。これは、Analysis “code “値に設定する必要があります。このオプションの有効な値のリストを取得する方法については、このドキュメントの「コマンド」セクションに説明があります。デフォルト値は、スクリプトのモジュールまたはソース行で指定された、解析可能な任意の解析名です。


#RESCALE_ANALYSIS_VERSION=<string>

選択した解析の特定のバージョンを使用する。これはオプション設定です。省略した場合は、最新のバージョンが使用されます。指定する場合は、特定の解析バージョンの “versionCode “値を設定する必要があります。このオプションに有効な値のリストを取得する方法については、本ドキュメントの「コマンド」のセクションに説明があります。


#RESCALE_EXISTING_FILES=<comma delimited list of strings>

例: #RESCALE_EXISTING_FILES=<file1-ID>,<file2-ID>,<file3-ID>

このフラグは、ファイルIDがすでにRescaleに保存されている場合、そのファイルIDをこのジョブに含めます。ファイルIDの取得は簡単ではなく、ユーザはAPIにアクセスする必要があります。Rescaleサポート(support@rescale.com)にお問い合わせください。リストされたファイルIDが存在しない場合、ジョブはバリデーションで失敗します。このオプションにデフォルト値はありません。


#USE_RESCALE_LICENSE

解析コードには、Rescaleが提供するライセンスを使用します。すでにあるライセンスを使用する場合は、実行スクリプトを使用して、CLIディレクティブを使用してそれらを設定することができます。


#RESCALE_ENV_<varname>=<value>

Rescaleクラスター上のライセンスサーバー情報を設定するために使用します。CLIディレクティブ名で、ライセンス・サーバーの場所に置き換えます。たとえば、次のようになります。#RESCALE_ENV_RLM_LICENSE=XNUMX@license-proxy.rescale.com は、クラスタ・ノード上に XNUMX@license-proxy.rescale.com に設定されたRLM_LICENSE CLIディレクティブを作成します。


#RESCALE_WALLTIME=<# of hours>

このジョブの実行を許可する最大時間数を設定するために使用されるオプションの値です。この時間数を超えたジョブは終了されます。指定しない場合は、Rescaleのユーザアカウント設定にあるデフォルトのMax Job Hoursの値が使用されます。


#RESCALE_LOW_PRIORITY=<boolean>
{true, false}

オンデマンドモードでジョブを実行するために使用されるオプションの値です。オンデマンドを有効にすると、リソースが利用可能になるまで、ジョブは最初キュー状態になることがあります。このオンデマンドジョブは一度実行すると、最大XNUMX回まで終了と再開が可能です。この場合、ジョブは最大でXNUMX倍の実行時間を要することがあります。指定しない場合、デフォルト値はfalseとなり、オンデマンド優先モードとなります。

RescaleクラスタのヘッドノードにSSHでアクセスできるようにするための高度な設定がいくつか用意されています。これはジョブの結果を調べたり修正したりするのに便利ですが、将来的にジョブをクローンして再実行する場合に、結果の再現性に悪影響を与えることを覚えておいてください。

現在のところ、CLI からヘッドノードの IP アドレスを取得する方法はありません。この情報を見つけるには、Web UI のジョブステータスページを使用する必要があります。


#RESCALE_INBOUND_SSH_CIDR=<string>
for example: #RESCALE_INBOUND_SSH_CIDR=50.123.22.112/32

RescaleクラスターのヘッドノードへのインバウンドSSHアクセスを許可するIPレンジを定義するために使用します。この値を省略した場合、Rescaleのユーザーアカウント設定に記載されているデフォルト値が使用されます。


#RESCALE_PUBLIC_KEY=<string>
for example: #RESCALE_PUBLIC_KEY=ssh-rsa AAAA...

Rescaleクラスタのヘッドノードのauthorized_keysファイルに追加される公開鍵を設定するために使用します。これにより、関連する秘密鍵を使ってRescaleクラスターのヘッドノードにSSHでアクセスできるようになります。この値を省略すると、Rescaleのユーザーアカウント設定に記載されているデフォルト値が使用されます。

SGEとRescaleの両方で動作するスクリプトの例は次のようになります(モジュールの行はコメントアウトされ、 module   mpirun への絶対参照は削除されています)。

#!/bin/bash #RESCALE_NAME="Converge サンプル" #RESCALE_CORES=32 #RESCALE_CORE_TYPE=Nickel #RESCALE_ANALYSIS=converge_open_mpi モジュール ロード converge/usr/bin/mpirun -np 32 converge-2.1.0

Rescaleでのみ動作するスクリプトの例は、以下のようなものです。コマンドラインのコマンドは、解析コード表(別添)に記載されています。

#!/bin/bash #RESCALE_NAME="Converge サンプル" #RESCALE_CORES=32 #RESCALE_CORE_TYPE=ニッケル #RESCALE_ANALYSIS=converge_open_mpi converge-mpi -n all -v 2.1