OpenMPIではバージョン1.8.xまではちゃんとMultithread対応をうたっていなかったようで、1.10.0からオフィシャルに対応したようだ。試してみると1.6.5では動くけど1.8.xでは動かなかったり、不安定だった。そこで、OpenMPI 1.10.0を OS X Yosemiteにインストールついでに、OpenMP対応のClang/LLVMをインストールしてみた。
手順としては、OpenMP対応のClangをインストールし、OpenMP用のランタイムライブラリ Intel OpenMP Runtime Libraryをインストールする。次にOpenMP用Clangに対し、OpenMPIをインストールする。
パッチなど当てる必要も無く、掛かったのは待ち時間だけ。Intelのサンプルプログラムもちゃんと動作した。POSIX Threadなど自前でThread Programmingをする人はOpenMPなどは必要ないけれど、あれば便利。
ちなみに、cmakeはkitwareが提供するツールで無い場合はこれもインストールする必要がある。
OpenMP Clang
git clone https://github.com/clang-omp/llvm git clone https://github.com/clang-omp/compiler-rt llvm/projects/compiler-rt git clone -b clang-omp https://github.com/clang-omp/clang llvm/tools/clang mkdir build cd build cmake -G "Unix Makefiles" ../llvm make sudo make install
OpenMPI
./configure --enable-mpi-thread-multiple CXX=/usr/local/bin/clang++ CC=/usr/local/bin/clang
Intel OpenMP Runtime Library
サイトから最新のものをダウンロードし、解凍する。
cd libomp_oss make compiler=/usr/local/bin/clang cd /usr/local/include sudo ln -s /Users/momo/libomp_oss/exports/common/include/omp* . cd ../lib sudo ln -s /Users/momo/libomp_oss/exports/mac_32e/lib.thin/libiomp5.dylib .
0 件のコメント:
コメントを投稿