Intel MPIライブラリ

バージョン システムA システムB システムC 備考
2021.1.1 + + 2021年03月導入
2019.9 + + 2021年03月導入
2019.8 + + 2020年09月導入
2019.6 + + 2020年03月導入
2019.5 + + 2019年10月導入
2019.3 + + 2019年03月導入
2018.4 + (default) + (default) 2019年03月導入
2018.3 + + 2018年10月導入
2018.2 + + 2018年03月導入
2018.0 + + 2017年10月導入
2017.4 + + 2017年10月導入
2017.2 + + 2016年12月導入
2017.1 + + 2016年12月導入
5.1.3 + +

注:Intel CompilerとIntel MPIのバージョンは一致しない場合があります

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

バージョン moduleファイル名
2021.1.1 impi/2021.1.1
2019.9 impi/2019.9
2019.8 impi/2019.8
2019.6 impi/2019.6
2019.5 impi/2019.5
2019.3 impi/2019.3
2018.4 impi/2018.4
2018.3 impi/2018.3
2018.2 impi/2018.2
2018.0 impi/2018.0
2017.4 impi/2017.4
2017.2 impi/2017.2
2017.1 impi/2017.1
5.1.3 impi/5.1.3

コンパイラとして, Intelコンパイラ または GNUコンパイラ を利用します.システムB,Cにログインした時点では,Intelコンパイラがデフォルトで利用できるようになっています.GNUコンパイラを利用される場合は,以下のようにmoduleコマンドを実行し,コンパイラを切り替えてください.

$ module switch PrgEnv-intel PrgEnv-gnu

Intel MPIライブラリのバージョンを切り替えたい場合は,以下のようにmoduleコマンドを実行してください.

$ module switch impi/4.1.0 impi/4.0.3

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

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

コンパイルコマンド(Intelコンパイラ)

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

コンパイルコマンド(GNUコンパイラ)

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

コンパイル例

$ mpiifort -O3 -parallel sample_mpi.f90

Intel MPI のコンパイラでは, Intelコンパイラのオプション を利用することができます.ただし,オプション -static については利用できません.最適化オプション -fast を利用される際は,代わりとして -ipo -O3 -no-prec-div -static_mpi -xHost を指定してください.

  • 主要オプション(並列化,最適化など)

    オプション名 説明
    -static_mpi MPIライブラリを静的にリンクします.

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

実行例(会話型)

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

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

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

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

  • 8並列で実行

    $ cat sample.sh
    #!/bin/bash
    #QSUB -q gr19999b
    #QSUB -ug gr19999
    #QSUB -W 5:00
    #QSUB -A p=8
    mpiexec.hydra ./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.hydra ./a.out
    $ qsub sample.sh


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