大規模可視化対応PCクラスタ(VCC)では、OpenMPIライブラリが利用可能です。
MPIとは、分散メモリ並列処理におけるメッセージパッシング(複数のプロセス間でデータをやり取りするために用いるメッセージ通信操作)の標準規格のことです。「OpenMP」と名称が似ていますが、まったく別のライブラリです。
コンパイラはIntelコンパイラ、GNUコンパイラを利用することが出来ます。利用するコンパイラに合わせて、環境変数の設定を変更する必要がありますのでご注意ください。

 

コンパイラの選択方法

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

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

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

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

 
 

コンパイル コマンド

コンパイルを行う際のコマンドは、プログラミング言語ごとに異なります。
Fortran言語のコンパイルコマンドはmpif90、C言語のコンパイルコマンドはmpicc、C++言語のコンパイルコマンドはmpic++となります。

C言語 C++言語 Fortran言語
OpenMPIコンパイラ(intel/GNU共通) mpicc mpic++ mpif90

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

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

 
 

実行スクリプト

OpenMPIを実行する際のコマンドは下記の通りです。

mpirun ${NQSII_MPIOPTS} -n (総並列数) 実行ファイル名

 

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

 

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

 
 

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

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