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

コンパイル

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

MPI+自動並列化

$ module load BaseVEC
 
$ mpinfort -mparallel [options] source_file (Fortranの場合)
$ mpincc -mparallel [options] source_file (Cの場合)
$ mpinc++ -mparallel [options] source_file (C++の場合)

MPI+OpenMP

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

 
 

実行スクリプト

SQUID ベクトルノード群で、NEC MPI&自動並列化/OpenMPプログラムを実行する際のスクリプト例は下記の通りです。
 

4ノード並列実行(32ベクトルエンジンをNEC MPIで並列実行、ベクトルエンジン内の各10コアを自動並列化/OpenMPで並列実行※)、経過時間 1時間でMPIのバッチリクエストを実行するスクリプトになります。
※1ノードにつき8基のベクトルエンジン(SX-Aurora TSUBASA)を搭載しています。ベクトルエンジン(SX-Aurora TSUBASA)は1基あたり10コアを搭載しています。ベクトルエンジンの使用数はvenodeに指定します。

 

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

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