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)

 #!/bin/sh
 #------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オプション


以上、どうぞよろしくお願いいたします。