Как собрать буст с поддержкой mpi на доморощенном?

Согласно этому сообщению (https://github.com/mxcl/homebrew/pull/2953), флаг «--with-mpi» должен включать поддержку сборки boost_mpi для соответствующей формулы доморощенного приготовления, поэтому я пытаюсь установить повышение через доморощенное, как это:

brew install boost --with-mpi

Однако фактическая библиотека boost mpi не создается и не может быть найдена. В настоящее время над этим ведется некоторая работа, согласно: https://github.com/mxcl/homebrew/pull/15689

Таким образом, в настоящее время я могу построить ускорение, но, похоже, флаг «--with-mpi» игнорируется. Может ли кто-нибудь проверить, смогу ли я собрать boost (с поддержкой mpi) на Mac OS X Mountain Lion (10.8)?

(Подробный) вывод генерирует следующие строки:

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 - есть идеи?


person Chris    schedule 30.10.2012    source источник
comment
Здесь есть некоторый результат инициализации сборки: gist.github.com/3981327   -  person Chris    schedule 30.10.2012
comment
Раньше версии OS X поставлялись с предустановленным Open MPI. Я считаю, что OMPI был исключен из Lion и далее, и вам придется устанавливать его вручную. Каталог bin из установки OMPI должен находиться в каталоге PATH — именно там находятся обертки mpicc, mpic++ и т. д.   -  person Hristo Iliev    schedule 30.10.2012
comment
Спасибо - да, я установил open-mpi и только что попробовал с mpich2 (хотя проблема все та же). Путь указывает на /usr/local/bin, где можно найти mpic++, mpicc, mpirun и т. д. при установке с помощью homebrew.   -  person Chris    schedule 30.10.2012


Ответы (3)


На всякий случай, если это поможет кому-то еще, вот как я это исправил. Основная ошибка - MPI auto-detection failed: unknown wrapper compiler mpic++, любой ввод mpic++ в командной строке подтверждал, что у меня он не работает должным образом. Я использовал brew для установки open-mpi, но та же ошибка отображалась в подробном выводе для установки boost. Запуск brew doctor показал, что openmpi не был связан должным образом, поэтому я исправил эти ошибки и перезапустил brew -v install boost --with-mpi --without-single, и, наконец, он без проблем собрал и установил все библиотеки.

person Community    schedule 25.09.2013

Для всех, кто сталкивался с этим, пакет переместился в boost-python и boost-mpi отдельно от boost. Используйте brew install boost-mpi

person kilojoules    schedule 20.02.2016
comment
Это полезная информация, но я считаю, что это должен быть комментарий к вопросу, поскольку он не обязательно отвечает на вопрос, как строить. - person Zizouz212; 23.02.2016

Просто заставьте его работать на 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.

Загрузите пакет.

Укажите компилятору-оболочке gcc и g++:

./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, иначе параметр по умолчанию — 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

e.g.

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

Удачи!

person Ken H    schedule 28.06.2016