LoginSignup
2
1

More than 3 years have passed since last update.

ANSYS CFX を "Intel MPI" + "RDMA"で実行する方法

Last updated at Posted at 2020-07-31

RDMAを使った実行方法

start-methods.cclによるFabricの制御

CFXが使うMPIの環境変数をstart-methods.ccl ファイルで制御できる。
つまり、これを使ってInfinibandのFabricを制御することができる。

command
vi ${ANSYS_INSTALL_DIR}/v201/CFX/etc/start-methods.ccl

Intel MPI のときは

  • START METHODIntel MPI Distributed Parallel になっているブロックを探す
  • Appfile Host Entry=の中に以下を付け加える。

Infinibandのとき

command
-genv I_MPI_DEBUG +2 -genv I_MPI_FABRICS shm:dapl

Omni-Pathのとき

command
-genv I_MPI_DEBUG +2 -genv I_MPI_FABRICS shm:ofa

下記にその編集例を示す。

START METHOD: Intel MPI Distributed Parallel
         (省略)
        Appfile Host Entry = -n %{hostprocs} -host %{hostname} -wdir "%{workdir_host}" -genv I_MPI_DEBUG +2 -genv I_MPI_FABRICS shm:ofa -env LD_PRELOAD %{impidir}/lib/libmpi_mt.so -env %{ldpathvar} %{rldpath} %{executable} %{arguments}
              (省略)
END

I_MPI_DEBUG オプションは使われているFABRICをログに表示し確認するために用いている。

実行方法

実行コマンド

command
cfx5solve -def ${INPUT_FILENAME}.def \
    -par \
        -par-dist ${cfx_hosts} \
        -part ${NCPUS} \
        -large \
        -start-method "Intel MPI Distributed Parallel" \
    -batch

マシンファイルの形式

${cfx_hosts}の中身は以下のようなイメージ。この例だと80coresで計算が実行される

command
xs-cs2-15*40,xs-cs2-16*40

まとめ

start-methods.ccl ファイルを開き、Intel MPI Distributed Parallelのブロックを編集する。具体的には Appfile Host Entry= の真ん中あたりに下記を付け加えれば良い

  • InfinibandかつRDMA
    • -genv I_MPI_FABRICS shm:dapl
  • Omni-PathかつRDMA
    • -genv I_MPI_FABRICS shm:ofa
  • TCP-over-IB(TCPoIB)のとき(マシンファイルに注意: ibのネットワークカードを指定すること)
    • -genv I_MPI_FABRICS shm:tcp

Appendix: CFXのマニュアルより関連項目を抜粋し日本語化

ほとんどの場合、デフォルト設定で十分であり、環境変数を設定する必要はないかもしれません。
ANSYS CFXは、環境変数 "CFX5_IMPI_DIR"を使用して、使用するIntel MPIインストールを選択します。
デフォルト設定は、ANSYS CFXによって"/../commonfiles/MPI/Intel" ディレクトリに自動的にインストールされるバージョンを指します。

cfx5info -v を使用して、CFX5_IMPI_DIR およびその他の環境変数の現在の設定を見つけることができます。別のインテルMPIバージョンを使用する場合は、そのバージョンを別の場所にインストールし、CFX5_IMPI_DIR をその場所に設定できます。

Intel MPIの制御に使用できるいくつかの環境変数があり、ANSYS CFX起動スクリプトからは直接アクセスできない柔軟性が追加されます。たとえば、環境変数は、ネットワークファブリックの選択(以下で簡単に説明します)、process pinningの制御、および collective operation 制御に使用できます。

これらの環境変数は、${ANSYS_INSTALL_DIR}/v201/CFX/etc/start-methods.ccl ファイルのstartコマンドを変更し、インテルMPIオプション -env または -genv を使用して設定できます(この使用例は、ネットワークファブリックのセクションに記載されています)。すべてのオプションと環境変数の詳細については、Intel MPIのドキュメントを参照してください。

いくつかの有用な環境変数には、以下で説明するものが含まれます。これらの環境変数が設定されている場合、起動スクリプトは、ANSYS CFX実行用にそれらを自動的に設定します。

I_MPI_MPD_REMSH

インテルMPIがリモートマシンでジョブを生成するために使用する方法を指定します。 Intel MPIのデフォルトはsshです。ただし、デフォルトでは、ANSYS CFXソフトウェアはこれをCFX5RSHに使用される設定と同じに設定し、CFX5RSHが設定されていない場合はrshを設定します。この変数はLinuxにのみ適用されます。

I_MPI_FABRICS および I_MPI_FABRICS_LIST

使用するネットワークファブリックと、インテルMPIがそれらを検索する順序を指定します。

Appendix: 参考にしたIntel MPI 関連情報

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1