ANSYS HFSS FAQs
RescaleでHPCを使用してANSYS HFSSのジョブを送信する場合、ジョブが失敗した場合に備えてDEBUGファイルを収集しておくとよいでしょう。解析に失敗した場合、そのDEBUGファイルをRescaleサポートに提供することができます。問題が発生した場合は、弊社までご連絡ください。
ジョブ設定のソフトウェア設定ページのコマンドウィンドウで、通常実行するAnsys Electronics Desktopコマンドansysedtの前に、次のコマンドを追加します。以下に例を示します。
export DEBUG_LOG_DIR=`pwd`/debug_logmkdir $DEBUG_LOG_DIR 2>/dev/nullexport ANSOFT_DEBUG_LOG=$DEBUG_LOG_DIR/debugexport ANSOFT_DEBUG_LOG_SEPARATE=1export ANSOFT_DEBUG_LOG_THREAD_ID=1export ANSOFT_DEBUG_LOG_TIMESTAMP=1export ANSOFT_DEBUG_MODE=2export ANSOFT_PASS_DEBUG_ENV_TO_REMOTE_ENGINES=1
ansysedt -auto -distributed -monitor -machinelist file=$HOME/machinefile.hfss -ng -batchsolve test.aedt
解析を実行するだけでなく、ワークディレクトリ内にdebug-logディレクトリを作成し、そこに生成されたすべてのログを格納します。ANSYS HFSS のジョブをバッチで投入する際には、毎回これらのコマンドを使用することをお勧めします。
ANSYS Electronics Desktopは、2種類のHPCライセンスに対応しています。PackライセンスとPoolライセンスです。HFSSやMaxwellなどのScaleXプラットフォームを通じてバッチジョブを投入する場合、デフォルトのコマンドはHPC Packライセンスを使用するよう設定されています。HPCプールライセンスを使用するには、コマンドに次のフラグを追加する必要があります。
-batchoptions "'HFSS/HPCLicenseType'='Pool'"
HPCプールライセンス・フラグを含むHFSS実行コマンドのサンプルを以下に示します。
export TASKS_PER_NODE=-1for host in `cat $HOME/machinefile`do echo "$host:$TASKS_PER_NODE:$RESCALE_CORES_PER_NODE:90%" >> $HOME/work/machinefile.hfssdoneansysedt -auto -distributed -monitor -machinelist file=$HOME/work/machinefile.hfss \-batchoptions "'HFSS/HPCLicenseType'='Pool'" -ng -batchsolve my-hfss-input-file.aedt
ANSYS Electronicsには、分散バッチジョブのタスクを自動または手動で指定するオプションがあります。自動モードと手動モードの詳細については、『ANSYS Electromagnetics HPCHPC stands for High-Performance Computing. It refers to the ... Administrator’s Guide』を参照してください。
自動モード
このモードでは、ANSYS Electronics ソフトウェアが、利用可能なリソースにタスクをどのように配分するかを決定します。コマンドラインでは,TASK_PER_NODE という環境変数を使用します.この変数を -1 に設定すると、タスクは自動的にコアに分散されます。また、自動モードを指定するために、-autoフラグを使用します。自動モードの場合、コマンドラインは以下のようになります。
export TASKS_PER_NODE=-1
for host in `cat $HOME/machinefile`; do ssh ${host} "ansoftrsmservice start; RegisterEnginesWithRSM.pl add;"; echo ${host}:${TASKS_PER_NODE}:${RESCALE_CORES_PER_NODE}:90% >> $HOME/work/machinefile.hfss; done
ansysedt -auto -distributed -monitor -machinelist file=$HOME/work/ machinefile.hfss -ng -batchsolve ansys-hfss-electronics-example.aedtz
マニュアルモード
このモードでは、ノードあたりの総コア数およびタスク数(したがってタスクあたりのコア数)を指定することができます。コマンドラインでは、環境変数TASKS_PER_NODEを「2」、「4」、「8」、「16」などに設定できます。さらに、-autoフラグを削除する必要があります。
例えば、あるジョブで8コアを使用し、ノードあたりのタスクを2と設定した場合、各タスクは4コアを必要とし、その結果、ホストあたり最大2つのタスクとなります。
上記の例では、Rescaleプラットフォームでのコマンドラインは以下のようになります。
export TASKS_PER_NODE=2
for host in `cat $HOME/machinefile`; do ssh ${host} "ansoftrsmservice start; RegisterEnginesWithRSM.pl add;"; echo ${host}:${TASKS_PER_NODE}:${RESCALE_CORES_PER_NODE}:90% >> $HOME/work/machinefile.hfss; done
ansysedt -distributed -monitor -machinelist file=$HOME/work/ machinefile.hfss -ng -batchsolve ansys-hfss-electronics-example.aedtz
Rescale プラットフォームの ANSYS Electronics のデフォルトコマンドラインには、プレースホルダがあります。このプレースホルダに設計オプションの種類を指定するには,式を引用符で囲みます.
- “[designName]”- は、プロジェクトの下で指定された名前を持つデザインのすべてのセットアップを一括して解決します。
- “[designName]:Nominal” – プロジェクトの下で指定された名前の設計のすべてのノミナルセットアップをバッチで解決します。
- “[designName]:Optimetrics” – プロジェクトで指定された名前のデザインのOptimetricsセットアップをすべて一括で解決します。
- “[designName]:Nominal:[setupname]”と入力します。- は、プロジェクトの下で指定された名前の設計のための指定されたノミナル・セットアップを一括して解決します。setupnameは大文字と小文字を区別しません。
- “[designName]:Optimetrics:[setupname] – プロジェクトで指定された名前のデザインに対して、指定された Optimetrics セットアップを一括で解決します。セットアップ名は、大文字と小文字を区別しません。
ANSYS HFSSのバッチ例で示された問題で,2つ目の設計「pcie_gen3_fab3_cutout」のNominal部分を解く場合,コマンドラインは次のようになります.
export TASKS_PER_NODE=-1
for host in `cat $HOME/machinefile`; do ssh ${host} "ansoftrsmservice start; RegisterEnginesWithRSM.pl add;"; echo ${host}:${TASKS_PER_NODE}:${RESCALE_CORES_PER_NODE}:90% >> $HOME/work/machinefile.hfss; done
ansysedt -auto -distributed -monitor -machinelist file=$HOME/work/ machinefile.hfss -ng -batchsolve "pcie_gen3_fab3_cutout:Nominal" ansys-hfss-electronics-example.aedtz
バッチジョブのコマンドラインに-batchextractフラグを追加し、その後にマクロファイルを追加します。以下の例を参照してください。
export TASKS_PER_NODE=-1for host in `cat $HOME/machinefile`do ssh ${host} "ansoftrsmservice start; RegisterEnginesWithRSM.pl add;" echo ${host}:${TASKS_PER_NODE}:${RESCALE_CORES_PER_NODE}:90% >> $HOME/work/machinefile.hfssdoneansysedt -auto -distributed -monitor -machinelist file=$HOME/work/ machinefile.hfss \-batchextract Sparameter_extract.py -batchoptions "" -ng -batchsolve ansys-hfss-electronics-example.aedtz
ここで、
Sparameter_extract.py
は、HFSS GUIに記録されたポストプロセッシングマクロ、
ansys-hfss-electronics-example.aedtz
はHFSSの入力ファイルである。
このフラグはHFSSモデルタイプにのみ有効で、3Dレイアウトモデルタイプには有効でないことに注意してください。
Mercury、Sunstone、Ferrite などのコアタイプで HFSS/Maxwell を実行する場合は、ansys コマンドラインの前に IB 環境変数を設定し、バッチオプション (-batchoption ” ‘/MPIVendor’=’Intel’ “) を追加指定する必要があります。
export I_MPI_DAPL_PROVIDER=ofa-v2-ib0
export I_MPI_DYNAMIC_CONNECTION=0
export I_MPI_DAPL_UD=0
export I_MPI_DAPL_TRANSLATION_CACHE=0
export I_MPI_FABRICS=shm:dapl
export TASKS_PER_NODE=-1
for host in `cat $HOME/machinefile`; do ssh ${host} "ansoftrsmservice start; RegisterEnginesWithRSM.pl add;"; echo ${host}:${TASKS_PER_NODE}:${RESCALE_CORES_PER_NODE}:90% >> $HOME/work/machinefile.hfss; done
ansysedt -auto -distributed -monitor -machinelist file=$HOME/work/ machinefile.hfss -batchoption ” ‘HFSS/MPIVendor’=‘Intel’ ” -ng -batchsolve ansys-hfss-electronics-example.aedtz
HFSS 2020R1より、エレクトロニクス製品の機能は、Electronics Pro、Premium、Enterpriseとなりました。elec_solve_hfssなど、このライセンス体系が有効でないと利用できない機能があります。
この機能を有効にするには、-batchoptionsフラグに -useelectronicsppe引数を追加する必要があります。ansysedtの実行でこの機能を使用する例を以下に示します。
ansysedt -auto -distributed -monitor -machinelist file=$HOME/work/machinefile.hfss -batchoptions "'HFSS/UseLegacyElectronicsHPC'=0" -useelectronicsppe -ng -batchsolve QDD112_DFM0831_RowD_PlugR5b_HostV5_Statistical_20200901_3_Case4.aedt