OpenMPIライブラリ

バージョン モジュールファイル名 システムA システムB/C システムG クラウドシステム 備考
4.1.5 openmpi/4.1.5_nvhpc-23.5 - - + - 2023年8月導入
4.0.5 openmpi/4.0.5_intel-2022.3 + + - + 2023年6月導入
4.0.5 openmpi/4.0.5_gnu-8.5.0 + + + + 2022年11月導入
4.0.5 openmpi/4.0.5_nvhpc-22.9 - - + - 2022年11月導入
4.0.5 openmpi/4.0.5_nvhpc-22.5 - - + - 2022年11月導入

+ : すべてのユーザが利用可能
- : 利用不可

OpenMPIで提供可能なスレッド並列サポートレベルは、MPI_THREAD_MULTIPLEです。各スレッドから自由にMPI関数を呼び出すことができます。

コンパイルコマンド

言語 コマンド 実行形式
Fortran mpifort mpifort オプション ファイル名
C mpicc mpicc オプション ファイル名
C++ mpic++ mpic++ オプション ファイル名

コンパイル例

$ mpifort -O3 sample_mpi.f90

コンパイルしたMPIプログラムを実行するためには、 会話型処理では tssrun コマンドを、バッチ処理では srun コマンドを使用します。会話型実行、バッチ実行ともに、並列数は --rsc オプションの引数 p で指定します。詳細は、 サンプル をご覧ください。

実行例(会話型)

$ tssrun --rsc p=2 ./a.out

会話型実行の詳細については、 会話型処理 のページをご覧ください。

  • 8並列で実行
$ tssrun --rsc p=8 ./a.out
  • スレッド並列と組み合わせて実行(MPI 4並列、OpenMP 8並列)
$ tssrun --rsc p=4:t=8:c=8 ./a.out

バッチ実行の詳細については、 バッチ処理 のページをご覧ください。

  • 8並列で実行
$ cat sample.sh
#!/bin/bash
#============ SBATCH Directives =======
#SBATCH -p gr19999b
#SBATCH -t 1:0:0
#SBATCH --rsc p=8
#SBATCH -o %x.%A.out

#============ Shell Script ============
srun ./a.out
$ sbatch sample.sh
  • スレッド並列と組み合わせて実行(MPI 4並列、OpenMP 8並列)
$ cat sample.sh
#!/bin/bash
#============ SBATCH Directives =======
#SBATCH -p gr19999b
#SBATCH -t 1:0:0
#SBATCH --rsc p=4:t=8:c=8:m=8G
#SBATCH -o %x.%A.out

#============ Shell Script ============
srun  ./a.out
$ sbatch sample.sh