如何在自制软件的mpi支持下构建提升?

时间:2012-10-30 16:22:21

标签: macos boost mpi homebrew openmpi

根据这篇文章(https://github.com/mxcl/homebrew/pull/2953),标志“--with-mpi”应该为相关的自制软件公式启用boost_mpi构建支持,所以我试图通过自制软件安装boost如下:

brew install boost --with-mpi

然而,实际的boost mpi库尚未构建且无法找到。 根据:https://github.com/mxcl/homebrew/pull/15689

,目前正在开展一些工作

总之,我目前可以构建boost,但似乎忽略了“--with-mpi”标志。有人可以检查一下,如果我能在Mac OS X Mountain Lion(10.8)上构建boost(支持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 - 任何想法?

3 个答案:

答案 0 :(得分: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并最终构建并安装了所有库而没有问题

答案 1 :(得分:3)

对于遇到此问题的任何人,该程序包已迁移到boost-python,并boost-mpiboost分开。使用brew install boost-mpi

答案 2 :(得分:0)

让它在OSX 10.11.5上运行。我尝试过酿造,但没有运气。

假设您已经安装了gcc。以下是我所做的:

<强> 1。查找并禁用(但不删除)clang

总是引起头痛。构建Boost时会有很多警告。

which clang,它应该为您提供/usr/bin/clang

重命名:sudo mv clang clang_mac_remove,也适用于clang ++: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。安装Boost MPI

下载软件包。

运行./bootstrap.sh(可以先打开它,然后将toolset指定为gcc,否则,mac的默认选项为darwin

using mpi ;文件中添加project-config.jam。然后./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。使用Boost MPI编译

LIBRARY DIR = -L/usr/local/lib

INCLUDE = -I/usr/local/include/

LINKER = -lboost_mpi -lboost_serialization

e.g。

mpic++ -std=c++11 -I/usr/local/include/ -c boost_test.cpp -L/usr/local/lib -lboost_mpi -lboost_serialization
祝你好运!