SQUIDで、OpenMPIを使ったノード間並列(分散メモリ並列)処理を行う方法を解説します。

コンパイル方法

    $module load BaseGCC
     
    $ mpif90 [options] source_file (Fortranの場合)
    $ mpicc [options] source_file (Cの場合)
    $ mpic++ [options] source_file (C++の場合)

    GCC 11.4+OpenMPI4.1.5をご利用いただく場合は、BaseGCCの代わりに以下を指定してください。

    $ module load /system/apps/env/gcc/Compiler/gcc/11.4.0
    $ module load /system/apps/env/gcc/mpi/gcc11.4.0/openmpi/4.1.5cu11.8

     

実行スクリプト

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

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

     

    スクリプト例は下記の通りです。
    4ノード並列実行、1ノードにつき76並列実行(計304並列実行)、経過時間 1時間でMPIのバッチリクエストを実行するスクリプトになります。

     
     

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

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

       

     

参考資料