OpenMPIによるノード間並列に加えて、OpenMPによってノード内並列実行を行うことが可能です。
MPIプログラムに対して、OpenMP用のコンパイル、指示行挿入を行う必要がありますので、まず以下をご一読ください。
 
OpenMPIの利用方法
自動並列化/OpenMPの利用方法
 

コンパイラの選択方法

まず、OpenMPIを使用するコンパイラを選択する必要があります。
使用したいコンパイラに合わせて、フロントエンドで以下のコマンドを実行し、環境変数を設定してください。
※後述しますが、ジョブスクリプトでも実行が必要です。
 
intelコンパイラを使用する場合(csh)

setenv PATH "/sc/cmc/apl/openmpi/intel/bin:${PATH}"

GNUコンパイラを使用する場合(csh)

setenv PATH "/sc/cmc/apl/openmpi/gcc/bin:${PATH}"

 
 

コンパイル コマンド

OpenMP使用オプションがintelコンパイラとGNUコンパイラで異なります。

OpenMPI(Intelコンパイラ)+OpenMP

$ mpif90 -openmp [options] source_file (Fortranの場合)
$ mpicc -openmp [options] source_file (Cの場合)
$ mpic++ -openmp [options] source_file (C++の場合)

OpenMPI(GNUコンパイラ)+OpenMP

$ mpif90 -fopenmp [options] source_file (Fortranの場合)
$ mpicc -fopenmp [options] source_file (Cの場合)
$ mpic++ -fopenmp [options] source_file (C++の場合)

コンパイラの使い方やオプションの詳細については、各コンパイラのページをご覧ください。

intelコンパイラの使い方 GNUコンパイラの使い方

 
 

実行スクリプト

OpenMPI(intelコンパイラ)とOpenMPを用いたハイブリッド並列(ノード間+ノード内並列)のスクリプト例は下記の通りです。
4ノード並列実行、1ノードにつき20並列実行(計80並列実行)、経過時間 1時間、メモリ 60GB でOpenMPIのバッチリクエストを実行するスクリプトになります。7行目は、「コンパイラの選択方法」で解説している環境変数の設定になります。

 

OpenMPI(GNUコンパイラ)とOpenMPを用いたハイブリッド並列(ノード間+ノード内並列)のスクリプト例は下記の通りです。
4ノード並列実行、1ノードにつき20並列実行(計80並列実行)、経過時間 1時間、メモリ 60GB でOpenMPIのバッチリクエストを実行するスクリプトになります。7行目は、「コンパイラの選択方法」で解説している環境変数の設定になります。

 
 

マルチノード実行時の注意点

ジョブスクリプトで「setenv (オプション名)」などでオプションや環境変数を指定した場合、マスターノードにのみ設定され、スレーブノードには設定されません。
※上述のOpenMPIの環境変数設定はマスターノードのみの設定で問題ありません。
全ノードに設定を反映させたい場合は「#PBS -v (オプション名)」と指定してください。
詳細は下記に記載しております。
ジョブスクリプトの書き方 環境変数の指定