このページの更新は終了しました。

最新の情報はTSUBAME3.0計算サービスのWebページをご覧ください。

TSUBAME2.5からTSUBAME3.0へのデータ移行方法の資料はこちら

ハイブリット並列時の環境変数の引き渡し方法を教えてください(OpenMP,自動並列)(2014.10.17新規)

ここでいうハイブリット並列とは、ノード間並列をMPIで,ノード内はSMP並列を使用した複合型の並列のことです。

(1) ノード内並列
    TSUBAMEのSMP並列は openMP と 自動並列の2種類選択できます。どちらも同じ次のような環境変数でコントロールできます。

     export OMP_NUM_THREADS=2

(2) MPI並列
    TSUBAMEのMPI並列は3種類のMPIがインストールされています。openmpi , mvapich2 , mpich2 になります。
    実行方法は同じ型で記述できます。

    mpirun -n X  -hostfile $PBS_NODEFILE ./mpiprog

    ここで Xには実行する並列数を指定します。
   ※ X の値を実行シェル内で編集することも可能です。こちらを参照ください。

(3) ハイブリッド並列
  (a) openmpiの場合
   openmpiの場合、環境変数の引き渡しの記述が必要です。 以下のようにパラメータを与えてください。

      mpirun -n X  -hostfile $PBS_NODEFILE -x OMP_NUM_THREADS=$OMP_NUM_THREADS ./mpiprog

      ※ openMP、自動並列共に同じ環境変数でコントロールできます。
      ※ MKLのSMP並列は MKL_NUM_THREADS でコントロールしてください。
      ※ その他の環境変数も -x オプションで引き渡しできます。

  (b) mvapich2,mpich
     このMPIは環境変数が全てのプロセスにわたりますので、特別な記述は必要ありません。

(4) t2subでの数字の与え方
   ハイブリット並列の場合は ncpus にスレッド数を与えます。
    PBSがncpusの数字を NCPUS , OMP_NUM_THREADS に値をセットします。
    こちら の例を参照ください。