IntelコンパイラでMPIを利用するときの注意点
対象システム:TypeIIサブシステム、TypeIIIサブシステム、クラウドシステム
対象システムにおいて、MPIプログラムを実行(mpirun、mpiexec)する際、以下の点にご注意ください。
TCS(ジョブスプリクト)にて「#PJM --mpi proc=[プロセス数]」を指定した場合、環境変数は設定されますが
実行されるプロセス数には影響されません。
MPIプログラムの実行(mpirun,mpiexec)時には、-nオプションでプロセス数の明示的な指定が必要です。
明示的な指定がない場合、TCSで「#PJM --mpi proc=[プロセス数]」を指定していても、1プロセスで実行されてしまいますのでご注意ください。
ご参考までに、以下に例を記載いたします。
*ジョブスクリプトの例:
・リソースグループ cl-middle
・ノード数 16ノード
・プロセス数 320プロセス
・1プロセスあたりのスレッド数 1スレッド(オプション不要)
・経過時間 1時間
複数ノードMPI並列ジョブ用スクリプト(Intel MPI)
#------pisub option --------#
#PJM -L rscunit=cl
#PJM -L rscgrp=cl-middle
#PJM -L node=16
#PJM --mpi proc=320 ←省略可能
#PJM -L elapse=1:00:00
#PJM -j
#------- Program execution -------#
module purge
module load intel
mpiexec -machinefile $PJM_O_NODEINF -n 320 ./a.out ←必ず記入のこと
-nオプションでプロセス数の明示的な指定が必要です。指定がない場合、1プロセスで実行されてしまいます。
詳細は、hpcportalのマニュアルをご参照ください。
マニュアル - 利用手引書 -
TypeII利用手引書 - P.59 5.3.2.MPIオプション
TypeIII利用手引書 - P.42 5.4.5.3.単一ノードMPI並列ジョブ用スクリプト
クラウド利用手引書 - P.59 6.3.3.MPIオプション
以上、どうぞよろしくお願いいたします。