一般的なFAQs

更新日2022年9月16日

Command文字列は、選択したソフトウェアを実行するために必要な任意のコマンドまたはコマンドのセットを指定することができます。指定するコマンドには、ジョブの入力ファイルとしてアップロードしたスクリプトを含めることができます。複数のコマンドは、セミコロンで区切ります。コマンド文字列またはスクリプトは、選択したソフトウェアを複数回呼び出すことができます。スクリプトを使用すると、より複雑なワークフローを指定することができます。

基本ジョブの例では、コマンドラインでスクリプトを使用した簡単な例を紹介しています。
STAR-CCM+の例では、シミュレーションソフトウェアstarccm+を直接呼び出します。
LS-DYNAの例では、Rescale ls-dynaラッパースクリプトを使用し、LS-DYNAを起動するコマンドラインを簡素化しています。

コマンドテンプレートは、コマンド文字列を作成し、選択したソフトウェアを実行するのに役立つ提案を含んでいます。テンプレートは、起動するために使用されます。

  • アプリケーションのスタンダード版またはシリアル版
  • SMPコマンド
  • MPI コマンド

ハイブリッド並列をサポートするコードは、MPI Command Templateの設定を利用することができます。

コマンドテンプレート自体は、以下のどちらかで構成されます。

a) 選択したソフトウェアを実行するために使用される標準コマンドの1つ。また、通常、使用するスレッド数またはプロセス数を指定するコマンドラインオプションも含まれます。Comsol Multiphysicsのテンプレートはその一例です。

comsol -clustersimple -f $HOME/machinefile batch -inputfile <input-file>

b) ラッパースクリプトコマンド。ラッパースクリプトは、選択したハードウェアを効率的に利用できるように、選択したソフトウェアを実行するタスクを簡素化するためにRescaleが提供するものです。ラッパースクリプトテンプレートの例としては、LS-DYNAがあります。

ls-dyna -n <mpi-ranks> -s <smp-ranks> -i <input> -p <precision> -a <other args>

ジョブを送信する前に実際の値に置き換えることが一般的に期待されるフィールドを示すために、< >表記を使用しています。必ずしもすべてのフィールドを使用する必要はありません。もし、あなたの状況に無関係なものがあれば、それを削除することができます。例えば、あるコードがハイブリッドモードをサポートしていても、MPIだけを使うつもりなら、その値を省略することができます。

Rescaleでは、ソフトウェアパッケージの標準コマンドラインが特に複雑な場合、より簡単に正しい実行ファイルにアクセスできるようにするためのラッパースクリプトを提供しています。この例の1つがLS-DYNAで、呼び出す必要のある実行ファイルの名前は、ソフトウェアのバージョン、単精度か倍精度か、SMP、ハイブリッド、MPPのいずれの並列化を使用するかによって異なります。各ラッパースクリプトは、通常、必要な実行ファイルを正確に呼び出し、選択したハードウェアを利用できるようにするための、いくつかの簡単なコマンドラインオプションを取ります。

ラッパースクリプトの利用は、完全に任意です。もし必要であれば、[クラスタに接続する]の手順に従って、クラスタにログインして、ラッパースクリプトの内容を見ることができます。ソフトウェアのラッパースクリプト・ソースを見るには,whichコマンドでラッパースクリプトを探し,catコマンドでラッパースクリプト・ファイルの内容を連結してください.

これらは、各ジョブのソフトウェア設定ページに表示されます。Command Templateは、Standard、SMP、MPIモードで使用可能な基本的なオプションが表示されます(該当する場合)。ConvergeやLS-DYNAなどの追加オプションを提供するWrapperスクリプトについては、リソースページのFrequently Asked Questionsセクションでより詳しく説明されています。

はい、できます。ほとんどの場合、必要な実行ファイルは、コマンドラインまたはスクリプトの実行時に、すでに $PATH 環境変数にあります。必要であれば、クラスタにログインして、そのソフトウェアのコマンド・テンプレートで指定されていない実行ファイルを見つけるために、クラスタへの接続の説明に従って、またはRescaleサポートに直接お問い合わせください。

実行時には、最も一般的な形式のホスト・ファイルとマシン・ファイルが、ワークスペースの $HOME フォルダに配置されます。コマンド・ラインで入力データとしてホスト・ファイルが必要な場合は、$HOME 接頭辞とともに名前を指定します。たとえば、次のようになります。

--hostfile $HOME/machinefile.openmpi

選択したソフトウェアの「**コマンド・テンプレート」は、通常、必要な正確なホスト・ファイルを参照しています。HOMEの内容をリストアップすると、以下のホスト・ファイルが見つかります。

hosts, mpd.hosts, machinefile, machinefile.gpu, machinefile.openmpi, hosts,rhosts, mpd.hosts.string, PCF.xml`

ソフトウェアによっては、ホスト情報のために特別なファイルやフォーマットを必要とするものがあります。Rescaleでは、そのようなソフトウェアに必要な環境変数や特定のファイルを可能な限り作成します。例えば、Abaqusを実行する場合、Rescaleはホスト情報を正しいフォーマットでabaqus_v6.envファイルに格納します。ANSYSを実行する場合は、$MACHINES環境変数に必要なフォーマットのホスト情報が格納されます。

ソフトウェアが、ホスト(または他の)ファイルへのフルパスを入力ファイルの中に置くことを要求することがあります。Rescaleでは、事前にパスを知ることはできませんが、パスを表す環境変数にアクセスすることは可能です。シップフローの例では、sedコマンドを使用して、文字列

parallel( nprocesses=2, nthreads=1, hostfile="$HOME/machinefile.openmpi" )

を、ファイル hamb_def で置き換えたものです。

parallel( nprocesses=2, nthreads=1, hostfile="/enc/uprod_mtmHV/machinefile.openmpi" )

をランタイムに実行します。

いいえ、GPUは数百のコアを備えています。GPU付きクラスタの価格は、クラスタ上の関連するCPUコアの数に基づいており、GPUコアの数ではありません。GPU付きRescaleクラスタは、複数のCPU(通常は8)とノードあたり1つ以上のGPU(別名、CUDA Capableデバイス)を備えたコンピューティングノードで構成されています。Keplerの場合はノードあたり1つ、Tesla(M2050)の場合は2つのGPUが搭載されています。

LOGICAL_CPU_COUNT=$(lscpu -p | egrep -v '^#' | wc -l)
PHYSICAL_CPU_COUNT=$(lscpu -p | egrep -v '^#' | sort -u -t, -k 2,4 | wc -l)

Rescaleのコンピュートノードでは、Linuxコマンドであるlscpuが利用可能です。このコマンドは、CPU数、スレッド数、コア数、ソケット数、NUMAノード数、CPUキャッシュに関する情報、CPUファミリー、モデル、bogoMIPS、バイトオーダー、ステッピングなどのCPUアーキテクチャ情報をsysfsと/proc/cpuinfoから収集し、人間が読める形式で表示します。オンラインとオフラインの両方の CPU をサポートしています。また、異なるキャッシュが異なる CPU でどのように共有されているかなど、 解析可能なフォーマットで出力し、他のプログラムに供給することも可能です。

例えば、以下のRescale Hardware Settingsは、Rescale Lunaコアタイプを持つコンピュートノードのものです。

Screen Shot 2022 09 16 at 4.40.49 PM
図1:ハードウェアの設定

このハードウェアの選択に対して、lscpuは(他の情報とともに)報告します。

Screen Shot 2022 09 16 at 4.41.57 PM
図2:ハードウエア情報

これは、1つの物理コアと2つの論理コアに相当します。コードにメリットがある場合は、2スレッドで実行することもできます。