LoginSignup
20
24

More than 5 years have passed since last update.

MacでMPIとopenmpをハイブリッドにつかえる環境を構築する

Last updated at Posted at 2014-09-30

openmpiとopenmpとは

※ openmpiとopenmpは別物

  • MPI(openmpiとmpich2)はどちらも並列するためのライブラリ
  • openmpはスレッド並列するためのライブラリ
  • MPIでは各プロセスが占有のメモリ領域を扱うのに対し、 OpenMPではメモリを共有してアクセスすることができる。

目的

MPIとopenmpを用いたハイブリッド並列を使い計算速度を上げる。

Mac固有の問題

mac以外の場合、最近のgccはopenmpをサポートしているので素直にopenmpiをインストールすれば良い。

しかしMacだと以下の点でめんどい
通常macではパッケージ管理ソフトとしてbrewを使う。
brewを使いインストールするとコンパイラがclangが選択されてしまう(clangはopenmpがサポートされていない)
なのでgccを基にしたopenmpiをインストールする必要がある

インストール

gccのインストール(もし入っていなければ)

チェック方法

gcc --version

をやってgcc (GCC)ほにゃほにゃってメッセージが返ってこなかったり、clangって返ってきたらgccは入ってないです。

パッケージ管理ソフトbrewを使いインストールする

  • brewの導入
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • brewを使いgccの導入
brew update
sudo brew install gcc49
ln -s /usr/local/bin/gcc-4.9 /usr/local/bin/gcc
ln -s /usr/local/bin/g++-4.9 /usr/local/bin/g++

※gcc49は現在(1015/1月)の最新バージョン(ver4.2以上をインストールすること openmpに対応したのが4.2以降なので)
※sudo 使うとmacのログインパスワード聞かれるので入力

OpenMPIを手動でインストール(brewが使えないため)

  • ソースをダウンロードして解凍(wgetがないならhome brewで入れて下さい)
wget http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.3.tar.gz
tar xzvf openmpi-1.8.3.tar.gz

http://www.open-mpi.org/ にある最新バージョンを使って下さい

  • コンパイルの設定ファイル(Makefile)を生成
cd openmpi-1.8.3
./configure CC=gcc CXX=g++ F77=gfortran FC=gfortran --enable-mpi-thread-multiple --prefix=インストール先のディレクトリ
  • コンパイルしてインストール
sudo make
sudo make install

※途中でmacのログインするときのパスワード聞かれるかも

  • pathを通す

bashを使っているのなら ~/.bashrcに以下を記述

~/.bashrc
# for openmpi                                                                                                                                         
export MANPATH=インストールしたディレクトリ/share/man:$MANPATH
export LD_LIBRARY_PATH=インストールしたディレクトリ/lib:$LD_LIBRARY_PATH
export PATH="インストールしたディレクトリ/bin:$PATH"
  • パスの確認

ターミナルを再起動

mpic++ --version

これで反応があるともう使える状態になっている。

使い方はまた今度
一応使い方のサンプルが乗っているサイト(openmpiのみでopenmpi+openmpのハイブリッドな使いたではないが)
http://auewe.hatenablog.com/entry/2013/06/16/172844

20
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
24