#なんかclangだと上手く行かないのでgccを使いたい
clangのopenmpはなんか上手くいかないので,openmp & open-mpiをgccで使いたい.しかしbrewで入れようとするとデフォのclangが邪魔をする.
世の中には
- MacでMPIとopenmpをハイブリッドにつかえる環境を構築する とか
-
MacにMPI+OpenMPハイブリッド並列環境を構築するとか
があるけど,ソースを落とすとかmakefileを追記するとかより,もっと簡単に解決したい(さぼりたがり
clangでopenmpを使う方法もあるようだけど,うまく並列できなかったりする.
#brewを使う
brew install gcc
はすんで,今だとgcc-11あたりが入っているとする.
brewでopen-mpiがclangで構築されるのは
HOMEBREW_CC: clang
HOMEBREW_CXX: clang++```
となっているからなので,これを
```$export HOMEBREW_CC=gcc-11
$export HOMEBREW_CXX=g++-11
$brew install open-mpi --build-from-source```
と指定してソースからbuildすると,
`$mpicc -v`
(中略)
```Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.1.0 (Homebrew GCC 11.2.0)```
とgcc-11で構築される.
あとはmpicc, mpic++でopenmpもopen-mpiも使える.
#clangでopnempを使う?
[Apple ClangでOpenMPを使う](https://qiita.com/ktgw0316/items/23235dd2533f488be7da) 参照.
オプションとか探してmakefileをいじってテストして頑張ればopenmp & open-mpiできるのかも?