「MPI」の版間の差分

提供: MacWiki
転送ページ
移動: 案内検索
(参考ページ)
(wikipedia:Message Passing Interfaceへの転送ページ)
 
(同じ利用者による、間の8版が非表示)
行1: 行1:
== MPI とは? ==
+
#REDIRECT [[Wikipedia:Message_Passing_Interface]] を参照してください。
 
+
'''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つに集約されていると考えてよいだろう。
+
OSX 10.5 Leopard には、C言語専用の Open MPI が
+
デフォルトでインストールされている(後述)。
+
 
+
=== LAM/MPI ===
+
 
+
daemon を介して、メッセージングを行う実装らしい。
+
現在はメンテナンスモードとなっていて、
+
開発者は後述の OpenMPI プロジェクトに合流しているそうだ。
+
 
+
*http://www.lam-mpi.org/
+
 
+
[[MacPorts]] には、以下の Port が用意されている。
+
lammpi                        science/lammpi 7.1.2        MPI implementation for parallel computing
+
 
+
 
+
=== MPICH ===
+
 
+
広く使われている MPI 実装で、rsh/ssh 越しに通信を行うもの。
+
最近は、mpich2 が主流。
+
 
+
*http://www-unix.mcs.anl.gov/mpi/mpich/
+
*http://www-unix.mcs.anl.gov/mpi/mpich1/
+
 
+
インストール手順
+
*ソースを展開して、手動で 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 にはデフォルトで 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.8.7.tar.bz2 をダウンロードしたのち、
+
以下のようなオプションを configure に渡せばいい。
+
2つのパラメーター、F77 (fortran 77) と FC (fortran 90/95) に
+
コンパイラのパスを直に渡せば良い。
+
 
+
32bit コンパイラ:
+
 
+
$ ./configure --prefix=/opt/openmpi32 F77=/opt/intel/Compiler/11.1/067/bin/ia32/ifort \
+
    FC=/opt/intel/Compiler/11.1/067/bin/ia32/ifort
+
$ make
+
$ sudo make install
+
 
+
64bit コンパイラ:
+
 
+
Developer Tools の gcc(デフォルト)を C コンパイラとして使う場合は、
+
コンパイラオプション '''CFLAGS=-m64 CXXFLAGS=-m64''' を追加する必要がある。
+
(I am not sure whether the "-m64" option is necessary in 2014)
+
 
+
$ ./configure --prefix=/opt/openmpi64i F77=/opt/intel/Compiler/11.1/067/bin/intel64/ifort \
+
    FC=/opt/intel/Compiler/11.1/067/bin/intel64/ifort CFLAGS=-m64 CXXFLAGS=-m64
+
$ make
+
$ sudo make install
+
 
+
Intel Composer の場合
+
 
+
$ . /opt/intel/bin/ifortvars.sh intel64
+
$ ./configure --prefix=/opt/openmpi64i F77=/usr/bin/ifort FC=/usr/bin/ifort
+
<!--  $ ./configure --prefix=/opt/openmpi64i F77=/opt/intel/bin/ifort FC=/opt/intel/bin/ifort CFLAGS=-m64 CXXFLAGS=-m64 -->
+
$ make
+
$ sudo make install
+
 
+
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.cs.hiroshima-u.ac.jp/~yasuaki/mpi.shtml MPI覚え書き]
+
*[http://www.is.doshisha.ac.jp/smpp/ 超並列計算研究会] --「PCクラスタ超入門」などの入門記事
+
 
+
== Wiki内の参考ページ ==
+
 
+
*[[ParallelComputing]]
+
*[[数値計算]]
+
 
+
[[Category:ソフトウェア]]
+
[[Category:開発]]
+
[[Category:分散コンピューティング]]
+

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