使用openmpi*构建Boost 1.46.1*?

使用openmpi*构建Boost 1.46.1*?,boost,openmpi,Boost,Openmpi,我想用GCC4.5.2在Ubuntu11.04上构建所有库。所以我开始下载tar.bz2文件。我扩展了它。我运行bootstrap.sh,发现它在抱怨unicode,所以我安装了: sudo-apt-get-install-libicu-dev 现在,它似乎正在愉快地使用unicode构建。问题是我还想链接到OpenMPI。哦。因此,我使用mpi添加了到/tools/build/v2/user config.jam并运行我的build命令: /bjam--layout=versionied--b

我想用GCC4.5.2在Ubuntu11.04上构建所有库。所以我开始下载tar.bz2文件。我扩展了它。我运行bootstrap.sh,发现它在抱怨unicode,所以我安装了:

sudo-apt-get-install-libicu-dev

现在,它似乎正在愉快地使用unicode构建。问题是我还想链接到OpenMPI。哦。因此,我使用mpi添加了
/tools/build/v2/user config.jam
并运行我的build命令:

/bjam--layout=versionied--build type=complete

boost会打印出错误(我已将大段缩短):

。。。然后再多写几页

error: created from ./stage-proper
error: added properties: <debug-symbols>off <define>NDEBUG <inlining>full <library>object(file-target)@3501 <library>object(file-target)@3568 <library>object(file-target)@4171 <library>object(file-target)@4184 <library>object(searched-lib-target)@4066 <library>object(searched-lib-target)@4072 <library>object(searched-lib-target)@4078 <optimization>speed <runtime-debugging>off <variant>release <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/mpi/build/gcc-4.5.2/release/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/python/build/gcc-4.5.2/release/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/serialization/build/gcc-4.5.2/release/threading-multi
error: removed properties: <debug-symbols>on <inlining>off <library>object(file-target)@1244 <library>object(file-target)@1350 <library>object(file-target)@2378 <library>object(file-target)@2393 <library>object(searched-lib-target)@2217 <library>object(searched-lib-target)@2223 <library>object(searched-lib-target)@2229 <optimization>off <runtime-debugging>on <variant>debug <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/mpi/build/gcc-4.5.2/debug/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/python/build/gcc-4.5.2/debug/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/serialization/build/gcc-4.5.2/debug/threading-multi
/home/mtibbits/src/boost_1_46_1/tools/build/v2/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@4661
/home/mtibbits/src/boost_1_46_1/tools/build/v2/build/virtual-target.jam:135: in object(file-target)@4661.actualize from module object(file-target)@4661
/home/mtibbits/src/boost_1_46_1/tools/build/v2/build-system.jam:748: in load from module build-system
/home/mtibbits/src/boost_1_46_1/tools/build/v2/kernel/modules.jam:283: in import from module modules
/home/mtibbits/src/boost_1_46_1/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module
/home/mtibbits/src/boost_1_46_1/boost-build.jam:17: in module scope from module
错误:创建自./stage-property
错误:添加属性:关闭NDEBUG完整对象(文件目标)@3501对象(文件目标)@3568对象(文件目标)@4171对象(文件目标)@4184对象(搜索库目标)@4066对象(搜索库目标)@4072对象(搜索库目标)@4078加速发行版/home/mtibbits/src/boost_1_46_1/bin.v2/libs/mpi/build/gcc-4.5.2/release/threading-multi/home/mtibbits/src/boost_1_46_1/bin.v2/libs/python/build/gcc-4.5.2/release/threading-multi/home/mtibbits/src/boost_1/libs/serialization/build/gcc-4.5.2/release/threading-multi
错误:删除的属性:开-关对象(文件目标)@1244对象(文件目标)@1350对象(文件目标)@2378对象(文件目标)@2393对象(搜索库目标)@2217对象(搜索库目标)@2223对象(搜索库目标)@2229关闭调试/home/mtibbits/src/boost_1_46_1/bin.v2/libs/mpi/build/gcc-4.5.2/debug/threading-multi/home/mtibbits/src/boost_1_46_1/bin.v2/libs/python/build/gcc-4.5.2/debug/threading-multi/home/mtibbits/src/boost_1/libs/serialization/build/gcc-4.5.2/debug/threading-multi
/home/mtibits/src/boost_1_46_1/tools/build/v2/build/virtual target.jam:490:in-realization无来自模块对象(文件目标)的扫描仪@4661
/home/mtibits/src/boost_1_46_1/tools/build/v2/build/virtual target.jam:135:in-object(file-target)@4661.implementation-from-module-object(file-target)@4661
/home/mtibits/src/boost_1_46_1/tools/build/v2/build system.jam:748:从模块构建系统加载
/home/mtibits/src/boost_1_46_1/tools/build/v2/kernel/modules.jam:283:从模块导入
/home/mtibits/src/boost_1_46_1/tools/build/v2/kernel/bootstrap.jam:142:来自模块的boost构建中
/home/mtibits/src/boost_1_46_1/boost build.jam:17:来自模块的模块范围内
这似乎可以追溯到Boost 1.40??但我知道其他人已经成功了。有谁知道获得Boost 1.46.1所需的巫毒才能很好地使用openmpi吗

注意:我一直在谷歌上搜索,这似乎不是Ubuntu特有的问题——它已经出现在网站和其他地方。但我还没有找到任何具体的解决方案,除了没有mpi的构建。。。但我不能


我很乐意发布整个日志、包版本等。

从其他论坛上,我发现在/tools/build/CMake/externals中,应该有一个MPI.CMake文件。 添加以下行应允许您使用OpenMPI构建Boost:

set(MPI_INCLUDE_PATH /usr/include/openmpi-x86_64)
set(MPI_COMPILE_FLAGS -I/usr/include/openmpi-x86_64)
set(MPI_LINK_FLAGS -L/usr/lib64/openmpi/lib -L/usr/lib64/openmpi/lib/openmpi
-lmpi_cxx -lmpi)
set(MPI_LIBRARIES /usr/lib64/openmpi/lib/libmpi.so
/usr/lib64/openmpi/lib/libmpi_cxx.so)
set(MPI_FOUND 1)

在其他论坛上,我发现在/tools/build/CMake/externals中应该有一个MPI.CMake文件。 添加以下行应允许您使用OpenMPI构建Boost:

set(MPI_INCLUDE_PATH /usr/include/openmpi-x86_64)
set(MPI_COMPILE_FLAGS -I/usr/include/openmpi-x86_64)
set(MPI_LINK_FLAGS -L/usr/lib64/openmpi/lib -L/usr/lib64/openmpi/lib/openmpi
-lmpi_cxx -lmpi)
set(MPI_LIBRARIES /usr/lib64/openmpi/lib/libmpi.so
/usr/lib64/openmpi/lib/libmpi_cxx.so)
set(MPI_FOUND 1)

我从你的回答中看出你是Cuda的粉丝。是什么让你对OpenMPI感兴趣(你考虑过OpenCL吗)?我没有使用cmake。我已经尝试将您的解决方案合并到tools/build/v2/tools/mpi.jam中,它使用了不同的语法,但我似乎仍然无法使它正常工作。使用--debug配置,jam可能会选择两个不同的mpi共享库,但需要更多的调查。(刚刚移动了apts,48小时内没有互联网——除了电话)。周一晚上我会发布更多的信息,如果你能帮我完成这项工作,我很乐意为你提供一笔奖金。从你的回答中我看到你是Cuda的粉丝。是什么让你对OpenMPI感兴趣(你考虑过OpenCL吗)?我没有使用cmake。我已经尝试将您的解决方案合并到tools/build/v2/tools/mpi.jam中,它使用了不同的语法,但我似乎仍然无法使它正常工作。使用--debug配置,jam可能会选择两个不同的mpi共享库,但需要更多的调查。(刚刚移动了apts,48小时内没有互联网——除了电话)。我会在周一晚上发布更多的信息,如果你能帮我完成这项工作,我很乐意再次为你提供赏金。
set(MPI_INCLUDE_PATH /usr/include/openmpi-x86_64)
set(MPI_COMPILE_FLAGS -I/usr/include/openmpi-x86_64)
set(MPI_LINK_FLAGS -L/usr/lib64/openmpi/lib -L/usr/lib64/openmpi/lib/openmpi
-lmpi_cxx -lmpi)
set(MPI_LIBRARIES /usr/lib64/openmpi/lib/libmpi.so
/usr/lib64/openmpi/lib/libmpi_cxx.so)
set(MPI_FOUND 1)