2012-10-30 6 views
5

Nach diesem Beitrag (https://github.com/mxcl/homebrew/pull/2953), das Flag „--with-mpi“ sollte ermöglichen boost_mpi Unterstützung für die damit verbundene Homebrew Formel zu bauen, so versuche ich, boost über Homebrew wie diese zu installieren:Wie Boost mit MPI-Unterstützung auf Homebrew bauen?

brew install boost --with-mpi 

jedoch die Ist-Lade Die mpi-Bibliothek wird nicht erstellt und kann nicht gefunden werden. Es gibt zur Zeit einige Arbeit, um dies getan, nach: https://github.com/mxcl/homebrew/pull/15689

Zusammengefasst ich derzeit Auftrieb bauen kann, aber es scheint, die „--with-mpi“ Flagge ignoriert wird. Könnte jemand bitte nachsehen, ob ich Boost (mit MPI-Unterstützung) unter Mac OS X Mountain Lion (10.8) aufbauen kann?

Die (ausführlich) Ausgabe erzeugt diese Zeilen:

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. 

nicht sicher, wie genau ich dieses Problem beheben kann und die mpi Sachen gebaut werden erhalten - irgendwelche Ideen?

+0

Es gibt einige Ausgaben der Build-Initialisierung hier: https://gist.github.com/3981327 – Chris

+0

Ältere OS X-Versionen verwendet, um mit Open MPI vorinstalliert zu liefern. Ich glaube, OMPI wurde von Lion abgesetzt und Sie müssten es manuell installieren. Das 'bin' -Verzeichnis von der OMPI-Installation sollte im' PATH' liegen - dort befinden sich 'mpicc',' mpiC++', usw. Wrapper. –

+0

Danke - ja ich habe open-mpi installiert, und gerade mit mpich2 auch versucht (immer noch das gleiche Problem). Der Pfad zeigt auf/usr/local/bin, wo mpiC++, mpicc, mpirun usw. gefunden werden können, wenn Sie mit homebrew installieren. – Chris

Antwort

4

Nur für den Fall, dass dies hilft jedem anderen entlang der Linie, hier ist, wie ich das behoben. Der Hauptfehler ist MPI auto-detection failed: unknown wrapper compiler mpic++, jede Eingabe mpiC++ in der Befehlszeile verifiziert, dass es nicht richtig für mich funktionierte. Ich habe brew verwendet, um open-mpi zu installieren, aber der gleiche Fehler wurde in der ausführlichen Ausgabe zur Installation von Boost angezeigt. Ein Lauf von brew doctor zeigte, dass openmpi nicht richtig verbunden war, so fixiert ich diese Fehler und reran brew -v install boost --with-mpi --without-single und es schließlich gebaut und installiert alle Bibliotheken, ohne ein Problem

3

für jeden, der über das kommt, das Paket zu migrierenden boost-python und boost-mpi getrennt von boost. Verwenden Sie brew install boost-mpi

+0

Dies sind hilfreiche Informationen, aber ich glaube, dass dies ein Kommentar zu der Frage sein sollte, da sie nicht unbedingt die Frage "Wie baue ich?" Beantwortet. – Zizouz212

0

Nur bekommen es unter OSX 10.11.5 gearbeitet. Ich habe versucht, brauen, aber ohne Glück.

Angenommen, Sie haben bereits gcc installiert. Hier sind das, was ich getan habe:

1. Suchen und deaktivieren (aber nicht entfernen) Klirren

Klirren alway Kopfschmerzen verursachen. Beim Aufbau von Boost würde es viele Warnungen geben.

which clang, die Sie geben sollten /usr/bin/clang

es Umbenennen: sudo mv clang clang_mac_remove, auch für Klirren ++: sudo mv clang++ clang++_mac_remove. Sie können die Namen zurück ändern, wenn Sie sie in Zukunft benötigen.

2. Installieren OpenMPI

Wenn Sie bereits mit brauen installiert, deinstallieren Sie zuerst. Weil es standardmäßig call als Compiler-Wrapper verwendet hätte. Sie müssen den Wrapper zu gcc ändern.

Laden Sie das Paket herunter.

Geben Sie den Wrapper-Compiler gcc und g++:

./configure CC=gcc CXX=g++ F77=ifort FC=ifort --prefix=/usr/local 

Im Folgenden eine lange Zeit in Anspruch nehmen.

make all 

sudo make install 

Referenz: https://wiki.helsinki.fi/display/HUGG/Open+MPI+install+on+Mac+OS+X

3. Installieren Boost-MPI

das Paket zum Download.

Run ./bootstrap.sh (es kann zuerst öffnen, und geben Sie die toolset-gcc, andernfalls die Standardoption ist darwin für mac).

Hinzufügen using mpi ; in project-config.jam Datei. Dann wird ./b2 —with-mpi nur die MPI-Bibliothek erstellen.

Alle erstellten Bibliotheken können dann im Ordner ~/Downloads/boost_1_61_0/stage/lib gefunden werden.

Kopieren oder verschieben Sie sie zu /usr/local/lib oder einem anderen häufig verwendeten Bibliothekspfad.

Referenz: http://www.boost.org/doc/libs/1_61_0/doc/html/mpi/getting_started.html

4. Compilieren mit Boost MPI

LIBRARY DIR = -L/usr/local/lib

INCLUDE = -I/usr/local/include/

LINKER = -lboost_mpi -lboost_serialization

z.B.

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

Viel Glück!