LS-DYNA
Rescaleは、LS-DYNAのジョブを実行するための簡単なコマンドラインインターフェイスを提供しています。ここでは、3つの異なるソルバーモードでLS-DYNAを実行するためのコマンドについて説明します。
- Shared Memory Parallel (SMP)
- Distributed Memory Parallel (DMP)
aka Message Passing Parallel (MPP) - Hybrid MPP
それぞれのソルバーが正常に実行されるために必要な引数は異なります。以下の例では、3つの異なるソルバーモード用のテンプレートを紹介します。
-i は入力ファイルの引数
-p は浮動小数点数の精度
-nはDMPランク引数
-s は SMP スレッド引数
注:以下の例では、拡張子を含む入力ファイル名に置き換えてください。また、< >の括弧は必ず外してください。
SMPモード
SMPモードで実行したい場合は、単一ノードのハードウェアでジョブを構成してください。そうすると、自動的にSMPでジョブが実行されます。もし、複数のコアで強制的にSMPモードにしたい場合は、以下のコマンドテンプレートにしたがってください。
ls-dyna -s $RESCALE_CORES_PER_SLOT -i <input-file> -p <precision>
ここでは、RESCALE_CORES_PER_SLOT環境変数をSMPスレッド数として使用していますが、これは常にシングルノードクラスターのコア数であることに注意してください。
DMPモード
DMPのみで実行したい場合は、コマンドでジョブを実行することができます。
ls-dyna -i <input-file> -p <precision>
この場合、DMPランクの数は、ハードウェアの選択から自動的に取得されることに注意してください。
単精度の場合のコマンドは以下の通りです。
ls-dyna -i <input-file> -p single
倍精度のコマンドは以下の通りです。
ls-dyna -i <input-file> -p double
ハイブリッドモード
ハイブリッド並列化構成を指定するコマンドは以下の通りです。
ls-dyna -n <dmp-ranks> -s <smp-threads/dmp-rank> -i <input-file> -p <precision> -a <options>
ここで、
-nはDMPランク引数
-s は SMP スレッド引数
例えば、16コア(16smpスレッド)のジョブを起動する場合、2コア/スレッド(16/8=2)ずつ8ノード(dmpランク)を持つことでハイブリッド並列化構成を指定することが可能です。-n 8 -s 2
LS-DYNAのジョブのフルコマンドは以下の通りです。
ls-dyna -n <dmp-ranks> -s <smp-threads/dmp-rank> -i <input-file> -p <precision> -a <options>
コマンドラインに-aフラグを追加することで、追加のコマンドラインオプションを使用することができます。これらの追加引数は、LS-DYNAの実行ファイルに直接渡されます。
例えば、特定の実行時のメモリ使用量を指定する必要がある場合。
ls-dyna -i input.k -p single -a "memory=600m memory2=60m"
または
ls-dyna -i input.k -p single -a "memory=30000 memory2=20000 p=my-pfile"
のメモリです。ヘッドプロセッサが最初にモデルを分解するために使用するメモリ
memory2: 分解された問題を解くために全てのプロセッサが使用するメモリ(ヘッドノードを含む)
pfile は、コマンドラインに -a フラグを付加して使用することができます。例えば
ls-dyna -i input.k -p single -a "p=my-pfile"
まず、稼働中のクラスターにSSH接続する必要があります。
仮想マシンのbashインターフェイスに入ったら、cd work/sharedを使って正しいフォルダに移動してください。次に、次のコマンドを入力してください echo > d3kil, を実行したいスイッチコマンドに置き換えてください。例: echo sw2 > d3kil
d3kilファイルは一度実行されると消費され削除されますのでご注意ください。
ここでは、LS-DYNAのセンススイッチとその応答の一覧を示します。
- sw1 – 再起動ファイルが書き込まれ、LS-DYNAが終了する (クラスタがシャットダウンする)
- sw2 – LS-DYNAが時間とサイクル番号を応答する (ls-dyna.logに出力)
- sw3 – 再起動ファイルが書き込まれてLS-DYNAが継続する
- sw4 – プロット状態が書き込まれてLS-DYNAが継続する
- swa – LS-DYNA は全ての出力i/oバッファをフラッシュする
- stop/quit – 実行が停止する(クラスタはシャットダウンされる)
ドロップダウンメニューにないLS-DYNAのバージョンを使用する必要がある場合、Rescaleジョブで入力ファイルと一緒にビルドファイルをアップロードし、カスタムバージョンとして実行することができます。
LS-DYNAのビルドを確認してください。
- 64 bit linux
- mpp version
手順は以下の通りです。
- カスタムビルドファイルをパソコンにダウンロードする
- ビルドファイルのあるフォルダーに移動する
- 実行ファイルを確認し、名前を変更する
カスタムビルドを動作させるには、実行ファイルを lsdyna-CUSTOM.-mpp- にリネームする必要があります。例えば、lsdyna-CUSTOM.platformmpi-mpp-singleのようなものです。カスタムビルドが名前をつけたmpiフレーバーに対応していることを確認してください、さもなければジョブは失敗します。
Rescaleプラットフォーム上で、ビルドファイルと入力ファイルをジョブにアップロードします。
- Softwareページで、LS-DYNAを選択します。
- Versionで、Custom Version/Revisionを選択します。
- コマンドウィンドウで、指定します。
export DEFAULT_MPIFLAVOR=intelmpils-dyna -v <custom-version> -i <input> -p <precision> -a <other args>
例えば、こんな感じです。
export DEFAULT_MPIFLAVOR=intelmpils-dyna -v CUSTOM -i YarisD_V2g_shock_abs_load_01.k -p double -a memory=600m memory2=60m swapping=yes
この例では
MPI flavor は Intel mpi
Input file は YarisD_V2g_shock_abs_load_01.k
Precision は doublememory is ヘッドプロセッサーがモデルを最初に分解するために使用するメモリ(MB)。
memory2 は、すべてのプロセッサが分解された問題を解くために使用するメモリ(MB)(ヘッドノードを含む)です。
コマンドウィンドウのこれらのフィールドは、あなたの仕事に合うように置き換えてください。
これで、ジョブがLS-DYNAのカスタムバージョンで実行されるようになります。