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

コンパイル

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

MPI+自動並列化

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

MPI+OpenMP

$ module load BaseCPU
 
$ mpiifort -qopenmp [options] source_file (Fortranの場合)
$ mpiicc -qopenmp [options] source_file (Cの場合)
$ mpiicpc -qopenmp [options] source_file (C++の場合)

 
 

実行スクリプト

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

4ノード並列実行(intelMPI)、1ノードにつき76並列実行(自動並列化/OpenMP)、経過時間 1時間でMPIのバッチリクエストを実行するスクリプトになります。
-l オプションで指定するcpunum_job(1ノードあたりの利用コア数)と-v オプションで指定するOMP_NUM_THREADS(1ノード内の自動並列化/OpenMPプロセス数)は同じ値を指定してください。
2つの値が異なっていると実行性能が低下する場合があります。

 

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

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