「MPI」の版間の差分

提供: MacWiki
転送ページ
移動: 案内検索
(ソースからのインストール)
(wikipedia:MPIへの転送ページ)
行1: 行1:
== MPI とは? ==
+
#REDIRECT [[Wikipedia:MPI]] を参照してください。
 
+
'''M'''essage '''P'''assing '''I'''nterface の略で、並列・分散プロセス間のメッセージング機能を提供する標準規格。
+
あるいは、その実装を差す。1995年に MPI フォーラムによって標準化されて以来、多くの実装が存在していて、
+
コードの移植性に優れているのが特徴。言語に依存せず、C でも Fortran でも利用できる。
+
 
+
プログラム内に MPI 用のヘッダをインクルードして、
+
UNIX の fork プログラミングの要領で MPI 関数を追加していくだけで、
+
手軽に並列プログラムを作ることができる。
+
 
+
*MPI Forum - http://www.mpi-forum.org/
+
 
+
== 実装 ==
+
 
+
多くのフリーの MPI 実装が開発されてきたが、
+
現在は Open MPI と MPICH2 の2つに集約されていると考えてよいだろう。
+
 
+
=== LAM/MPI ===
+
 
+
daemon を介して、メッセージングを行う実装らしい。
+
現在はメンテナンスモードとなっていて、
+
開発者は後述の OpenMPI プロジェクトに合流しているそうだ。
+
 
+
[[MacPorts]] には、以下の Port が用意されている。
+
lammpi                        science/lammpi 7.1.2        MPI implementation for parallel computing
+
 
+
 
+
=== MPICH ===
+
 
+
広く使われている MPI 実装で、rsh/ssh 越しに通信を行うもの。
+
 
+
*https://www.mpich.org/
+
 
+
インストール手順
+
*ソースを展開して、手動で configure, make, make install を行う。
+
*[[MacPorts]] には、以下の Ports が用意されていた。
+
mpich                          science/mpich  1.2.7        Message Passing Interface (MPI) Library
+
mpich2                        science/mpich2 1.0.3        Message Passing Interface (MPI) Library
+
 
+
 
+
=== Open MPI ===
+
 
+
FT-MPI, LA-MPI, LAM/MPI, PACX-MPI などの
+
さまざまな先行プロジェクトの成果をもとに
+
開発されている MPI 実装。
+
 
+
*http://www.open-mpi.org/
+
 
+
OSX 10.5 Leopard にはデフォルトで C言語対応の Open MPI がインストールされていた。
+
ただし fortran サポートはオフになっており、mpif77 などは機能しない。
+
Fortran から MPI を使う場合は、ソースからビルドするか、MacPorts などのパッケージシステムを使う必要がある。
+
 
+
==== [[MacPorts]] ====
+
 
+
以下の Port が用意されている。
+
openmpi                        science/openmpi 1.3.1        A High Performance Message Passing Library
+
 
+
==== [[MacOSX_WorkShop]] ====
+
 
+
以下が配布されている。
+
* OSX 10.7: openmpi-1.5.4-1osx10.7, gcc-4.6.2-1osx10.7
+
* OSX 10.8: openmpi-1.6.4-1osx10.8, gcc-4.6.4-1osx10.8
+
* OSX 10.9: openmpi-1.8.1-3osx10.9, gcc-4.8.2-2osx10.9 (ICC 対応版も src.rpm で提供)
+
 
+
==== ソースからのインストール ====
+
 
+
OpenMPI プロジェクトのサイトから openmpi-1.10.2.tar.bz2 をダウンロードしたのち、
+
以下のようなオプションを configure に渡せばいい。
+
FC パラメーターにコンパイラのパスを直に渡せば良い。
+
(fortran 77 コンパイラ用の F77 パラメーターは廃止された模様)
+
 
+
Intel Composer の場合
+
 
+
$ . /opt/intel/bin/compilervars.sh intel64
+
[ $ . /opt/intel/bin/ifortvars.sh intel64 ]
+
$ ./configure --prefix=/opt/openmpi64i FC=/opt/intel/bin/ifort
+
[ $ ./configure --prefix=/opt/openmpi64i FC=/opt/intel/bin/ifort CFLAGS=-m64 CXXFLAGS=-m64 ]
+
$ make
+
$ sudo make install
+
 
+
XCode の gcc(デフォルト)を C コンパイラとして使う場合、2010年頃はコンパイラオプション '''CFLAGS=-m64 CXXFLAGS=-m64''' を追加する必要がありましたが、いまは不要かもしれません。
+
 
+
64bit gfortran は以下のオプションで動作した。
+
 
+
$ ./configure --prefix=/opt/openmpi64g CFLAGS=-m64 CXXFLAGS=-m64 FCFLAGS=-m64 FFLAGS=-m64
+
$ make
+
$ sudo make install
+
 
+
== 参考書籍 ==
+
 
+
*「並列プログラミング入門 MPI版」
+
**http://accc.riken.jp/hpc/training/
+
*MPI並列プログラミング([[ISBN:456301544X]])
+
**http://www.alde.co.jp/documents/information/index.html - 邦訳書籍
+
**[http://www.cs.usfca.edu/~peter/ppmpi/ Parallel Programming with MPI] - 原書のサポートサイト。ソースコードもあり。
+
*実践MPI‐2—メッセージパッシング・インタフェースの上級者向け機能 ([[ISBN:4894714442]])
+
*High Performance Linux Clusters: With Oscar, Rocks, openMosix, And MPI ([[ISBN:0596005709]])
+
 
+
== 参考ページ ==
+
 
+
*[http://www.cv.titech.ac.jp/~hiro-lab/study/mpi_reference/index.html MPIリファレンス]
+
*[http://www.is.doshisha.ac.jp/smpp/ 超並列計算研究会] --「PCクラスタ超入門」などの入門記事
+
 
+
== Wiki内の参考ページ ==
+
 
+
*[[数値計算]]
+
 
+
[[Category:ソフトウェア]]
+
[[Category:開発]]
+

2017年3月20日 (月) 20:46時点における版