5

根据这篇文章(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,目前正在围绕此进行一些工作

总之,我目前可以构建提升,但似乎“ --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 东西 - 有什么想法吗?

4

3 回答 3

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,它最终构建并安装了所有库而没有问题

于 2013-09-25T04:55:03.017 回答
3

对于遇到此问题的任何人,该软件包已迁移boost-pythonboost-mpi. boost利用brew install boost-mpi

于 2016-02-20T23:31:15.273 回答
0

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

假设你已经安装了 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(可以先打开并指定toolsetto gcc,否则默认darwin为mac)。

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 编译

图书馆目录 =-L/usr/local/lib

包括 =-I/usr/local/include/

链接器 =-lboost_mpi -lboost_serialization

例如

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

祝你好运!

于 2016-06-28T23:03:08.280 回答