User Tools

Site Tools


数値計算ライブラリ:openmpi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

数値計算ライブラリ:openmpi [2020/09/30 21:17]
koudai [概要]
数値計算ライブラリ:openmpi [2021/06/27 22:04]
Line 1: Line 1:
-====== 概要 ====== 
  
-  * 共有メモリを使う並列計算ならばOpenMPが便利ですが、ワークステーションやスーパーコンピュータとなってくると分散メモリなのでMPIが必須になってきます。 
-  * 他にもフリーのMPI実装としてMPICHがありますが、どちらも性能はそんなに変わらないようです。 
-  * OpenMPIとMPICH (Intel Parallel Studio XE に含まれる Intel MPI も同様) を同時に入れるとうまく動作しなくなるので、インストールはどちらか片方にしてください。 
- 
-====== インストール ====== 
- 
-===== 検証環境 ===== 
- 
-  * Ubuntu 18.04 LTS 
- 
-===== 準備 ===== 
- 
-以下のパッケージのインストールが必要です。 
-<code> 
-$ sudo apt install build-essential gfortran 
-</code> 
- 
-===== 入手 ===== 
- 
-以下のサイトからダウンロードできます。 
- 
-  * [[https://www.open-mpi.org/|Open MPI: Open Source High Performance Computing]] 
- 
-記事執筆時点での最新版は4.0.2です。 
- 
- 
-===== インストール ===== 
- 
-ダウンロードしたファイルはホーム・ディレクトリにおいてください。 これを展開します。 
-<code> 
-$ tar xzvf openmpi-4.0.2.tar.gz 
-$ cd openmpi-4.0.2 
-</code> 
- 
-インストール前に、インストール先とコンパイラを指定します。 
-<code> 
-$ ./configure --prefix=/usr/local/openmpi CC=gcc CXX=g++ FC=gfortran 
-</code> 
-管理者権限を持っていない場合は --prefix=/home/username/openmpi などとすればよいでしょう。 そしてコンパイルします。 
-<code> 
-$ make all 
-$ sudo make install 
-</code> 
- 
-===== 環境設定 ===== 
- 
-~/.bashrcを開いて、ファイルの最後に次の文を付け加えます。 
-<file> 
-MPIROOT=/usr/local/openmpi 
-PATH=$MPIROOT/bin:$PATH 
-LD_LIBRARY_PATH=$MPIROOT/lib:$LD_LIBRARY_PATH 
-MANPATH=$MPIROOT/share/man:$MANPATH 
-export MPIROOT PATH LD_LIBRARY_PATH MANPATH 
-</file> 
-編集が終わったら 
-<code> 
-$ source ~/.bashrc 
-</code> 
-で再度読み込みます。 
-<code> 
-$ mpif90 -v 
-$ mpicc -v 
-</code> 
-などで、インストールが成功したか確認できます。 
- 
- 
-===== コンパイルと実行 ===== 
- 
-コンパイルは、 
-  *Fortranの場合<code> 
-$ mpif90 -o test test.f90 
-</code> 
-  * C++の場合<code> 
-$ mpicc -o test test.cc 
-</code> 
-でできます。 
-コンパイルオプションの付け方はgfortranやgcc, g++のときと同じです。 MPIで実行する場合は 
-<code> 
-$ mpirun -n 2 test 
-</code> 
-ここで-nで指定してるのはプロセスの数(並列数)です。 
- 
- 
-==== 注意 ==== 
- 
-  * OpenMPIの並列数は、最大でも物理コア数までにします。 
-  * IntelのCPUだとハイパースレッディングにより論理コアが物理コアの2倍に見えますが、並列数を論理コア数にして計算すると実行速度が著しく低下することがあります。 
-  * 最近のOpenMPIは並列数を物理コア数よりも大きくするとエラーが出るようになりました。 
- 
- 
-====== 参考資料 ====== 
- 
-  * [[http://e-kwsm.hatenablog.com/entry/2015/01/03/140425]] 
数値計算ライブラリ/openmpi.txt · Last modified: 2021/06/27 22:04 (external edit)