OpenMPIライブラリ

バージョン システムA システムB システムC
3.1.4 + +
2.0.1 + +

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

バージョン コンパイラ moduleファイル名
3.1.4 Intel openmpi/3.1.4_intel-18.0
GNU openmpi/3.1.4_gnu-4.8
2.0.1 Intel openmpi/2.0.1_intel-17.0
PGI openmpi/2.0.1_pgi-16.10
GNU openmpi/2.0.1_gnu-4.8

コンパイラは, IntelコンパイラPGIコンパイラGNUコンパイラ を利用できます.利用するコンパイラに合わせて,以下のようにmoduleコマンドを実行し,OpenMPIが利用できるように環境を設定します.

(Intelコンパイラを利用する場合)
$ module switch PrgEnv-(現在ロード中の環境) PrgEnv-intel
$ module load openmpi/2.0.1_intel-17.0
(PGIコンパイラを利用する場合)
$ module switch  PrgEnv-(現在ロード中の環境) PrgEnv-pgi 
$ module load openmpi/2.0.1_pgi-16.10
(GNUコンパイラを利用する場合)
$ module switch PrgEnv-(現在ロード中の環境) PrgEnv-gnu
$ module load openmpi/2.0.1_gnu-4.8

moduleコマンドの詳細は Modules をご覧ください.

OpenMPIで提供可能なスレッド並列サポートレベルは,MPI_THREAD_SINGLEです.単一のスレッドからのみMPI関数を呼び出すことができます.

コンパイルコマンド

言語 コマンド 実行形式
Fortran mpif90 mpif90 [オプションの並び] ファイル名の並び
C mpicc mpicc [オプションの並び] ファイル名の並び
C++ mpic++ mpic++ [オプションの並び] ファイル名の並び

コンパイル例

$ mpif90 -O3 sample_mpi.f90

コンパイルしたMPIプログラムを実行するためには, mpiexec コマンドを使用します.会話型実行時は tssrun コマンドの後に, mpiexec コマンドを続けて記述します.

会話型実行,バッチ実行ともに,並列数は -A オプションの引数 p で指定し,さらに mpiexec コマンドの -n オプションの引数で同じ値を指定します.また,OpenMPなどのスレッド並列と組み合わせて実行する場合は,1ノードあたりに起動するプロセス数を -npernode オプションで指定します.

詳細は, サンプル をご覧ください.

実行例(会話型)

$ tssrun -A p=2 mpiexec -n 2 ./a.out

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

  • 8並列で実行

    $ tssrun -A p=8 mpiexec -n 8 ./a.out
  • スレッド並列と組み合わせて実行(MPI 4並列,OpenMP 8並列)

    $ tssrun -A p=4:t=8:c=8 mpiexec -n 4  -npernode 2 ./a.out

バッチ実行の詳細については, システムBのバッチ処理 のページをご覧ください.

  • 8並列で実行

    $ cat sample.sh
    #!/bin/bash
    #QSUB -q gr19999b
    #QSUB -ug gr19999
    #QSUB -W 5:00
    #QSUB -A p=8
    mpiexec -n $QSUB_PROCS  -npernode $QSUB_PPN ./a.out
    $ qsub sample.sh
  • スレッド並列と組み合わせて実行(MPI 4並列,OpenMP 8並列)

    $ cat sample.sh
    #!/bin/bash
    #QSUB -q gr19999b
    #QSUB -ug gr19999
    #QSUB -W 5:00
    #QSUB -A p=4:t=8:c=8:m=4G
    #QSUB -o %J.out
    mpiexec -n $QSUB_PROCS  -npernode $QSUB_PPN ./a.out
    $ qsub sample.sh


Copyright © Academic Center for Computing and Media Studies, Kyoto University, All Rights Reserved.