「MPI」の版間の差分

提供: MacWiki
移動: 案内検索
(参考ページ)
行15: 行15:
 
多くのフリーの MPI 実装が開発されてきたが、
 
多くのフリーの MPI 実装が開発されてきたが、
 
現在は Open MPI と MPICH2 の2つに集約されていると考えてよいだろう。
 
現在は Open MPI と MPICH2 の2つに集約されていると考えてよいだろう。
OSX 10.5 Leopard には、C言語専用の Open MPI が
 
デフォルトでインストールされている(後述)。
 
  
 
=== LAM/MPI ===
 
=== LAM/MPI ===
行23: 行21:
 
現在はメンテナンスモードとなっていて、
 
現在はメンテナンスモードとなっていて、
 
開発者は後述の OpenMPI プロジェクトに合流しているそうだ。
 
開発者は後述の OpenMPI プロジェクトに合流しているそうだ。
 
*http://www.lam-mpi.org/
 
  
 
[[MacPorts]] には、以下の Port が用意されている。
 
[[MacPorts]] には、以下の Port が用意されている。
行33: 行29:
  
 
広く使われている MPI 実装で、rsh/ssh 越しに通信を行うもの。
 
広く使われている MPI 実装で、rsh/ssh 越しに通信を行うもの。
最近は、mpich2 が主流。
 
  
*http://www-unix.mcs.anl.gov/mpi/mpich/
+
*https://www.mpich.org/
*http://www-unix.mcs.anl.gov/mpi/mpich1/
+
  
 
インストール手順
 
インストール手順
 
*ソースを展開して、手動で configure, make, make install を行う。
 
*ソースを展開して、手動で configure, make, make install を行う。
*[[MacPorts]] には、以下の Ports が用意されている。
+
*[[MacPorts]] には、以下の Ports が用意されていた。
 
  mpich                          science/mpich  1.2.7        Message Passing Interface (MPI) Library
 
  mpich                          science/mpich  1.2.7        Message Passing Interface (MPI) Library
 
  mpich2                        science/mpich2 1.0.3        Message Passing Interface (MPI) Library
 
  mpich2                        science/mpich2 1.0.3        Message Passing Interface (MPI) Library
行53: 行47:
 
*http://www.open-mpi.org/
 
*http://www.open-mpi.org/
  
OSX 10.5 Leopard にはデフォルトで Open MPI がインストールされている。
+
OSX 10.5 Leopard にはデフォルトで C言語対応の Open MPI がインストールされていた。
 
ただし fortran サポートはオフになっており、mpif77 などは機能しない。
 
ただし fortran サポートはオフになっており、mpif77 などは機能しない。
 
Fortran から MPI を使う場合は、ソースからビルドするか、MacPorts などのパッケージシステムを使う必要がある。
 
Fortran から MPI を使う場合は、ソースからビルドするか、MacPorts などのパッケージシステムを使う必要がある。
行71: 行65:
 
==== ソースからのインストール ====
 
==== ソースからのインストール ====
  
OpenMPI プロジェクトのサイトから openmpi-1.8.7.tar.bz2 をダウンロードしたのち、
+
OpenMPI プロジェクトのサイトから openmpi-1.8.8.tar.bz2 をダウンロードしたのち、
 
以下のようなオプションを configure に渡せばいい。
 
以下のようなオプションを configure に渡せばいい。
 
2つのパラメーター、F77 (fortran 77) と FC (fortran 90/95) に
 
2つのパラメーター、F77 (fortran 77) と FC (fortran 90/95) に

2015年8月10日 (月) 22:23時点における版

MPI とは?

Message Passing Interface の略で、並列・分散プロセス間のメッセージング機能を提供する標準規格。 あるいは、その実装を差す。1995年に MPI フォーラムによって標準化されて以来、多くの実装が存在していて、 コードの移植性に優れているのが特徴。言語に依存せず、C でも Fortran でも利用できる。

プログラム内に MPI 用のヘッダをインクルードして、 UNIX の fork プログラミングの要領で MPI 関数を追加していくだけで、 手軽に並列プログラムを作ることができる。

実装

多くのフリーの 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 越しに通信を行うもの。

インストール手順

  • ソースを展開して、手動で 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 実装。

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.8.8.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
$ make
$ sudo make install

64bit gfortran は以下のオプションで動作した。

$ ./configure --prefix=/opt/openmpi64g CFLAGS=-m64 CXXFLAGS=-m64 FCFLAGS=-m64 FFLAGS=-m64
$ make
$ sudo make install

参考書籍

参考ページ

Wiki内の参考ページ