2012-10-30 19 views
5

इस पोस्ट (https://github.com/mxcl/homebrew/pull/2953), झंडा "--with-mpi" के अनुसार संबंधित homebrew सूत्र के लिए समर्थन का निर्माण boost_mpi सक्षम होना चाहिए, इसलिए मैं इस तरह homebrew के माध्यम से बढ़ावा स्थापित करने के लिए कोशिश कर रहा हूँ: वास्तविक बढ़ावाहोमब्री पर एमपीआई समर्थन के साथ बढ़ावा कैसे बनाएं?

brew install boost --with-mpi 

हालांकि, एमपीआई लाइब्रेरी का निर्माण नहीं किया जा रहा है और पाया नहीं जा सकता है। वर्तमान में कुछ काम है, इस के आसपास किया जा रहा है के अनुसार: https://github.com/mxcl/homebrew/pull/15689

सारांश में, मैं वर्तमान में बढ़ावा निर्माण कर सकते हैं, लेकिन यह "--with-mpi" फ़्लैग अनदेखा कर दिया जा रहा है लगता है। क्या कोई कृपया जांच कर सकता है, अगर मैक ओएस एक्स माउंटेन शेर (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. 

सुनिश्चित नहीं हैं कि मैं यह कैसे बिल्कुल ठीक करने और एमपीआई सामान का निर्माण होने के लिए प्राप्त कर सकते हैं - किसी भी विचार?

+0

बिल्ड प्रारंभिकरण का कुछ आउटपुट यहां है: https://gist.github.com/3981327 – Chris

+0

पुराने ओएस एक्स संस्करण ओपन एमपीआई प्रीइंस्टॉल के साथ शिप करने के लिए उपयोग किए जाते थे। मेरा मानना ​​है कि ओएमपीआई को शेर के बाद से गिरा दिया गया था और आपको इसे मैन्युअल रूप से इंस्टॉल करना होगा। ओएमपीआई स्थापना से 'बिन' निर्देशिका 'पथ' में होनी चाहिए - यह वह जगह है जहां 'mpicc',' mpiC++', आदि wrappers स्थित हैं। –

+0

धन्यवाद - हाँ मैंने ओपन-एमपीआई स्थापित किया है, और बस mpich2 के साथ भी कोशिश की है (फिर भी वही समस्या है, हालांकि)। पथ/usr/local/bin पर इंगित कर रहा है, जहां mpiC++, mpicc, mpirun, आदि पाया जा सकता है, जब आप होमब्रू के साथ स्थापित करते हैं। – Chris

उत्तर

4

बस अगर यह लाइन के साथ किसी और की मदद करता है, तो मैंने इसे कैसे तय किया है। मुख्य त्रुटि MPI auto-detection failed: unknown wrapper compiler mpic++ है, कमांड लाइन पर किसी भी टाइपिंग mpiC++ ने सत्यापित किया है कि यह मेरे लिए ठीक से काम नहीं कर रहा था। मैंने ओपन-एमपीआई स्थापित करने के लिए ब्रू का इस्तेमाल किया, लेकिन बूस्ट स्थापित करने के लिए वर्बोज़ आउटपुट में वही त्रुटि दिखाई दे रही थी। brew doctor का एक रन से पता चला कि openmpi ठीक से जुड़ा हुआ नहीं था, इसलिए मैं उन त्रुटियों को ठीक किया गया और brew -v install boost --with-mpi --without-single reran और यह अंत में बनाया गया है और एक समस्या

3

बिना पुस्तकालयों के सभी स्थापित किसी को भी है कि इस भर आता है करने के लिए, पैकेज boost-python चले गए और boost-mpiboost से अलग है। brew install boost-mpi

+0

यह सहायक जानकारी है, लेकिन मुझे विश्वास है कि यह प्रश्न पर एक टिप्पणी होनी चाहिए, क्योंकि यह आवश्यक नहीं है कि "कैसे निर्माण करें" प्रश्न का उत्तर दें। – Zizouz212

0

बस इसे ओएसएक्स 10.11.5 पर काम करें। मैंने ब्रू की कोशिश की है, लेकिन बिना किसी किस्मत के।

मान लीजिए कि आपके पास पहले से ही जीसीसी स्थापित है। यहाँ मैं क्या किया है इस प्रकार हैं:

1. ढूंढें और अक्षम (लेकिन न निकालें) बजना

बजना alway सिर दर्द का कारण है। बूस्ट का निर्माण करते समय बहुत सारी चेतावनियां होंगी।

which clang, जो आप /usr/bin/clang

यह नाम बदलें देना चाहिए: sudo mv clang clang_mac_remove, यह भी बजना के लिए ++: sudo mv clang++ clang++_mac_remove। अगर आपको भविष्य में उनकी ज़रूरत है तो आप नाम वापस बदल सकते हैं।

2. openmpi

स्थापित करें आप पहले से ही काढ़ा का उपयोग कर स्थापित किया है, पहले की स्थापना रद्द करें। Becasue यह डिफ़ॉल्ट रूप से संकलक रैपर के रूप में 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. स्थापित करें बूस्ट एमपीआई

पैकेज डाउनलोड करें।

भागो ./bootstrap.sh (पहले इसे खोलने और निर्दिष्ट gcc करने के लिए toolset, अन्यथा, डिफ़ॉल्ट विकल्प मैक के लिए darwin है सकते हैं)।

project-config.jam फ़ाइल में जोड़ें। फिर ./b2 —with-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. बूस्ट एमपीआई के साथ संकलित

लाइब्रेरी DIR = -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 

शुभकामनाएँ!