1.1X Rescale CLI 応用

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

#RESCALE_NAME="Hello World!" 
module load hello-world 
source /home/rescale/environments/hello_world/usr/lib64/openmpi/bin/mpirun 
echo "hello-world" 
> $(hostname)

パーサーは、クラスタ固有の行 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>
{Emerald|Carbon|Ammonite|Peridot|Tantalum|Graphite|...}

使用する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-cli --version RESCALE_ANALYSIS/RESCALE_ANALYSIS_VERSION


#RESCALE_ANALYSIS_VERSION=<string>

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

ユーザーが複数の分析 (CLI バージョン 1.1.209 以降で利用可能) を提供したい場合、明示的なバージョンのない分析 (ソフトウェアの利用可能な最新バージョンを使用します) 最後に指定する必要があります。 たとえば、最新バージョンの Analysis1 と特定のバージョンの Analysis2 を使用してジョブを起動する XNUMX つの方法を次に示します。

オプション1: 最新を明示的に指定します (推奨):

#RESCALE_ANALYSIS=analysis1
#RESCALE_ANALYSIS_VERSION=
#RESCALE_ANALYSIS=analysis2
#RESCALE_ANALYSIS_VERSION=v2.0

オプション2: の最新バージョンを暗黙的に使用します。 analysis1:

#RESCALE_ANALYSIS=analysis2
#RESCALE_ANALYSIS_VERSION=v2.0
#RESCALE_ANALYSIS=analysis1

#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_USER_DEFINED_LICENSE_SETTINGS=<stringified-json-value-of-license-settings> 

{"featureSets":[{"name":"USER_SPECIFIED","features":[{"name":"MPPDYNA","count":1000}]}]}}]}

ユーザー定義のライセンス設定は、次のスキーマを使用して文字列化された JSON として渡す必要があります。

  • featureSets:<Array> | 特徴セットの辞書の配列
    • 機能セットは、次のスキーマを持つ辞書です。
      • name: <String> | ライセンスに使用される機能セットの名前。
      • features: <Array> | ライセンス設定を含む辞書の配列 namecount 使用するライセンスの数。
        • name: <String> | 機能ライセンスの名前。
        • count: <Integer> | 使用する機能ライセンスの数。

#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=Emerald #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=Emerald #RESCALE_ANALYSIS=converge_open_mpi converge-mpi -n all -v 2.1