2012-10-30 28 views
5

根據這個帖子(https://github.com/mxcl/homebrew/pull/2953),標誌「--with-mpi」應使得boost_mpi建立相關的自制式的支持,所以我想通過自制軟件這樣的安裝升壓:如何使用mpi支持自制軟件構建boost?

brew install boost --with-mpi 

然而,實際的提升mpi庫不會被構建並且無法找到。 目前一些工作正在解決此完成,根據:https://github.com/mxcl/homebrew/pull/15689

總之,我目前可以建立提升,但它似乎是「--with-mpi」標誌被忽略。有人可以檢查一下,如果我應該能夠在Mac OS X Mountain Lion(10.8)上構建增強(使用mpi支持)?

的(詳細)輸出生成這些行:

MPI auto-detection failed: unknown wrapper compiler mpic++ 
Please report this error to the Boost mailing list: http://www.boost.org 
You will need to manually configure MPI support. 

warning: skipping optional Message Passing Interface (MPI) library. 
note: to enable MPI support, add "using mpi ;" to user-config.jam. 
note: to suppress this message, pass "--without-mpi" to bjam. 
note: otherwise, you can safely ignore this message. 

不知道我究竟是如何能解決這個問題,並得到了MPI東西是構建 - 任何想法?

+0

這裏有一些構建初始化的輸出:https://gist.github.com/3981327 – Chris

+0

用於預裝Open MPI的舊OS X版本。我相信OMPI從獅子開始就被拋棄了,你將不得不手動安裝它。 OMPI安裝的'bin'目錄應該位於'PATH'中 - 它就是'mpicc','mpiC++'等包裝所在的位置。 –

+0

謝謝 - 是的,我安裝了開放mpi,並試圖與mpich2以及(仍然是同樣的問題,雖然)。路徑指向/ usr/local/bin,這是使用自制程序安裝時可以找到mpiC++,mpicc,mpirun等的位置。 – Chris

回答

4

爲了以防萬一,這個是我如何解決這個問題的。主要的錯誤是MPI auto-detection failed: unknown wrapper compiler mpic++,任何在命令行鍵入mpiC++證實它不適合我。我用brew來安裝open-mpi,但是在安裝boost的詳細輸出中顯示相同的錯誤。的brew doctor一個運行表明了openmpi未正確連接,所以我固定的錯誤,並重新運行brew -v install boost --with-mpi --without-single它終於建造和安裝的所有庫沒有問題

3

若要在遇到這個人,包遷移到boost-pythonboost-mpi獨立於boost。使用brew install boost-mpi

+0

這是有用的信息,但我確實認爲這應該是對問題的評論,因爲它不一定回答「如何構建」的問題。 – Zizouz212

0

只是得到它在OSX 10.11.5的工作。我試過釀造,但沒有運氣。

假設您已經安裝了gcc。下面是我做了什麼:

1.找到並禁用(但不刪除)鐺

鐺送花兒給人引起頭痛。構建Boost時會有很多警告。

which clang,這應該給你/usr/bin/clang

其重命名爲:sudo mv clang clang_mac_remove,也是鐺++:sudo mv clang++ clang++_mac_remove。如果將來需要它們,可以更改名稱。

2.安裝的openmpi

如果使用BREW已經安裝,卸載第一。因爲它默認使用clang作爲編譯器封裝。您需要將包裝器更改爲gcc

下載包裝。

指定包裝編譯器gccg++

./configure CC=gcc CXX=g++ F77=ifort FC=ifort --prefix=/usr/local 

下面可能需要很長的時間。

make all 

sudo make install 

參考:https://wiki.helsinki.fi/display/HUGG/Open+MPI+install+on+Mac+OS+X

3.安裝升壓MPI

下載包。

運行./bootstrap.sh(可以先打開並指定toolsetgcc,否則,對於mac,默認選項爲darwin)。

project-config.jam文件中添加using mpi ;。然後./b2 —with-mpi將只生成mpi庫。

然後,可以在文件夾~/Downloads/boost_1_61_0/stage/lib中找到所有構建的庫。

將它們複製或移動到/usr/local/lib或任何其他常用庫路徑。

參考:http://www.boost.org/doc/libs/1_61_0/doc/html/mpi/getting_started.html

4.編譯與升壓MPI

LIBRARY DIR = -L/usr/local/lib

INCLUDE = -I/usr/local/include/

LINKER = -lboost_mpi -lboost_serialization

例如

mpic++ -std=c++11 -I/usr/local/include/ -c boost_test.cpp -L/usr/local/lib -lboost_mpi -lboost_serialization 

祝你好運!

相關問題