Radiossの実行

Radiossソルバーは、ここで説明するさまざまな方法で実行することができます。

Altair Compute Console (ACC)から

Altair Compute Console (ACC)は、Radioss計算を起動する最も簡単な方法です。

入力ファイルの選択、実行オプションの定義、キューを使った複数ソルバーの実行、遅延のスケジュール、ジョブの停止などのための対話型GUIを備え、実行に必要なすべての環境変数があらかじめ定義されています。

Windowsでは、Compute Console (ACC)は、Start > 2022 > Compute Consoleを選択することで起動できます。

Compute Console (ACC)は、ソフトウェア内からHelp > Compute Console Manualを選択することで起動できます。

すべてのプラットフォーム上で、次のようにコマンド行からこのユーティリティを起動できます
Linux
<install_dir>/altair/scripts/radioss -gui
Windows
<install_dir>/hwsolvers/scripts/radioss.bat -gui

入力ファイル名

入力ファイル名に基づき、Compute Console (ACC)は、StarterまたはEngineを実行すべきかを自動的に検知します。
  • デフォルトでは、入力ファイルのディレクトリ内のすべての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 –nt 2

-np SPMD MPIドメインの数 Radioss SPMD MPIドメインの数

(例: radioss ROOTname_0000.rad –np 12

使用可能なすべての実行時のオプション

スペースまたは特殊文字を含む引数は{}で囲む必要があります。たとえば:
-mpipath {C:/Program Files/MPI}

Windowsマシンのファイルパスには、バックスラッシュ“\”またはスラッシュ“/”が使用できますが、バックスラッシュ“\”の使用時は引用符で囲まなくてはなりません。

オプション 引数 内容 利用可能なプラットフォーム
-altver   代替ソルバーバージョンの接尾辞。 すべてのプラットフォーム
-appfile N/A SPMD実行用の一部のMPIを含む仕様ファイル。 すべてのプラットフォーム
-args   ソルバーに渡される追加の引数。

例: \"\{-x\} \{-f=C:/file name/path\}\"

すべてのプラットフォーム
-check   モデルに警告やエラーがないかチェックします。領域分割を無効にし、ファイルの書き込みを再開します。 すべてのプラットフォーム
-checkpoint N/A チェックポイントsavefileからRadioss Engineを実行します。 すべてのプラットフォーム
-debug 1, 2 スクリプトのデバッグ情報を出力します。 すべてのプラットフォーム
-delay 秒数 Radioss実行の開始を指定した秒数だけ遅らせます。この機能では、遅延が終了して実行が開始されるまではライセンス、コンピューターメモリ、CPUを消費しません。
このオプションは、その時点で使用できないが前回の実行からまだ解放されていない計算リソースを待つために使用できます。前回の実行がクラッシュした場合、ライセンスはタイムアウト値に応じてライセンスサーバーからロックされたままになっている場合があります。もしくは、メモリがオペレーティングシステムにより保留とされているかもしれません。
注:
  1. –delayオプションはその時点でのジョブに適用されます。そのジョブがCompute Console (ACC) のキューにサブミットされると、Compute Console (ACC) がこのジョブを実行用にリリースした後、ディレイが開始します。
  2. Compute Console (ACC) を使用して実行を開始された場合は、Schedule delayオプションを使ってキューの開始をディレイさせる必要があります。
すべてのプラットフォーム
-dylib FILE Radiossユーザーサブルーチンのためのダイナミックライブラリの名前を設定します。 すべてのプラットフォーム
-hostfile TEXT FILE マルチコンピュータ(ノード)実行用のホストおよびコア数をリストするテキストファイル。 正確なフォーマットについてはMPIドキュメントをご参照ください。 すべてのプラットフォーム
-HSTP_READ NA hst_input.hstpファイルを読み込み、入力デックの/PARAMETERをreadファイルで指定されたものに置き換えます。 すべてのプラットフォーム
-HSTP_WRITE NA モデルの/PARAMETERモデル情報を含む<root_name>_0000.rad2hstファイルを出力します。 すべてのプラットフォーム
-mpi i , pl, ms マルチプロセッサ(SPMD)実行に使用するMPIソフトウェアを指定します。
i
Intel MPI
pl
IBM Platform-MPI(以前のHP-MPI)
ms
Microsoft MPI
注: –mpiに対する引数はオプションです。引数が指定されていない場合、Intel MPIがデフォルトで使用されます。
すべてのプラットフォームがすべてのMPIソフトウェアをサポートするわけではありません。
-mpipath DIRECTORY mpirunが位置するパスを指定します

Altair SimulationにはMPIソフトウェアが含まれているため、これは通常必要ありません)。

すべてのプラットフォーム
-noh3d N/A シミュレーションの終了時にRadiossアニメーションファイルからh3dファイルを生成しません。 すべてのプラットフォーム
-norst N/A シミュレーションの終了後、すべてのリスタート(*.rst)ファイルを削除します。 すべてのプラットフォーム
-np または-nspmd SPMD MPIドメインの数 Radioss SPMD MPIドメインの数

例: radioss -np 4 ROOTname_0000.rad

すべてのプラットフォーム
-nt または-nthread スレッド数 SPMD MPIドメインごとのSMPスレッド数。

例: radioss -i ROOTname_0000.rad -np 4 -nt 2

すべてのプラットフォーム
-nt_r2r   マルチドメインプロセス用のCPUスレッド数。 すべてのプラットフォーム
-onestep N/A 次のEngineファイルまたはモデルファイルへの自動継続を無効にし、単一ファイルフォーマットのStarterのみを実行します すべてのプラットフォーム
-outfile DIRECTORY StarterとEngineによって作成されるすべてのファイルの出力ディレクトリを指定します。 すべてのプラットフォーム
-radfiles N/A 現在のフォルダー内のすべてのファイルを検出されたタイプ(Starter/Engine/mod)とともにリストします。 すべてのプラットフォーム
-radopt .radopt ファイル OptiStructRadioss最適化を実行するためのオプション。Radioss入力デックのための最適化実行の要求を指定します。
注: 最適化入力をサポートするRadioss Starterと入力ファイルは、<name>.radoptファイルと同じディレクトリに用意する必要があります。

詳細については、設計最適化をご参照ください。

すべてのプラットフォーム
-rseed seed オプション値:節点のランダムノイズのseed 値を設定(0 ≤ seed < 1)。 すべてのプラットフォーム
-rxalea xalea 節点のランダムノイズをxaleaの値とともアクティベートします(xalea ≥ 0)。 すべてのプラットフォーム
-sp N/A 単精度バージョンのRadiossの実行を指定します。 すべてのプラットフォーム
-v   複数のソルバーがインストールされている場合、必要となるバージョン。指定されていない場合はインストールされている中で最新のバージョンが使用されます。

例: radioss -v 14.0.220 ROOTname_0000.rad

すべてのプラットフォーム

ソルバーコントロール

初期のCompute Console (ACC)入力画面でUse solver controlオプションにチェックが入っている場合、解析が実行を開始した際にソルバービューウィンドウが現れます。これによりユーザーは、オプション(INFOSTOPKILLH3DANIMRFILECHKP)のうちの1つを選択し、Send Commandをクリックすることができます。これらのオプションの詳細については、コントロールファイル(C-ファイル)をご参照ください。


図 1.
注: ANIMまたはH3Dオプションは、現在または指定した時間 / 周期における追加のアニメーションファイルを生成するために使用できます。これは、シミュレーションの状態を確認したい際に非常に役立ちます。STOPオプションは解析を停止し、後ほど解の継続に使用できるリスタートファイルを生成します。

Altair Simulationスクリプトから

HyperWorksに含まれるスクリプトを使ってコマンド行からRadiossを起動します。

このスクリプトは、ジョブスケジューラーを介してハイパフォーマンスコンピューティングクラスター上でRadiossを実行する際に使用されるべきです。多くの環境変数が既に定義されているため、セットアップが簡単に済みます。Compute Console (ACC)で使用可能なオプションはすべて、コマンド行から使用できます。

Linuxのコマンド行から実行するには、次のように入力します:
<install_dir>/altair/scripts/radioss  "filename" -option argument
WindowsのDOSプロンプトから実行するには、次のように入力します:
<install_dir>\hwsolvers\scripts\radioss.bat "filename" -option argument

スクリプトのオプション群は、使用可能なすべての実行時のオプションで説明されています。

HyperMeshから実行

HyperMeshRadioss有限要素モデルを作成する際、シミュレーションはRadiossパネルに進むことによりHyperMeshで直接実行できます。

パネルには、Analysisページから、Utilityメニューから、またはApplicationsメニューからアクセスできます。パネルでは、入力ファイル名が求められます。Solverボタンをクリックすると、指定したエクスポートオプションを使ってモデルがエクスポートされ、続いて、マシン上にてローカルに用意されたスクリプトをソルバーが実行します。ソルバー実行の終了後、HyperViewをクリックして、HyperViewで結果を見ることができます。
注: Linuxでは、HyperMeshからRadiossを実行すると、DISPLAYが<ホスト名>:0.0に設定された状態でシェルが起動します。この設定がHyperMeshのDISPLAY設定と異なる場合は、HyperMeshに使用されている21 Altairユニットに加え、25/38 Altairユニットが照合されます。ユニットが追加で照合されないようにするためには、HyperMeshを開始する前に、DISPLAYが<hostname>:0.0に設定されていることを確認します。

実行可能ファイルの直接実行

Radioss実行可能ファイルは直接実行することができますが、各種環境変数が定義される必要があります。

したがって、コンピューターサーバー上でジョブを起動する際は、Altair Simulationに含まれる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/

スレッド毎のスタックサイズ環境変数も、SMPバージョンの使用時に定義が必要です。
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
スタックサイズメモリは、ログインシェルに応じ、これらのコマンドを用いて無制限に設定しなければなりません。
cshシェルを使用
limit stacksize unlimited
shシェルを使用
unlim -s unlimited

Radioss実行可能ファイルは、<install_dir>\hwsolvers\radioss\bin\<platform>\にあります。

Radioss StarterおよびEngineを実行するには:
./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+信号番号
プロセスの障害(コアダンプ、セグメンテーションの障害)
Linuxでは、オペレーティングシステムによってエラーコード136(浮動小数点例外)または139(セグメンテーションの障害)が設定されます。Linuxでは、‘$?’コマンドを使用すると終了コードを取得できます。
#!/bin/bash
s_2021.1_linux64 –input [Starter_input]_0000.rad –np 96
Exit_code=$?
echo $Exit_code
Windowsでは、スクリプトで‘errorlevel’変数を使用します。
s_2021.1_win64.exe –input [Starter_input]_0000.rad –np 96
echo %errorlevel%

Starterコマンド行引数

Radioss Starterでは次のコマンド行引数がサポートされています。

引数 短縮形式 内容
-help -h ヘルプメッセージを表示します
-version -v Radiossのリリース情報を表示します
-input [FILE] -i Radioss Starter入力ファイルを設定します
-nspmd [INTEGER] -np SPMDドメインの数を設定します
-nthread [INTEGER] -nt SPMDドメインごとのスレッド数を設定します
-notrap   エラートラップを無効にします
-check   モデルチェックのオプション。領域分割を無効にし、ファイルの書き込みを再開します。
-outfile=[output path]   すべてのファイルの出力ディレクトリを指定します。
-HSTP_WRITE   /PARAMETERモデル情報を含む<root_name>_0000.rad2hstファイルを出力します。
-HSTP_READ   hst_input.hstpファイルを読み込み、入力デックの/PARAMETER.hstpファイルで指定されたものに置き換えます。
-rxalea [REAL]   [value] xaleaを持つ節点のランダムノイズをアクティブ化します。
-rseed [REAL]   オプション値:節点のランダムノイズのseed 値を設定します。
-dylib [FILE]   Radiossユーザーサブルーチンのためのダイナミックライブラリの名前を設定します。
-mds_libpath [PATH]   Multiscale Designerのためのダイナミックライブラリのパスを設定します。

-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_2021.1_linux64 -input CRA2V51_0000.rad

-nspmd [SPMD DOMAIN NUMBER] 引数

SPMDドメインの数を設定します。

ここで:

SPMD DOMAIN NUMBER: INTEGER は、SPMDドメインの数です。

[user@machine]$ ./s_2021.1_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_2021.1_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は処理を続行し、エラーが発生した時点でコアダンプを実行できます。外部ツールを使用してエラーをトレースする場合、この動作が役に立つことがあります。

標準の動作、エラー処理
  1. -version
  2. -help
  3. -nspmd-input-nthread-notrap
注: 引数 1、2と3は同時に用いることはできません。

-nspmd-nthread-notrap-inputは同時に使用できます。順序は関係ありません。

次のようなエラーが発生することがあります:
  • -input–nspmd、または-nthreadの引数が指定されていない
  • -input引数がRadiossファイルフォーマットではない
  • -nspmdまたは-nthread引数が整数ではない
  • 未知のコマンド行引数が使用されている

このような場合、-helpと共にエラーメッセージが表示されます。

-check引数

モデルチェック後にStarterを停止するためのオプション。

領域分割は計算されず、リスタートファイル(.rst)は書き込まれません。これにより、モデルチェックの実行時にStarterモデルの実行時間が短くなります。

-outfile=[output path] 引数

Starterによって、すべての出力ファイルとリスタートファイルが指定の出力パスに書き込まれます。

この出力パスは、絶対パスでも相対パスでもかまいません。出力パスに空白文字がある場合は、パスを引用符で囲む必要があります。Windowsの場合は、ディレクトリの区切り文字として“/”または“\”を使用できます。

Linux:
s_2022_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
s_2022_linux64 -i TENSI36_0000.rad -outfile="../my directory"
s_2022_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
Windows
s_2022_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
s_2022_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
s_2022_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材料則用のダイナミックライブラリのパスを指定します。デフォルトでは、RadiossHyperWorks環境で定義されたパスを使用します。

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のオプションリストは、どちらの種類の実行可能ファイルでも同じです。
Radioss Engineでは次のコマンド行引数がサポートされています。各引数にはロングフォームとショートフォームがあり、これらが実行可能ファイルの引数になります。
引数 短縮形式 内容
-help -h ヘルプメッセージを表示します
-version -v Radiossのリリース情報を表示します
-input [FILE] -i Radioss Engine入力ファイルを設定します
-nthread [INTEGER] -nt SPMDドメインごとのSMPスレッド数を設定します
-notrap   エラートラップを無効にします
-norst   計算中および計算終了時にリスタートファイル(*.rst)の書き込みを無効します
-outfile=[output path]   すべてのファイルの出力ディレクトリを指定します。
-dylib [FILE]   Radiossユーザーサブルーチンのためのダイナミックライブラリの名前を設定します
-mds_libpath [PATH]   Multiscale Designerのためのダイナミックライブラリのパスを設定します。

-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に等しくなります。
標準の動作、エラー処理
  1. -version
  2. -help
  3. -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
この場合、はRadioss標準出力とリストファイルに次のようなエラーメッセージを表示します。
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の場合は、ディレクトリの区切り文字として“/”または“\”を使用できます。

Linux:
e_2022_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
e_2022_linux64 -i TENSI36_0000.rad -outfile="../my directory"
e_2022_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
Windows
e_2022_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
e_2022_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
e_2022_win64.exe -i TENSI36_0000.rad -outfile="c:/storage/files/my directory

-dylib [FILE] 引数

このオプションでは、実行用のRadiossユーザーサブルーチンRadiossのフルパスまたは相対パス付きのファイル名を追加します。

-mds libpath [PATH] 引数

このオプションでは、Multiscale Designer材料則用のダイナミックライブラリのパスを指定します。デフォルトでは、RadiossHyperWorks環境で定義されたパスを使用します。

解析プロセス

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つのリスタートファイルが生成されます。

Radioss解析の2番目のパートはRadioss Engineと呼ばれます。Radioss Engineは入力としてRadioss Engineファイルrunname_0001.radおよびRadioss Starterによって生成された初期リスタートファイルを取り込みます。Radioss Engineファイルは、そのシミュレーションについて解析制御と出力を記述します。Radioss Engineが実行している間、時間、時間ステップ、現在のシステムエネルギー、エネルギーエラー、質量エラーなどシミュレーションに関する統計を含んだEngine出力ファイルrunname_0001.outが生成されます。


図 2. シングルMPIドメインが使用されている際のRadiossの計算プロセス

メモリおよびディスクの要件

メモリはRadioss Starterによって自動的に割り当てられ、使用される量はStarter出力ファイルにリストされます。
STARTER MEMORY USAGE       1486 MB
次に、Starterは各MPIプロセスについてのメモリ推量とリスタートファイルサイズを与えます。
     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
Radioss Engineが実行を終えると、Engine出力ファイルは、シミュレーションによって使用された実際のメモリおよびディスク容量を含むようになります。
                   ** 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つのワークステーションを使用する際に有益です。

各手法で使用するコアの数は、 Compute Console (ACC)入力オプションを使って指定されます:
  • -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 Simulation 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でなければなりません。

コントロールファイルを使用する理由には以下のものがあります:
  • 現在のシミュレーション時間、時間ステップ、サイクル、エネルギー情報および残りの時間の推定量を含むシミュレーションの状態を取得する
  • 直ちに、もしくは特定の時間またはサイクル番号で計算を停止する
  • 直ちに、もしくは特定の時間またはサイクル番号でアニメーションを生成する
Altair Compute Console でソルバーコントロールオプションにチェックマークが入った状態でシミュレーションが開始されると、次のようなダイアログが現れ、Send Commandボタンが選択されている際は、選択されたオプションを使って自動的にコントロールファイルが生成されます。


図 3.

Compute Console (ACC)が使用されていない場合、テキストエディタを使ってコントロールファイルが生成され、RadiossがEngine出力ファイルを書き出すディレクトリに保存されます。

以下のオプション群が、それぞれ独自の行に置かれてコントロールファイル内で使用できるよう用意されています。/TIMEまたは/CYCLEが含まれている場合を除き、各動作はRadiossがコントロールファイルを読み出した直後に実行されます。そうではない場合、指定された /TIMEまたは/CYCLEで動作が行われます。
動作
結果
/ANIM
追加のアニメーションファイル(A###を作成します。Engineファイルで定義された出力頻度は、このオプションが使用されている際は変更されません。
/CHKPT
シミュレーションが停止された場合にそれを継続するための/RERUNコマンドを含んだCHECK_DATAという名のファイルを作成します。通常、シミュレーションを停止するための/STOPと共に使用されます。陰解法解析では使用できません。
/CYCLE/Nbcycle
コントロールファイルコマンドは、指定されたサイクル番号で実行されます。
/H3D
アニメーションデータを*.h3dファイルに書き出します。Engineファイルで定義された出力頻度は、このオプションが使用されている際は変更されません。
/INFO
現在のサイクル、全体エネルギー、時間ステップに関する情報を返します。この情報は常に、すべてのオプションについて書き出されます。
/KILL
シミュレーションを打ち切り、リスタートファイルは生成しません。
/RFILE
リスタートファイルを生成します。
/STOP
シミュレーションを停止し、リスタートできるよう、リスタートファイルを生成します。
/TIME/timeValue
その他のコントロールファイルコマンドは、指定されたシミュレーション時間で実行されます。

Radiossがコントロールファイルを検知すると、入力されたオプションを用いて、シミュレーションのその時点でのステータスが同じコントロールファイル内に書き出されます。

たとえば、シミュレーションはリモートシステム上で稼働していてAltair Compute Consoleを使って開始されなかった場合、TensileTest_0001.radという名のEngine入力ファイル、TensileTest_0001.ctlという名のコントロールファイルが以下の情報を含んで生成され、シミュレーションの作業ディレクトリにアップロードされます。
/TIME/.1
/ANIM
/CHKPT
/STOP
Radiossがコントロールファイルを検知すると、シミュレーションのその時点でのステータスとコントロールファイルコマンドの実行に関する情報が、同じTensileTest_0001.ctlファイルに書き出されます。シミュレーション内のt=0.1において、Radiossはアニメーションファイル、CHECK_DATAファイル、リスタートファイルを生成し、シミュレーションを停止します。
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ファイルを定義して、シミュレーション中にソリューションコントロールおよび出力を変更することが可能です。

このパワフルな機能の一般的な使用例には以下が含まれます:
  1. シミュレーションの前に重力とプリテンションを初期化。
  2. アニメーションファイル(/ANIM/DT/H3D/DT)、時刻歴(/TFILE)、リスタート(/RFILE)といった出力ファイル群の書き出し頻度を変更。
  3. 使用される時間ステップコントロールオプション(/DT/Keyword)を変更。
  4. システム減衰(/DAMP/DYRELまたは/KEREL)を修正。
  5. 境界条件(/BCS/Keyword)を追加または削除、もしくは初期条件(/INIV/Keyword)を定義。
  6. 要素(/DEL/Eltypを削除、または剛体(/RBODY/Keyword2)のオンオフを切り替え。

複数のEngine 入力ファイルの定義と実行

上記のとおり、1つ目のEngineファイルの名称はrunname_0001.radとなります。2つ目のEngineファイルの作成時、数値は最大9999個のEngineファイルまで1ずつ増えます。したがって、2つ目のEngineファイルはrunname_0002.radと命名されます。ワーニングメッセージを回避するには、キーワード/RUNにリストされているRun NumberもEngineファイル番号に一致している必要があります。

例:1つ目のEngineファイル TensileTest_0001.rad
/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
例:2つ目のEngineファイル TensileTest_0002.rad(変更されたオプション付き)。
/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つ前のサイクルの計算に基づくため、サイクル数の多いシミュレーションは、シミュレーションが進むにつれて丸め誤差が累積し、結果の精度が落ちる可能性があります。

丸め誤差を最小にするには、倍精度であるRadiossのデフォルトバージョンを使用することが推奨されます。これは、以下の特徴を有するシミュレーションで最も重要です:
  • 小さな時間ステップまたは長いシミュレーション時間のためにソリューションサイクル数が多い
  • 要素サイズが小さい
  • エアバッグシミュレーション
  • 陰解法シミュレーション
  • 流体および流体-構造相互作用シミュレーション、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