LoginSignup
2
1

More than 5 years have passed since last update.

Mac上でMPIを使用する

Last updated at Posted at 2017-02-19

Mac上でMacPortsを利用してMPIを使用する時のメモ.
未検証.

環境

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G1217

$ xcodebuild -version
Xcode 8.2.1
Build version 8C1002

$ port version
Version: 2.4.0

インストール

OpenMPIとMPICHの二つがある.
port名はそれぞれopenmpi, mpichで,どちらもさらにsub-portsがある.

末尾にdefaultが付いている名前のsub-portsがデフォルトでインストールされる.
これはXcodeのclangをラップする.

openmpi/mpich-defaultが動かない

ところが,この*-defaultはプログラムのコンパイルは通っても,MPIの呼び出しで止まってしまう.

openmpi/mpich-gcc6を使用する

末尾にgcc6が付くsub-portsに切り替えたところ,こちらは動く.
と言っても,検証ができたレベルではない.
ひとまずMPIの初期化には成功しているようだ.

このsub-portsはMacPortsのgcc6をラップする.
他にも,色々なコンパイラをラップするsub-portsがあるので,丁度良いものを選べばよい,ということなのだろうか?

コーディング時のtips

MPI_VERSION

https://twitter.com/Flast_RO/status/837904400156766208 より,MPI 3.0からmpi.hを読むとMPI_VERSIONというマクロが定義されるようなので,コンパイル時に分岐させたい場合はこのマクロで分岐すればよさそう.

しかし,ヘッダファイルを読めば,ではなくて,mpiccとかmpicxxとか,ラッパーが何か定義してくれることが理想なのだが…
この辺りはMakeを工夫して使用することでカバーするしかなさそう.

結び

テストコードがきちんと書けたら続きを書きます.

2
1
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
2
1