Создание Boost 1.46.1 * с помощью openmpi *?

Я хотел бы собрать всю библиотеку Boost в Ubuntu 11.04 с помощью gcc 4.5.2. Итак, я начал скачивать файл tar.bz2. Я расширил его. Я запустил bootstrap.sh и заметил, что он жалуется на Unicode, поэтому я установил:

sudo apt-get install libicu-dev

И теперь, похоже, он успешно строит с юникодом. Проблема в том, что я хочу также ссылаться на OpenMPI. ох ой. Итак, я добавил using mpi ; в ./tools/build/v2/user-config.jam и выполнил команду сборки:

./bjam --layout=versioned --build-type=complete

И boost распечатывает ошибки (я сократил большие абзацы):

error: Duplicate name of actual target: <pstage/lib>mpi.so
error: previous virtual target { common%common.copy-mpi.so.PYTHON_EXTENSION {

... затем несколько страниц ...

error: created from ./stage-proper
error: another virtual target { common%common.copy-mpi.so.PYTHON_EXTENSION {

... затем еще несколько страниц ...

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

Похоже, это ошибка, восходящая к Boost 1.40 ?? Но я знаю, что у других это работает. Кто-нибудь знает, что требуется для получения Boost 1.46.1 voodoo, чтобы хорошо работать с openmpi?

Примечание. Я искал в Google, и это не похоже на проблему с Ubuntu - она ​​появилась на gentoo и в других местах. Но я не нашел никакого конкретного решения, кроме build without mpi ..., чего я не могу.

Я бы с радостью опубликовал все журналы, версии пакетов и т. Д.


person M. Tibbits    schedule 05.07.2011    source источник


Ответы (1)


на каком-то другом форуме я обнаружил, что в / tools / build / CMake / externals должен быть файл MPI.cmake. добавление следующих строк должно позволить вам создать Boost с OpenMPI:

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)
person Remi    schedule 22.07.2011
comment
Судя по вашим ответам, вы фанат Cuda. Что побуждает вас обратиться к OpenMPI (рассматривали ли вы OpenCL)? - person Remi; 23.07.2011
comment
Я не использую cmake. Я попытался включить ваше решение в tools / build / v2 / tools / mpi.jam, где используется другой синтаксисc, но мне все еще не удается заставить его работать. - person M. Tibbits; 23.07.2011
comment
Используя --debug-configuration, кажется, что, возможно, jam подбирает две разные разделяемые библиотеки mpi, но необходимы дополнительные исследования. (Только что переехали квартиры, нет интернета в течение 48 часов - кроме телефона). Я опубликую дополнительную информацию в понедельник вечером, и если вы поможете мне заставить это работать, я с радостью повторно предложу вам вознаграждение. - person M. Tibbits; 23.07.2011