MPIによるノード間並列に加えて、自動並列化やOpenMPによってノード内並列実行を行うことが可能です。

 

MPIプログラムに対して、自動並列化やOpenMP用のコンパイル、指示行挿入を行う必要がありますので、まず以下をご一読ください。
 
MPIの利用方法
自動並列化/OpenMPの利用方法
 

コンパイル

汎用コンクラスタ(VCC)ではintel MPIコンパイラが利用可能です。
プログラミング言語ごとにコマンドが異なりますので、ご注意ください。

 

MPI+自動並列化

$ mpiifort -parallel [options] source_file (Fortranの場合)
$ mpiicc -parallel [options] source_file (Cの場合)
$ mpiicpc -parallel [options] source_file (C++の場合)

MPI+OpenMP

$ mpiifort -openmp [options] source_file (Fortranの場合)
$ mpiicc -openmp [options] source_file (Cの場合)
$ mpiicpc -openmp [options] source_file (C++の場合)

 
 

実行スクリプト

MPI&自動並列化/OpenMPプログラムを実行する際のスクリプト例は下記の通りです。

 

4ノード並列実行(MPI) 1ノードにつき20並列実行(自動並列化/OpenMP)
経過時間 1時間、メモリ 60GB でMPIのバッチリクエストを実行するスクリプトになります。

 

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

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