1.1X Rescale CLI チュートリアル

このセクションでは、Rescale CLIアプリを使用して、ジョブ投入スクリプトファイルの作成、ジョブの投入、ジョブステータスの確認、ファイルのダウンロードを行う手順を説明します。

このチュートリアルは、Rescaleのドキュメントページから入手可能なLS-DYNAシミュレーションの例に基づいています。この例で使用したLS-DYNAシミュレーションファイル(neon.refined.rev01.k)は、こちらから入手可能です。

特定のソフトウェア(ここではLS-DYNA)上で動作するジョブを投入するには、submit.shファイルにソフトウェアを指定する必要があります。

#!/bin/bash #RESCALE_NAME="LS-DYNA Neon Example" #RESCALE_ANALYSIS=ls_dyna #RESCALE_CORE_TYPE=Emerald #RESCALE_CORES=2 #RESCALE_WALLTIME=1 #USE_RESCALE_LICENSE ls-dyna -n $RESCALE_CORES_PER_SLOT -i neon.refined.rev01.k -p single

注:上記のスクリプトをコピーする際には、各環境変数の後に空白がないことを確認してください。入力スクリプトのフラグは、Rescale CLI コマンドのセクションに記載されています。また、最後の行のコマンドは、Rescaleプラットフォームで使用するものと同じです。このコマンドは、Rescale Web UIまたはlist-infoコマンドで確認できます(Rescale CLI コマンドのセクションを参照してください)。

Rescale API Keyの環境変数(こちらを参照)があることを前提に、コマンドを使用してジョブを実行します。

rescale-cli submit -i submit.sh

ターミナル上では、このようなログが表示されます。

Executing Command.
Parsing Input Files
No existing files to include
Found Analysis: ls_dyna
Zipping File
Creating temporary encrypted zip at /tmp/rescale-cli-work3842771237402719984/input.zip
Finished writing encrypted file
Uploading Files
Uploading: /tmp/rescale-cli-work3842771237402719984/run.sh
Uploading run.sh:
##############################| 240B / 240B
Uploading: /tmp/rescale-cli-work3842771237402719984/input.zip
Uploading input.zip:
##############################| 368B / 368B
Job: Saving Job
Job CeMod: Saved
Job CeMod: Submitting
Job CeMod: --end-to-end flag not set, polling should be done manually.

このアプリは、現在の作業ディレクトリにある全てのファイルをinput.zipという一時ファイルにzip圧縮します。そして、run.shとinput.zipをRescaleにアップロードし、ジョブの入力ファイルとして含めます。また、入力スクリプトの#RESCALE_EXISTING_FILES行に記載されているファイルもすべて含まれます。例えば、ディレクトリが以下のような場合です。

neon.refined.rev01.ksubmit.sh

ジョブを投入すると、アプリは一時的にzipファイルを作成し、submit.shスクリプトを解析してrun.shを作成します。ディレクトリは以下のようになります。

neon.refined.rev01.krun.shsubmit.sh

input.zipには、neon.refined.rev01.k, run.sh, submit.shというファイルが含まれます。アプリは input.zipファイルをrun.shスクリプトと一緒に Rescale にアップロードします。その後、アプリはローカルファイルシステムからzipファイルを削除し、ジョブの保存と投入を試みます。ジョブが検証を通過すると、保存され、Rescaleに投入されます。その後、アプリはポーリングサイクルを開始し、ジョブのステータスが完了するのを待ちます。この時、アプリはを出力し、参照に使用することができます。

実行中のジョブの状態を確認するには、次のコマンドを入力します。rqRXTを自分のジョブIDに置き換えてください。

rescale-cli status -j CeMod

端末には、次のようにメッセージの状態が表示されます。

rescale-cli status -j CeModAuthenticated as <user>@rescale.comThe status of job CeMod is Executing
download file path.45f69797

ジョブ実行中にファイルをダウンロードするには、以下のようにdownload-file CLIコマンドを使用します。一度にダウンロードできるのは、1ファイルのみです。

rescale-cli download-file -j CeMod -f shared/d3plot

ここでは、d3plotというファイルをダウンロードしています。コマンドはクラスタの作業ディレクトリにあるファイルを探すので、作業ディレクトリからの相対パスを指定する必要があります。ここでは、ファイルd3plotは共有ディレクトリに存在します。ファイルの相対パスを得るには、図のようにRescaleプラットフォームのlive-tailingウィンドウを確認してください。

ジョブが完了した後にファイルをダウンロードするには、sync CLIコマンドを使用します。以下のように、完了したジョブのすべてのファイルをダウンロードすることができます。

rescale-cli sync -j CeModT

ターミナルに以下のようなログが表示されます。

rescale-cli sync -j CeModAuthenticated as <user>@rescale.comSyncing output files for job CeModJob CeMod: Downloading files to /Users/johndoe/Documents/CLI/LS-Dyna-Example/rescale_job_CeModDownloading /Users/shashank/Documents/CLI/LS-Dyna-Example/rescale_job_CeMod/download_20180703_224544_d3plotDownloading download_20180703_224544_d3plot:Downloading /Users/johndoe/Documents/CLI/LS-Dyna-Example/rescale_job_CeMod/process_output.log.... 

-f または -s フラグを使用すると、特定のファイルのみをダウンロードする出力フィルタリングを行うことができます。-f フラグは “グロブ” 検索を使用し (クライアント側では bash のみ)、一方 -s は “文字列パターン” 検索を使用します (サーバ側で)。は任意の文字列にマッチするワイルドカード、?は任意の一文字にマッチするワイルドカードです。

例:次のコマンドは、d3hsp、d3dump01.0000、d3dump01.0001 を除き、d3で始まるすべてのファイルをダウンロードします。

rescale-cli sync -j CeMod -f d3* --exclude d3hsp,d3dump01.0000,d3dump01.0000

大規模なジョブの場合は、サーバー側になるので、-sを推奨します。

注 -s は文字列パターンのみを検索し、与えられた文字列パターンを持つすべてのファイルをダウンロードします。