Radiossの実行
Radiossソルバーは、ここで説明するさまざまな方法で実行することができます。
Altair Compute Console (ACC)から
Altair Compute Console (ACC)は、Radioss計算を起動する最も簡単な方法です。
入力ファイルの選択、実行オプションの定義、キューを使った複数ソルバーの実行、遅延のスケジュール、ジョブの停止などのための対話型GUIを備え、実行に必要なすべての環境変数があらかじめ定義されています。
Windowsでは、Compute Console (ACC)は、
を選択することで起動できます。Compute Console (ACC)は、ソフトウェア内から
を選択することで起動できます。- Linux
- <install_dir>/altair/scripts/radioss
-gui
- Windows
- <install_dir>/hwsolvers/scripts/radioss.bat
-gui
入力ファイル名
- デフォルトでは、入力ファイルのディレクトリ内のすべてのStarterおよびEngineファイルが実行されます。複数のEngineファイルは、Starterファイルと同じディレクトリに置くことによって容易に実行できます。
- Engineファイルが選択されている場合、そのEngineファイルが実行された後、続けてディレクトリ内のその他のEngineファイルも実行されます。
-onestep
オプションが使用されている場合、選択された入力ファイルのみが実行されます。入力ファイルがStarterファイルの場合、Starterのみが実行され、入力ファイルがEngineファイルの場合はEngineファイルのみが実行されます。
一般的に使用される実行時のオプション
オプション | 引数 | 内容 |
---|---|---|
-onestep |
N/A | 次のEngineファイルへの自動継続を無効にし、単一ファイルフォーマットのStarterのみを実行します |
-nt |
スレッド数 | SPMD MPIドメインごとのSMPスレッド数。 (例: radioss ROOTname_0000.rad |
-np |
SPMD MPIドメインの数 | Radioss SPMD MPIドメインの数 (例: radioss ROOTname_0000.rad |
使用可能なすべての実行時のオプション
-mpipath {C:/Program Files/MPI}
Windowsマシンのファイルパスには、バックスラッシュ“\”またはスラッシュ“/”が使用できますが、バックスラッシュ“\”の使用時は引用符で囲まなくてはなりません。
オプション | 引数 | 内容 | 利用可能なプラットフォーム |
---|---|---|---|
-altver |
代替ソルバーバージョンの接尾辞。 | すべてのプラットフォーム | |
-appfile |
N/A | SPMD実行用の一部のMPIを含む仕様ファイル。 | すべてのプラットフォーム |
-args |
ソルバーに渡される追加の引数。 例: |
すべてのプラットフォーム | |
-check |
モデルに警告やエラーがないかチェックします。領域分割を無効にし、ファイルの書き込みを再開します。 | すべてのプラットフォーム | |
-checkpoint |
N/A | チェックポイントsavefileからRadioss Engineを実行します。 | すべてのプラットフォーム |
-debug |
1 ,
2 |
スクリプトのデバッグ情報を出力します。 | すべてのプラットフォーム |
-delay |
秒数 | Radioss実行の開始を指定した秒数だけ遅らせます。この機能では、遅延が終了して実行が開始されるまではライセンス、コンピューターメモリ、CPUを消費しません。 このオプションは、その時点で使用できないが前回の実行からまだ解放されていない計算リソースを待つために使用できます。前回の実行がクラッシュした場合、ライセンスはタイムアウト値に応じてライセンスサーバーからロックされたままになっている場合があります。もしくは、メモリがオペレーティングシステムにより保留とされているかもしれません。 注:
|
すべてのプラットフォーム |
-dylib |
FILE |
Radiossユーザーサブルーチンのためのダイナミックライブラリの名前を設定します。 | すべてのプラットフォーム |
-hostfile |
TEXT
FILE |
マルチコンピュータ(ノード)実行用のホストおよびコア数をリストするテキストファイル。 正確なフォーマットについてはMPIドキュメントをご参照ください。 | すべてのプラットフォーム |
-HSTP_READ |
NA | hst_input.hstpファイルを読み込み、入力デックの/PARAMETERをreadファイルで指定されたものに置き換えます。 | すべてのプラットフォーム |
-HSTP_WRITE |
NA | モデルの/PARAMETERモデル情報を含む<root_name>_0000.rad2hstファイルを出力します。 モデルの計算に必要な入力ファイルを含む<root_name>_0000.depxファイルを作成します。 |
すべてのプラットフォーム |
-licwait |
時間数 |
-licwait が指定されていて、
Altair Units (AU) が不足している場合、
Radioss Engineは指定された時間数(デフォルト=12)までライセンスが利用可能になるまで待機し、その後実行を開始します。指定できる待機期間は最大168時間(1週間)です。 |
すべてのプラットフォーム |
-mpi |
i ,
o |
マルチプロセッサ(SPMD)実行に使用するMPIソフトウェアを指定します。
注:
–mpi に対する引数はオプションです。引数が指定されていない場合、Intel MPIがデフォルトで使用されます。 |
すべてのプラットフォームがすべてのMPIソフトウェアをサポートするわけではありません。 |
-mpipath |
DIRECTORY |
mpirun が位置するパスを指定します(Altair HyperWorksにはMPIソフトウェアが含まれているため、これは通常必要ありません)。 |
すべてのプラットフォーム |
-noh3d |
N/A | シミュレーションの終了時にRadiossアニメーションファイルからh3dファイルを生成しません。 | すべてのプラットフォーム |
-norst |
N/A | シミュレーションの終了後、すべてのリスタート(*.rst)ファイルを削除します。 | すべてのプラットフォーム |
-np
または-nspmd |
SPMD MPIドメインの数 | Radioss SPMD MPIドメインの数 例:
|
すべてのプラットフォーム |
-nt
または-nthread |
スレッド数 | SPMD MPIドメインごとのSMPスレッド数。 例: |
すべてのプラットフォーム |
-nt_r2r |
マルチドメインプロセス用のCPUスレッド数。 | すべてのプラットフォーム | |
-onestep |
N/A | 次のEngineファイルまたはモデルファイルへの自動継続を無効にし、単一ファイルフォーマットのStarterのみを実行します | すべてのプラットフォーム |
-outfile |
DIRECTORY |
StarterとEngineによって作成されるすべてのファイルの出力ディレクトリを指定します。 | すべてのプラットフォーム |
-radfiles |
N/A | 現在のフォルダー内のすべてのファイルを検出されたタイプ(Starter/Engine/mod)とともにリストします。 | すべてのプラットフォーム |
-radopt |
.radopt ファイル | OptiStructでRadioss最適化を実行するためのオプション。Radioss入力デックのための最適化実行の要求を指定します。 注: 最適化入力をサポートするRadioss Starterと入力ファイルは、<name>.radoptファイルと同じディレクトリに用意する必要があります。 詳細については、設計最適化をご参照ください。 |
すべてのプラットフォーム |
-rseed |
seed |
オプション値:節点のランダムノイズのseed 値を設定(0 ≤
seed < 1)。 |
すべてのプラットフォーム |
-rxalea |
xalea |
節点のランダムノイズをxalea の値とともアクティベートします(xalea ≥ 0)。 |
すべてのプラットフォーム |
-sp |
N/A | 単精度バージョンのRadiossの実行を指定します。 | すべてのプラットフォーム |
-v |
複数のソルバーがインストールされている場合、必要となるバージョン。指定されていない場合はインストールされている中で最新のバージョンが使用されます。 例: |
すべてのプラットフォーム |
ソルバーコントロール
Altair HyperWorksスクリプトから
Altair HyperWorksに含まれるスクリプトを使ってコマンド行からRadiossを起動します。
このスクリプトは、ジョブスケジューラーを介してハイパフォーマンスコンピューティングクラスター上でRadiossを実行する際に使用されるべきです。多くの環境変数が既に定義されているため、セットアップが簡単に済みます。Compute Console (ACC)で使用可能なオプションはすべて、コマンド行から使用できます。
<install_dir>/altair/scripts/radioss "filename" -option argument
<install_dir>\hwsolvers\scripts\radioss.bat "filename" -option argument
スクリプトのオプション群は、使用可能なすべての実行時のオプションで説明されています。
HyperMeshから実行
HyperMeshでRadioss有限要素モデルを作成する際、シミュレーションはRadiossパネルに進むことによりHyperMeshで直接実行できます。
<ホスト名>:0.0
に設定された状態でシェルが起動します。この設定がHyperMeshのDISPLAY設定と異なる場合は、HyperMeshに使用されている21 Altairユニットに加え、25/38 Altairユニットが照合されます。ユニットが追加で照合されないようにするためには、HyperMeshを開始する前に、DISPLAYが<hostname>:0.0
に設定されていることを確認します。実行可能ファイルの直接実行
Radioss実行可能ファイルは直接実行することができますが、各種環境変数が定義される必要があります。
したがって、コンピューターサーバー上でジョブを起動する際は、Altair HyperWorksに含まれるRadiossスクリプトを使用することが推奨され、容易にできます。それでもなお実行可能ファイルを直接実行する必要がある場合、以下の環境変数を設定しなくてはなりません。
RADFLEX_PATH
= <install_dir>/hwsolvers/common/bin/<platform>/
RAD_H3D_PATH
= <install_dir>/hwsolvers/radioss/lib/<platform>/
HWSOLVERS_TEMPLEX
= <install_dir>/hwsolvers/common/bin/<platform>/
ABF_PATH
= <install_dir>/hwsolvers/radioss/bin/<platform>/
RAD_CFG_PATH
= <install_dir>/hwsolvers/radioss/cfg/
- Linux
KMP_STACKSIZE
=400m- Windows
KMP_STACKSIZE
=400m
- Windowsのみ
- 環境変数を更新、
PATH
=%PATH%;\
<install_dir>\hwsolvers\common\bin\win64;\ <install_dir>\hwsolvers\radioss\lib\win64
- Linuxのみ。
LD_LIBRARY_PATH
=<install_dir>/hwsolvers/common/bin/linux64/:<install_dir>/hwsolvers/radioss/lib/linux64
Radioss実行可能ファイルは、<install_dir>\hwsolvers\radioss\bin\<platform>\にあります。
./s_<version>_<platform> –i <arguments> <prefix>_0000.rad
./e_<version>_<platform> –i <arguments> <prefix>_0001.rad
Radioss MPIソフトウェアでのRadiossの使用については、Advanced Installation Guideをご参照ください。
Starter and Engineの終了コード
Starter and Engineには、スクリプトで使用できる終了コードが用意されています。
- 0
- 通常の終了。
- 2
- モデルまたは計算のエラー。
- 3または128+信号番号
- プロセスの障害(コアダンプ、セグメンテーションの障害)
$?
’コマンドを使用すると終了コードを取得できます。#!/bin/bash
s_2024_linux64 –input [Starter_input]_0000.rad –np 96
Exit_code=$?
echo $Exit_code
errorlevel
"変数を使用します。s_2024_win64.exe –input [Starter_input]_0000.rad –np 96
echo %errorlevel%
Starterコマンド行引数
Radioss Starterでは次のコマンド行引数がサポートされています。
引数 | 短縮形式 | 内容 |
---|---|---|
-check |
モデルチェックのオプション。領域分割を無効にし、ファイルの書き込みを再開します。 | |
-dylib [FILE] |
Radiossユーザーサブルーチンのためのダイナミックライブラリの名前を設定します。 | |
-help |
-h |
ヘルプメッセージを表示します |
-HSTP_READ |
hst_input.hstpファイルを読み込み、入力デックの/PARAMETERを.hstpファイルで指定されたものに置き換えます。 | |
-HSTP_WRITE |
/PARAMETERモデル情報を含む<root_name>_0000.rad2hstファイルを出力します。 モデルの計算に必要な入力ファイルを含む<root_name>_0000.depxファイルを作成します。 |
|
-input [FILE] |
-i |
Radioss Starter入力ファイルを設定します |
-mds_libpath [PATH] |
Multiscale Designerのためのダイナミックライブラリのパスを設定します。 | |
-notrap |
エラートラップを無効にします | |
-nspmd [INTEGER] |
-np |
SPMDドメインの数を設定します |
-nthread [INTEGER] |
-nt |
SPMDドメインごとのスレッド数を設定します |
-outfile=[output path] |
すべてのファイルの出力ディレクトリを指定します。 | |
-rseed [REAL] |
オプション値:節点のランダムノイズのseed 値を設定します。 |
|
-rxalea [REAL] |
[value] xalea を持つ節点のランダムノイズをアクティブ化します。 |
|
-version |
-v |
Radiossのリリース情報を表示します |
-help引数
コマンド行引数のヘルプ情報を表示します。
ヘルプ情報の表示後、Radioss Starterは終了します。
-version引数
Radiossのリリース情報を表示します
- Radiossタイトル
- radflexの名前
- 使用するバージョン
- ビルド情報(ビルド日時およびビルドタグ)
ヘルプ情報の表示後、Radioss Starterは終了します。
-input [FILE] 引数
Radioss Starter入力ファイルを設定します。
FILE引数には、Radioss Engine入力ファイルを次のフォーマットで指定する必要があります:[ROOTNAME]_[RUN NUMBER].rad
ROOTNAME
- エータセットルート名
RUN NUMBER
- 4つの数字で表される実行番号
e.g. CRA2V51_0000.rad
ROOTNAME: CRA2V51
RUN NUMBER: 0000
ROOTNAME
およびRUN NUMBER
は入力ファイルから抽出されます。-input
コマンドオプションを使用した場合、/BEGINのデータセットROOTNAME
およびRUN NUMBER
の設定は無視されます。- ファイル名のフォーマットが間違っている場合、ファイルは拒否されます。
- 指定したファイルが開かれます。標準入力は使用されなくなります。
-input
を設定しなかった場合、Radioss Starterは標準入力を開いて入力を読み出します。
例
[user@machine]$ ./s_2024_linux64 -input CRA2V51_0000.rad
-nspmd [SPMD DOMAIN NUMBER] 引数
SPMDドメインの数を設定します。
ここで:
SPMD DOMAIN NUMBER: INTEGER は、SPMDドメインの数です。
例
[user@machine]$ ./s_2024_linux64 -nspmd 4
- SPMD DOMAIN NUMBERに設定した値が適切でない場合、Radioss Starterはエラーメッセージを表示して停止します。
-nspmd
を設定した場合、/SPMD入力カードで設定されているドメイン数は無視されます。その他のパラメータの設定がデフォルトのままの場合、/SPMDカードは省略しても構いません。- Radioss Engineでの計算に使用されるプロセスの合計数は、SPMD DOMAIN NUMBER * SMP THREAD NUMBERに等しくなります。
-nthread [SMP THREAD NUMBER]引数
SPMDドメインごとのSMPスレッド数を設定します。各SPMDドメインは、SMP THREAD NUMBERで構成したマルチスレッドプロセスを使用して計算されます。
ここで、SMP THREAD NUMBER:INTEGER は、SPMDドメインごとのSMPスレッド数です。
例:
[user@machine]$ ./s_2024_linux64 -nthread 2
- SMP THREAD NUMBERに設定した値が適切でない場合、Radioss Starterはエラーメッセージを表示して停止します。
-nthread
を設定した場合、/SPMD入力カードで設定されているスレッド数は無視されます。その他のパラメータの設定がデフォルトのままの場合、/SPMDカードは省略しても構いません。- Radioss Engineでの計算に使用されるプロセスの合計数は、SPMD DOMAIN NUMBER * SMP THREAD NUMBERに等しくなります。
-notrap引数
Radioss Starterのエラートラップを無効にします。
デフォルトでは、エラーが発生した場合、Radioss Starterは発生したエラーに対応するエラーメッセージを表示して、適切に停止します。–notrap
を使用した場合、Radioss Starterは処理を続行し、エラーが発生した時点でコアダンプを実行できます。外部ツールを使用してエラーをトレースする場合、この動作が役に立つことがあります。
標準の動作、エラー処理
-version
-help
-nspmd
、-input
、-nthread
、-notrap
-nspmd
、-nthread
、-notrap
、-input
は同時に使用できます。順序は関係ありません。
-input
、–nspmd
、または-nthread
の引数が指定されていない-input
引数がRadiossファイルフォーマットではない-nspmd
または-nthread
引数が整数ではない- 未知のコマンド行引数が使用されている
このような場合、-help
と共にエラーメッセージが表示されます。
-check引数
モデルチェック後にStarterを停止するためのオプション。
領域分割は計算されず、リスタートファイル(.rst)は書き込まれません。これにより、モデルチェックの実行時にStarterモデルの実行時間が短くなります。
-outfile=[output path] 引数
Starterによって、すべての出力ファイルとリスタートファイルが指定の出力パスに書き込まれます。
この出力パスは、絶対パスでも相対パスでもかまいません。出力パスに空白文字がある場合は、パスを引用符で囲む必要があります。Windowsの場合は、ディレクトリの区切り文字として“/”または“\”を使用できます。
例
s_2024_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
s_2024_linux64 -i TENSI36_0000.rad -outfile="../my directory"
s_2024_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
s_2024_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
s_2024_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
s_2024_win64.exe -i TENSI36_0000.rad -outfile="c:/storage/files/my directory"
-HSTP_WRITE 引数
モデル(_0000.rad)内で定義されたすべてのモデルパラメータ(/PARAMETER)情報を含む<root_name>_0000.rad2hstという名前のファイルを書き込みます。
schema="altair_pdd
"およびschemaVersion="hstp_v_5
"という設定を持つHyperStudy用の<root_name>_0000.rad2hstファイル。
-HSTP_READ 引数
モデル(_0000.rad)内で定義されたパラメータ(/PARAMETER)の値をhst_input.hstpファイル内で読み取られた値に置換します。
ファイルhst_input.hstpは、schema="altair_pdd
"およびschemaVersion="hstp_v_5
"という設定を持つHyperStudy用のXMLファイルです。
-rseed [seed] 引数
このオプションでは、節点座標上に値[seed
](0~1の実数値)のランダムノイズのシードを定義します。
-rxalea [xalea] 引数
このオプションでは、節点座標上のランダムノイズを値[xalea
](正の実数値)で初期化します。
-dylib [FILE] 引数
このオプションでは、実行用のRadiossユーザーサブルーチンRadiossのフルパスまたは相対パス付きのファイル名を追加します。
-mds libpath [PATH] 引数
このオプションでは、Multiscale Designer材料則用のダイナミックライブラリのパスを指定します。デフォルトでは、RadiossはHyperMesh環境で定義されたパスを使用します。
Engineコマンド行引数
バージョン11.0から、Radioss Engine HMPPの実行可能ファイルがMPIに対応し、SPMDとSMPが混在する環境での並列化処理がHybridに完全対応しました。
さらに、簡易化された実行可能ファイルも用意されています。これらはSMPにしか対応していませんが、MPIは必要ありません。
これら2種類の実行可能ファイルを容易に区別できるよう、MPIの実行可能ファイルには“_mpp”という接尾部が付いています。
- MPIでコンパイルされたバイナリは、
mpirun
コマンドを使用して実行する必要があります。一般的な形式は次のとおりです。mpirun [list of mpirun option] engine_executable_mpp [list of engine option]
注:mpirun
のオプションリストの内容はMPIのベンダーによって異なります。MPIのドキュメントをご参照ください。 - MPIでコンパイルされたバイナリの場合は、次の形式で実行します。
engine_executable [list of engine option]
注: Radioss Engineのオプションリストは、どちらの種類の実行可能ファイルでも同じです。
引数 | 短縮形式 | 内容 |
---|---|---|
-dylib [FILE] |
Radiossユーザーサブルーチンのためのダイナミックライブラリの名前を設定します | |
-help |
-h |
ヘルプメッセージを表示します |
-input [FILE] |
-i |
Radioss Engine入力ファイルを設定します |
-licwait [h] |
-licwait が指定されていて、
Altair Units (AU) が不足している場合、
Radioss Engineはライセンスが利用可能になるまで指定された必要時間数[h] まで待機し、その後実行を開始します。 |
|
-mds_libpath [PATH] |
Multiscale Designerのためのダイナミックライブラリのパスを設定します。 | |
-norst |
計算中および計算終了時にリスタートファイル(*.rst)の書き込みを無効します | |
-notrap |
エラートラップを無効にします | |
-nthread [INTEGER] |
-nt |
SPMDドメインごとのSMPスレッド数を設定します |
-outfile=[output path] |
すべてのファイルの出力ディレクトリを指定します。 | |
-version |
-v |
Radiossのリリース情報を表示します |
-help引数
コマンド行引数のヘルプ情報を表示します。
ヘルプ情報の表示後、Radioss Engineは終了します。
-version引数
Radiossのリリース情報を表示します
- Radiossタイトル
- radflexの名前
- 使用するバージョン
- ビルド情報(ビルド日時およびビルドタグ)
ヘルプ情報の表示後、Radioss Engineは終了します。
-input [FILE] 引数
Radioss Engine入力ファイルを設定します。
FILE引数には、Radioss Engine入力ファイルを次のフォーマットで指定する必要があります:[ROOTNAME]_[RUN NUMBER].rad
ROOTNAME
- エータセットルート名
RUN NUMBER
- 4つの数字で表される実行番号
ROOTNAME
およびRUN NUMBER
は入力ファイルから抽出されます。-input
コマンドオプションを使用した場合、/RUNのデータセットROOTNAMEおよびRUN NUMBER
の設定は無視されます。- ファイル名のフォーマットが間違っている場合、ファイルは拒否されます。
- 指定したファイルが開かれます。標準入力は使用されなくなります。
- -inputを設定しなかった場合、Radioss Engineは標準入力を開いて入力を読み出します。
例
[user@machine]$ mpirun -np 4 ./e_2019_linux64 impi -nt 2 -input CRA2V51_0001.rad
************************************************************************
** **
** **
** RADIOSS ENGINE 2019 **
** **
** Non-linear Finite Element Analysis Software **
** from Altair Engineering, Inc. **
** **
** **
** Linux 64 bits, Intel compiler, Intel MPI **
** **
** **
** **
** Build tag: 0479348_2413000 **
************************************************************************
** COPYRIGHT (C) 1986-2019 Altair Engineering, Inc. **
** All Rights Reserved. Copyright notice does not imply publication. **
** Contains trade secrets of Altair Engineering Inc. **
** Decompilation or disassembly of this software strictly prohibited. **
************************************************************************
ROOT: CRA2V51 RESTART: 0001
NUMBER OF HMPP PROCESSES 8
17/10/2008
NC= 0 T= 0.0000E+00 DT= 1.7916E-03 ERR= 0.0% DM/M= 0.0000E+00
ANIMATION FILE: CRA2V51A001 WRITTEN
NC= 100 T= 1.7826E-01 DT= 1.7700E-03 ERR= 0.0% DM/M= 0.0000E+00
...
NC= 13700 T= 1.9871E+01 DT= 1.4032E-03 ERR= -1.2% DM/M= 0.0000E+00
** CPU USER TIME **
#PROC CONT.SORT CONT.F ELEMENT MAT KIN.COND INTEGR. I/O TASK0 ASSEMB RESOL
1 .0000E+00 .0000E+00 .1144E+02 .2910E+01 .7000E-01 .5600E+00 .3100E+00 .5000E+00 .3700E+00 .1364E+02
2 .0000E+00 .0000E+00 .1102E+02 .2870E+01 .7000E-01 .5600E+00 .0000E+00 .0000E+00 .3300E+00 .1364E+02
ELAPSED TIME : 7.79 s
RESTART FILE: CRA2V51_0001_0000.rst WRITTEN
NORMAL TERMINATION
TOTAL NUMBER OF CYCLES: 13793
[user@machine]$
-nthread [SMP THREAD NUMBER]引数
SPMDドメインごとのSMPスレッド数を設定します。各SPMDドメインは、SMP THREAD NUMBERで構成したマルチスレッドプロセスを使用して計算されます。
ここで、SMP THREAD NUMBER:INTEGER は、SPMDドメインごとのSMPスレッド数です。
例
[user@machine]$ mpirun -np 4 ./e_2019_linux64 impi -nthread 2 -input CRA2V51_0001.rad
- INTEGERに設定した値が適切でない場合、RadiossS Starterはエラーメッセージを表示して停止します。
-nthread
を設定した場合、Starterの現在の実行(/SPMD入力カード、-nthread
コマンド行)またはEngineの以前の実行で定義されたスレッド数は無視されます。- 環境変数OMP_NUM_THREADSを使用してスレッド数を変更することもできます。この場合、
–nthread
の値は、OMP_NUM_THREADSを使用する前の値から変わりません。 - パフォーマンス上の理由から、
–nt
ではなくOMP_NUM_THREADSを使用することをお奨めします。OMP_NUM_THREADSを使用すると、実際の使用スレッド数がシステムに通知されます。 - Radioss Engineでの計算に使用されるプロセスの合計数は、SPMD DOMAIN NUMBER * SMP THREAD NUMBERに等しくなります。
標準の動作、エラー処理
-version
-help
-input
,-nthread
,-notrap
コマンド行に引数を指定する場合、どのような順序で指定しても構いません。
-input
または-nthread
の引数が指定されていない-input
引数がRadiossファイルフォーマットではない-nthread
引数が整数ではない
このような場合、-help
と共にエラーメッセージが表示されます。
MPIオプションとRadiossオプションの一貫性
-nspmd
の値(または/SPMDStarter入力カードのNspmdフィールド)には、mpirun –np
と同じ値を指定する必要があります。異なる値を指定した場合、Radioss Engineは該当するエラーメッセージを表示して停止します。
[user@machine]$ ./s_2019_linux64 -nspmd 4 -input CRA2V51_0000.rad
[user@machine]$ mpirun -np 2 ./e_2019_linux64 impi -input CRA2V51_0001.rad
THE REQUIRED NUMBER OF MPI PROCESSES DOES NOT MATCH MPIRUN
PLEASE, RUN WITH THE PROPER NUMBER OF MPI PROCESSES
REQUIRED (NSPMD) = 4
AVAILABLE (mpirun -np) = 2
E R R O R T E R M I N A T I O N
TOTAL NUMBER OF CYCLES : 0
[user@machine]$ ./s_2019_linux64 -nspmd 4 -input CRA2V51_0000.rad
[user@machine]$ mpirun -np 4 ./e_2019_linux64 impi -input CRA2V51_0001.rad
-notrap引数
このオプションの追加でコアダンプを強制することができます。
これはコールスタックトレースバック情報を得るのに有用です。
-norst引数
計算中および計算終了時にリスタートファイル(*.rst)の書き込みを無効にするためのオプション。
これにより、書き込むファイルの数が減少するため、Engineの実行速度が速くなります。
-outfile=[output path] 引数
Engineによって、すべての出力ファイルとリスタートファイルが指定の出力パスに書き込まれます。
この出力パスは、絶対パスでも相対パスでもかまいません。出力パスに空白文字がある場合は、パスを引用符で囲む必要があります。Windowsの場合は、ディレクトリの区切り文字として“/”または“\”を使用できます。
例
e_2024_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
e_2024_linux64 -i TENSI36_0000.rad -outfile="../my directory"
e_2024_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
e_2024_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
e_2024_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
e_2024_win64.exe -i TENSI36_0000.rad -outfile="c:/storage/files/my directory
-dylib [FILE] 引数
このオプションでは、実行用のRadiossユーザーサブルーチンRadiossのフルパスまたは相対パス付きのファイル名を追加します。
-mds libpath [PATH] 引数
このオプションでは、Multiscale Designer材料則用のダイナミックライブラリのパスを指定します。デフォルトでは、RadiossはHyperMesh環境で定義されたパスを使用します。
解析プロセス
Radiossシミュレーションには、StarterとEngineの2つのパートがあります。Starterは入力データチェックであり、シミュレーションがEngineで完了される前に、エラーなしで正常に完了しなくてはなりません。
StarterとEngine
Radioss Starterは、入力としてのモデル(Starter入力ファイルrunname_0000.rad)と取り込み、Starter出力ファイルrunname_0000.outを生成します。Radioss Starterは、モデルの一貫性をチェックし、出力ファイルにエラーやワーニングをレポートする責任を担います。モデル内にエラーがない場合、Radioss Starterは初期リスタートファイルrunname_0000_CPU#.rstを生成します。解析に要求される各SPMD MPIドメインについて、1つのリスタートファイルが生成されます。
メモリおよびディスクの要件
STARTER MEMORY USAGE 1486 MB
LOCAL ENGINE STORAGE EVALUATION FOR SPMD PROCESSOR 1
--------------------------------------------------------
MEMORY USED FOR REALS 80 MB
MEMORY USED FOR INTEGERS 35 MB
TOTAL MEMORY EVALUATION 115 MB
RESTART FILE SIZE 60091KB
...
LOCAL ENGINE STORAGE EVALUATION FOR SPMD PROCESSOR 18
--------------------------------------------------------
MEMORY USED FOR REALS 83 MB
MEMORY USED FOR INTEGERS 38 MB
TOTAL MEMORY EVALUATION 122 MB
RESTART FILE SIZE 63349KB
** MEMORY USAGE STATISTICS **
TOTAL MEMORY USED .........................: 10284 MB
MAXIMUM MEMORY PER PROCESSOR...............: 605 MB
MINIMUM MEMORY PER PROCESSOR...............: 562 MB
AVERAGE MEMORY PER PROCESSOR...............: 571 MB
** DISK USAGE STATISTICS **
TOTAL DISK SPACE USED .....................: 1421485 KB
ANIMATION/TH/OUTP SIZE ....................: 200950 KB
RESTART FILE SIZE .........................: 1220535 KB
複数コアの使用
近年のCPUは通常、解析時間の短縮に活用できる複数のコアを有しています。
Shared-Memory Parallelism(SMP)、Single Program Multiple Data(SPMD)、Hybrid(SMPとSPMDの組み合わせ)の3つの異なる並列計算法が、問題の解析に用意されています。
SMP法は、指定されたコア(スレッドと呼ばれる)を使ってモデル全体を解析します。
SPMD法は、個々に解析される別個のドメインにモデルを分割し、ドメイン間のコミュニケーションはメッセージ伝達インターフェース(MPI)ソフトウェアによって扱われます。
Hybridモードでは、モデルは別々のドメインに分割され、続いて複数のコア(スレッド)が各ドメインの解析に用いられます。Hybridモードは、SPMD法のみを用いる場合と比べてドメインの数が少ないため、コミュニケーションの量を低減します。これは、1つのコンピュータークラスター上で非常に多くの数のコアを使用する際、あるいは低速のネットワークを介して結合された2つのワークステーションを使用する際に有益です。
-nt
NumThreads(SMPの場合)-np
NumDomains(SPMDの場合)-nt
NumThreads-np
NumDomains(Hybridの場合)
推奨されるものは、使用可能なコンピューターのセットアップに応じて異なります。
単一のワークステーション
- 実行オプション
-np
NumDomainsを指定することによって、SPMDのみを使用します - NumDomainsは、そのワークステーションのCPUで使用可能なコアの数です
- CPUにハイパースレッディングが使用可能な場合、コンピューターはCPUスペックにリストされている2倍の数のコアを有するように見えます。これらの追加のコアは仮想のもので、これによるスピードアップは僅かです。これら追加のコアの使用により5%のスピードアップが得られますが、ライセンスの数は要求されるコアの数によるため、追加のライセンスが使用されることになります。ハイパースレッディングを活用する場合、2 SMPスレッド、
-nt 2
のHybridモードが最良のスピードアップを提供します。例えば、8コアのCPUが使用されている場合、radioss -nt 2 -np 8
model_0000.radとなります。
コンピュータークラスター
- 使用されるコア数が256未満である場合、最も速い解析時間は
-np
NumDomainsを介したSPMDの使用でのみ得ることができます。注:-nt
=1がデフォルト値であるため、それを含める必要はありません。 - 使用されるコア数が256より大きい場合、ハイブリッドモードを使用しなければなりません(
-nt
NumThreads-np
NumDomains)。NumThreads= 2 および NumDomains= (# cores to be used ) / 2たとえば、クラスターノードが2 CPUを含み、各CPUは2コアを有する場合。512コアを使用するには、NumThreads=2およびNumDomains = 512/2=256。
- 計算ノード上で使用可能なすべてのコアが使用され、Radiossの解析に充てられる必要があります。すなわち、計算ノードが16コアを有する場合、使用できるコア数は16の倍数でなければなりません。
- ハイパースレッディングコアは、解析内で使用されるべきで、可能な場合、ハイパースレッディングはシステムバイオスで無効にされ得ます。
クラスターの管理を行うために、Altair PBSのようなジョブスケジューラーを使用することが推奨されます。
2個または3個のワークステーション
2個または3個のワークステーションをギガバイトイーサネットと繋いで使用し、1つのシミュレーションで解を求めることができます。
- 最良の結果を得るには、すべてのマシンが同じハードウェアである、もしくは少なくとも同じCPUを擁していなければなりません。
- ハイブリッドモードは、ネットワークコミュニケーション
-np
NumDomains-nt
NumThreadsを最小限にするために使用できます。NumThreads=2およびNumDomains=(すべてのマシン上で使用可能なコア総数)/NumThreadsを設定することから始めます。ベンチマークモデルを実行し、1個のみのワークステーションでモデルを実行する場合の時間と比較します。 - 次に、NumThreadsを増やしてベンチマークを再度実行し、さらなるスピードアップがあるかどうかを確認します。1 CPU上で、NumThreadsは、コア数以下でなければなりません。NumDomainsは、使用されるコンピューターの数の倍数でなければなりません。 たとえば、2つのCPUそれぞれで2つのワークステーションを使用し、各CPUのコア数が8の場合、2*2*8=32コアが使用可能です。
-nt 2 -np 16
= OK-nt 4 -np 8
= OK-nt 8 -np 4
= OK
- CPUにハイパースレッディングが可能な場合は、過剰なハイパースレッディングコアを使用してはいけません。
Altair HyperWorks Advanced Installation Guideに詳しく述べられているとおり、追加のセットアップが必要となります。
モデルサイズ
シミュレーションの実行に複数のコアを使用する際は、シミュレーションにリーズナブルな要素数がなければなりません。
スピードアップとスループットの良好なバランスは、解析に使用される各コアに少なくとも10000要素があることを確実にすることで得られます。したがって、320,000要素を有するモデルの場合、320,000/10000=32コアとなります。通常、コア毎に1000要素までで、さらなるスピードアップが得られます。
異なるコア数の使用
Starterは、SMP並列化を介して複数のコアを使用することができます。
多数のSPMDドメインを用いて実行する極端に大きいモデルの場合、Starterは、SMPコアがドメイン分割に活用されてリスタートファイルを生成していれば、より速く実行します。Compute Console (ACC)または含まれるスクリプトの使用時、StarterおよびEngineは-onestep
オプションを用いて別々に実行される必要があります。たとえば、CPU毎に12コアを有する1つの計算サーバーの120コアで実行する非常に大きい300万要素のモデルがあるとします。
Starterは12を使って120 SPMDドメインを計算し、リスタートファイルを生成します。
radioss -nt 12 -np 120 -onestep
model_0000.rad
EngineはSPMD並列化を用いて120コアを使用します。
radioss -nt 1 -np 120 -onestep
model_0001.rad
高度なテクニック
シミュレーションの状態のチェック、シミュレーションの停止、一部のシミュレーションオプションの修正または単精度の使用に用いることができる様々な高度なテクニックが存在します。
コントロールファイル(C-ファイル)
オプションのコントロールファイルは、その時点で実行している解析についての情報入手に使用されます。
シミュレーションファイルが実行されている間、Engine出力ファイルに出力されている以上の情報を得ることは非常に有益です。これは、その時点でのEngine入力ファイルと同じ接頭子を持ち*.ctlで終わる名称のRadiossコントロールファイルを用いて行うことができます。その時点で実行されているEngineファイルはTensileTest_0001.radと命名され、コントロールファイルはTensileTest_0001.ctlでなければなりません。
- 現在のシミュレーション時間、時間ステップ、サイクル、エネルギー情報および残りの時間の推定量を含むシミュレーションの状態を取得する
- 直ちに、もしくは特定の時間またはサイクル番号で計算を停止する
- 直ちに、もしくは特定の時間またはサイクル番号でアニメーションを生成する
Compute Console (ACC)が使用されていない場合、テキストエディタを使ってコントロールファイルが生成され、RadiossがEngine出力ファイルを書き出すディレクトリに保存されます。
- 動作
- 結果
- /ANIM
- 追加のアニメーションファイル(A###を作成します。Engineファイルで定義された出力頻度は、このオプションが使用されている際は変更されません。
- /CHKPT
- シミュレーションが停止された場合にそれを継続するための/RERUNコマンドを含んだCHECK_DATAという名のファイルを作成します。通常、シミュレーションを停止するための/STOPと共に使用されます。陰解法解析では使用できません。
- /CYCLE/Nbcycle
- コントロールファイルコマンドは、指定されたサイクル番号で実行されます。
- /H3D
- アニメーションデータを*.h3dファイルに書き出します。Engineファイルで定義された出力頻度は、このオプションが使用されている際は変更されません。
- /INFO
- 現在のサイクル、全体エネルギー、時間ステップに関する情報を返します。この情報は常に、すべてのオプションについて書き出されます。
- /KILL
- シミュレーションを打ち切り、リスタートファイルは生成しません。
- /RFILE
- リスタートファイルを生成します。
- /STOP
- シミュレーションを停止し、リスタートできるよう、リスタートファイルを生成します。
- /TIME/timeValue
- その他のコントロールファイルコマンドは、指定されたシミュレーション時間で実行されます。
Radiossがコントロールファイルを検知すると、入力されたオプションを用いて、シミュレーションのその時点でのステータスが同じコントロールファイル内に書き出されます。
/TIME/.1
/ANIM
/CHKPT
/STOP
RUN CONTROL FILE
----------------
WRITE NEXT ANIMATION FILES AT TIME 0.1000000
WRITE NEXT RESTART FILE AT TIME 0.1000000
RUN STOP AT TIME 0.1000000
CURRENT STATE:
--------------
CYCLE = 13040
TIME = 0.8153611E-02
TIME STEP = 0.6252749E-06SOLID 70
ENERGY ERROR = 0.0%
INTERNAL ENERGY = 0.1188329E-02
KINETIC ENERGY = 0.1050914E-07
ROT. KIN. ENERGY = 0.000000
EXTERNAL WORK = 0.1188431E-02
MASS.ERR (M-M0)/M0 = 0.000000
CURRENT ELAPSED TIME = 4.88 s
REMAINING TIME ESTIMATE = 594.04 s
複数のEngineファイル
複数のEngineファイルを定義して、シミュレーション中にソリューションコントロールおよび出力を変更することが可能です。
- シミュレーションの前に重力とプリテンションを初期化。
- アニメーションファイル(/ANIM/DT、/H3D/DT)、時刻歴(/TFILE)、リスタート(/RFILE)といった出力ファイル群の書き出し頻度を変更。
- 使用される時間ステップコントロールオプション(/DT/Keyword)を変更。
- システム減衰(/DAMP、/DYRELまたは/KEREL)を修正。
- 境界条件(/BCS/Keyword)を追加または削除、もしくは初期条件(/INIV/Keyword)を定義。
- 要素(/DEL/Eltypを削除、または剛体(/RBODY/Keyword2)のオンオフを切り替え。
複数のEngine 入力ファイルの定義と実行
上記のとおり、1つ目のEngineファイルの名称はrunname_0001.radとなります。2つ目のEngineファイルの作成時、数値は最大9999個のEngineファイルまで1ずつ増えます。したがって、2つ目のEngineファイルはrunname_0002.radと命名されます。ワーニングメッセージを回避するには、キーワード/RUNにリストされているRun NumberもEngineファイル番号に一致している必要があります。
/RUN/TensileTest/1
5.0
/TFILE
0.005
/ANIM/DT
0. 0.5
/ANIM/TENS/STRESS/MEMB
/PRINT/-1000
/DT/NODA/CST
0.9 1e-6
/RUN/TensileTest/2
10.0
/TFILE
0.0005
/ANIM/DT
0. 0.05
/ANIM/TENS/STRESS/MEMB
/PRINT/-10
/DYREL
1.00 0.002
/DT/NODA/CST
0.9 1e-7
チェックポイントファイル
チェックポイントファイルは、停止されたシミュレーションを継続するために使用されます。
Engineファイルに変更を加える必要がない場合、停止されたRadiossシミュレーションは、/RERUN/Run Name/Run Numberオプションを含んだチェックポイントファイルCHECK_FILEを用いることで継続できます。CHECK_FILEはテキストエディタの使用により作成でき、Compute Console (ACC)のソルバーコントロールオプションSTOPおよびCHKPTを用いることでシミュレーションを停止できます。
CHECK_FILEファイルは、テキストエディタを使って元のEngineファイルをCHECK_FILEという名称にコピーし、/RUN行を/RERUNに変更し、その他の行をすべてファイルから削除することで作成できます。解析をリスタートするのにAltair Compute Console (ACC)またはRadiossスクリプトを使用する際、StarterまたはEngineファイルは入力ファイルとして選択されることが可能で、先に定義されたものと同じ入力オプション群およびプロセッサの数を使用し、-checkpoint
オプションを追加します。例えば、
radioss -np 4 -checkpoint
tensileTest_0000.rad
実行可能ファイルで直接Radiossを実行する場合、CHECK_FILEがEngine実行可能ファイルへの入力として使われなくてはなりません。
単精度計算
Radiossの単精度バージョンは、拡張単精度として参照されます。これは、ほとんどの計算が単精度でありながら、一部はより精確な結果を得るために倍精度のままでいるためです。
デフォルトで単精度を用いる他の陽解法ソルバーとは異なり、Radiossはデフォルトで倍精度浮動点フォーマットを使用します。倍精度フォーマットは有効精度10進15~17桁を用いる一方、単精度フォーマットは有効精度10進6~9桁を使用します。
モデルに依存しますが、単精度バージョンは倍精度バージョンよりも30% - 40%速く実行します。
計算に単精度が使用される際、単精度では有効桁数が減少するため、浮動点計算で丸め誤差がより多く生じます。陽解法の計算は一度に1サイクルを計算し、その次のサイクルは1つ前のサイクルの計算に基づくため、サイクル数の多いシミュレーションは、シミュレーションが進むにつれて丸め誤差が累積し、結果の精度が落ちる可能性があります。
- 小さな時間ステップまたは長いシミュレーション時間のためにソリューションサイクル数が多い
- 要素サイズが小さい
- エアバッグシミュレーション
- 陰解法シミュレーション
- 流体および流体-構造相互作用シミュレーション、ALE、CEL
- 弾道シミュレーションなどの高速衝突
シミュレーションが単精度を用いて精確な結果をもたらすかどうかを見極める最も簡単な方法は、単精度結果と倍精度結果を比較して大きな差異がないかを確認することです。単精度結果と倍精度結果は同等にはなりませんが、非常に近いものでなければなりません。
単精度計算の開始
Compute Console (ACC)を使用する際、単精度バージョンは、-sp
オプションを用いることで起動できます。
radioss -np 24 -sp
tensile_model_0000.rad
Radioss実行可能ファイルを直接使用する場合は、単精度バージョンは、Radioss StarterとEngineの両方について“_sp
”名を含んだ実行可能ファイルを使って実行されます。
./s_<version>_<platform>_sp –i
<prefix>_0000.rad
./e_<version>_<platform>_sp –i
<prefix>_0001.rad