6.8. ジョブ投入コマンドのオプション(MPI)

MPIプログラムを実行するには、pjsubのオプションを適切に指定する必要があります。
1次元の指定例を示します。

【ジョブスクリプト】

#!/bin/sh
#PJM -L "node=24"               # node数の指定(1次元指定)
#PJM -L  "rscgrp=small"
#PJM --mpi "shape=12"           # 静的プロセス形状指定
#PJM --mpi "proc=12"            # 最大静的プロセス数
#PJM -g groupname               # 課題のグループ指定
#PJM -x PJM_LLIO_GFSCACHE=/vol000N         # ジョブで使用するデータ領域のvolume  #
mpiexec  -n  12 ./a.out         # 並列プロセス数24でa.outを実行
  1. -L "node=24"

    -L nodeで要求した形状/計算ノード数が確保されます。1次元形状(24)が指定されているため、1次元で24計算ノードが確保されます。

../_images/pjsubOptions%28MPI-related%29_01.png
  1. --mpi "shape=12"

    --mpi shapeで静的プロセスを割り当てる領域を決定します。--mpi shape-L nodeで指定した同じ次元(1次元/2次元/3次元)を指定します。--mpi shapeを省略した場合は、-L nodeの値となります。

../_images/pjsubOptions%28MPI-related%29_02.png
  1. --mpi rank-map-bynode/--mpi rank-map-hostfile/--mpi rank-map-bychip

    静的プロセスのランクを割り当てます。ランクは--mpi shapeの範囲で割り当てられます。

  2. mpiexec

    mpiexecコマンドでMPIプログラムを実行します。-nオプションで静的プロセス数を指定します。-nオプションを省略した場合は、--mpi procの値となります。

../_images/pjsubOptions%28MPI-related%29_03.png
  1. 動的プロセス生成

    MPI_Comm_spawnにより動的プロセスを生成した場合、未割当(動的プロセス割当領域)にプロセスが生成される。

../_images/pjsubOptions%28MPI-related%29_04.png