なんか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で構築されるのは
$brew --env
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を使う 参照.
オプションとか探してmakefileをいじってテストして頑張ればopenmp & open-mpiできるのかも?