user/pages/06.compilers/06.intelmpi/docs.ja.md
efc0b464
 ---
 title: ' Intel MPIライブラリ'
 taxonomy:
     category:
         - docs
 external_links:
     process: true
     no_follow: true
     target: _blank
     mode: active
 ---
 
 [toc]
 
 ## 利用環境{#enviroment}
 
 
 
 ### 利用できるバージョン・システム{#version}
 
cea98d4f
 バージョン              |   システムA  |  システムB  |  システムC  |  備考        
 ------------------  |  -----  |  -----  |  -----  |  ----------
bd67a864
 2021.3.0 | ―  | +  | +  | 2021年09月導入
01ec6e0c
 2021.1.1 | ―  | +  | +  | 2021年03月導入
 2019.9 | ―  | +  | +  | 2021年03月導入
3e1efbf8
 2019.8        |    ―     |  +           |  +           |  2020年09月導入
7b02fd0d
 2019.6        |    ―     |  +           |  +           |  2020年03月導入
d26469da
 2019.5        |    ―     |  +           |  +           |  2019年10月導入
e7d5a583
 2019.3        |    ―     |  +           |  +           |  2019年03月導入
d26469da
 2018.4        |    ―     |  + (default)          |  + (default)          | 2019年03月導入
d61321b5
 2018.3        |    ―     |  +           |  +           |  2018年10月導入
14a8fb1e
 2018.2        |    ―     |  +           |  +           |  2018年03月導入
cea98d4f
 2018.0        |    ―     |  +           |  +           |  2017年10月導入
e7d5a583
 2017.4        |    ―     |  +           |  +           |  2017年10月導入
cea98d4f
 2017.2        |    ―     |  +           |  +           |  2016年12月導入
 2017.1        |    ―     |  +           |  +           |  2016年12月導入
 5.1.3         |    ―     |  +           |  +           |  
efc0b464
 
7b02fd0d
 注:Intel CompilerとIntel MPIのバージョンは一致しない場合があります
efc0b464
 
 \+ : すべてのユーザが利用可能  
 ― : 利用不可
 
 
 ### 環境設定{#modules}
 
4fd2f26e
 バージョン        |  moduleファイル名
efc0b464
 ----------------- | -----------
bd67a864
 2021.3.0|impi/2021.3.0
01ec6e0c
 2021.1.1|impi/2021.1.1
 2019.9 |impi/2019.9
3e1efbf8
 2019.8            | impi/2019.8
7b02fd0d
 2019.6            | impi/2019.6
d4ea2f61
 2019.5            | impi/2019.5
e7d5a583
 2019.3            | impi/2019.3
 2018.4            | impi/2018.4
e63bae92
 2018.3            | impi/2018.3
14a8fb1e
 2018.2            | impi/2018.2
4fd2f26e
 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
efc0b464
 
 
 コンパイラとして, [Intelコンパイラ](/compilers/intel) または [GNUコンパイラ](/compilers/gnu) を利用します.システムB,Cにログインした時点では,Intelコンパイラがデフォルトで利用できるようになっています.GNUコンパイラを利用される場合は,以下のようにmoduleコマンドを実行し,コンパイラを切り替えてください.
 
 
 ```nohighlight
 $ module switch PrgEnv-intel PrgEnv-gnu
 ```
 
 
 Intel MPIライブラリのバージョンを切り替えたい場合は,以下のようにmoduleコマンドを実行してください.
 
 
 ```nohighlight
 $ module switch impi/4.1.0 impi/4.0.3
 ```
 
 
 moduleコマンドの詳細は [Modules](/config/modules) をご覧ください.
 
 
 ### スレッド並列サポートレベル{#threadsafe}
 
 Intel MPIで提供可能なスレッド並列サポートレベルは,MPI_THREAD_MULTIPLEです.各スレッドから自由にMPI関数を呼び出すことができます.
 
 
 ## コンパイル・実行方法{#usage}
 
 
 
 ### コンパイル{#compile}
 
 **コンパイルコマンド(Intelコンパイラ)**
 
 言語       |  コマンド      | 実行形式                        
 --------- | --------- | ----------------------------
  Fortran |  mpiifort |  mpiifort [オプションの並び] ファイル名の並び
  C |        mpiicc |    mpiicc [オプションの並び] ファイル名の並び  
  C++ |      mpiicpc |   mpiicpc [オプションの並び] ファイル名の並び 
 
 **コンパイルコマンド(GNUコンパイラ)**
 
 言語       |  コマンド     | 実行形式                      
 --------- | -------- | --------------------------
  Fortran |  mpif90  |  mpif90 [オプションの並び] ファイル名の並び
  C |        mpicc |    mpicc [オプションの並び] ファイル名の並び 
  C++ |      mpicxx |   mpicxx [オプションの並び] ファイル名の並び
 
 **コンパイル例**
 
 
 ```nohighlight
 $ mpiifort -O3 -parallel sample_mpi.f90
 ```
 
 
 
 ### オプション{#option}
 
 Intel MPI のコンパイラでは, [Intelコンパイラのオプション](/compilers/intel#option) を利用することができます.ただし,オプション -static については利用できません.最適化オプション -fast を利用される際は,代わりとして -ipo -O3 -no-prec-div -static_mpi -xHost を指定してください.
 
 * **主要オプション(並列化,最適化など)**
 
 
     オプション名      |  説明                 
     ------------ | -------------------
     -static_mpi |  MPIライブラリを静的にリンクします.
 
 
 
 ### 実行{#exec}
 
 コンパイルしたMPIプログラムを実行するためには, 会話型処理では **tssrun** コマンドを,バッチ処理では **mpiexec.hydra** コマンドを使用します.会話型実行,バッチ実行ともに,並列数は -A オプションの引数 p で指定します.詳細は, サンプル をご覧ください.
 
 **実行例(会話型)**
 
 
 ```nohighlight
 $ tssrun -A p=2 mpiexec.hydra ./a.out
 ```
 
 
ae6319e2
 <!-- old information
efc0b464
 ### InfiniBand設定{#infiniband}
 
 システムB,Cのノードには,1ノードあたり2本のInfiniBandが接続されています.デフォルトの設定では1本のみが使用されますが,実行時に以下の環境変数を設定することで,2本のInfiniBandを束ねて使用することができます.
 
 
 ```nohighlight
 (tcshを利用する場合)
 setenv I_MPI_FABRICS shm:ofa 
 setenv I_MPI_OFA_NUM_ADAPTERS 2
 (bashを利用する場合)
 export I_MPI_FABRICS=shm:ofa
 export I_MPI_OFA_NUM_ADAPTERS=2
 ```
ae6319e2
 -->
efc0b464
 
 
 ## サンプル{#sample}
 
 
 
 ### 会話型でのMPIプログラム実行{#tss}
 
 会話型実行の詳細については, [会話型処理](/run/interactive) のページをご覧ください.
 
 * **8並列で実行**
 
 
 ```nohighlight
 $ tssrun -A p=8 mpiexec.hydra ./a.out
 ```
 
 
 * **スレッド並列と組み合わせて実行(MPI 4並列,OpenMP 8並列)**
 
 
 ```nohighlight
 $ tssrun -A p=4:t=8:c=8 mpiexec.hydra ./a.out
 ```
 
 
 
 ### バッチでのMPIプログラム実行{#lsf}
 
 バッチ実行の詳細については, システムBのバッチ処理(準備中) のページをご覧ください.
 
 * **8並列で実行**
 
 
     ```nohighlight
     $ cat sample.sh
     #!/bin/bash
a7b81995
     #QSUB -q gr19999b
     #QSUB -ug gr19999
efc0b464
     #QSUB -W 5:00
     #QSUB -A p=8
     mpiexec.hydra ./a.out
     $ qsub sample.sh
     ```
 
 
 * **スレッド並列と組み合わせて実行(MPI 4並列,OpenMP 8並列)**
 
 
     ```nohighlight
     $ cat sample.sh
     #!/bin/bash
a7b81995
     #QSUB -q gr19999b
     #QSUB -ug gr19999
efc0b464
     #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
     ```
 
 
 ## マニュアル{#manual}
 
e406ceae
 ### Ver 5.1
efc0b464
 
e406ceae
 * [Intel MPI Library for Linux OS Reference Manual](https://web.kudpc.kyoto-u.ac.jp/Compiler_Manual/Intel/Intel_MPI_5.1/Reference_Manual.pdf)
 * [Intel MPI Library for Linux OS User Guide](https://web.kudpc.kyoto-u.ac.jp/Compiler_Manual/Intel/Intel_MPI_5.1/User_Guide.pdf)
efc0b464
 
e406ceae
 ### Ver 2018
efc0b464
 
e406ceae
 * [Intel MPI Library for Linux OS Developer Reference](https://web.kudpc.kyoto-u.ac.jp/Compiler_Manual/Intel/Intel_MPI_2018/intelmpi-2018-developer-reference-linux.pdf)
 * [Intel MPI Library for Linux OS Developer Guide](https://web.kudpc.kyoto-u.ac.jp/Compiler_Manual/Intel/Intel_MPI_2018/intelmpi-2018-developer-guide-linux.pdf)
efc0b464
 
fe6960c0
 ### Ver 2019
 
 * [Intel MPI Library for Linux OS Developer Reference](https://web.kudpc.kyoto-u.ac.jp/Compiler_Manual/Intel/intel_parallel_studio_xe_2019_3/en/mpi/mpi_dev_reference_lin/index.htm)
 * [Intel MPI Library for Linux OS Developer Guide](https://web.kudpc.kyoto-u.ac.jp/Compiler_Manual/Intel/intel_parallel_studio_xe_2019_3/en/mpi/mpi_dev_guide_lin/index.htm)
 
efc0b464
 
e406ceae
 ## リンク{#link}
efc0b464
 
cea98d4f
 * [Intel MPI Library Documentation](https://software.intel.com/en-us/articles/intel-mpi-library-documentation)