2011-04-23 26 views
5

पर mpi.h के लिए जी ++ या आईसीसी सेट अप करना मैंने कभी भी VS08 के बाहर कोई भी प्रमुख प्रोग्रामिंग नहीं किया है।उबंटू

मैं दो प्रासंगिक बनाने फ़ाइलों में से किसी एक के साथ LAMMPS नामक प्रोग्राम को संकलित करने का प्रयास कर रहा हूं। एक जी ++ कॉल करता है और अन्य आईसीसी (इंटेल का कंपाइलर) कहते हैं।

आईसीसी इस त्रुटि पैदा करता है:

icc -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M write_restart.cpp > write_restart.d write_restart.cpp(15): catastrophic error: cannot open source file "mpi.h" #include "mpi.h"

और जी ++ इस त्रुटि

g++ -g -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M verlet.cpp > verlet.d pointers.h:25: fatal error: mpi.h: No such file or directory compilation terminated.

mpi.h फ़ाइल में स्थित है फेंकता है/usr/lib/openmpi/शामिल

यह है मेरी समझ है कि मुझे उस $ PATH चर को सेट करने की आवश्यकता है जो

bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/opt/intel/bin:/usr/lib/openmpi/include:

पढ़ता है

और $ LD_LIBRARY_PATH जो वर्तमान में

/usr/lib/openmpi/lib:

अतः पढ़ता है, कैसे एक mpi.h फ़ाइल शामिल होते हैं? तो या तो आईसीसी या जी ++ इसे पाते हैं?

उत्तर

2

ठीक था, तो मैं जी के साथ ++ काम करने के लिए मिल गया जब सीसी की स्थापना अमान्य कम्युनिकेटर, त्रुटि ढेर: MPI_Comm_rank (106): "mpiC++" के बदले "। mpiC++ mpich2" के रूप में

5

mpi.h एमपीआई लाइब्रेरी के लिए एक शीर्षलेख है। यदि आप अपने मेकफ़ाइल में g ++ के बजाय एमपीपी ++ एमपीआई कंपाइलर रैपर का उपयोग करते हैं तो इसमें शामिल किया जाएगा। mpiC++ उपयुक्त कंपाइलर को कॉल करेगा। आप जो वर्णन करते हैं उससे आपके ओबंटू मशीन पर ओपनएमपी पैकेज स्थापित है।

अधिक जानकारी के लिए, आपको मैन्युअल से परामर्श करने की आवश्यकता है, उदा।

(LAMMPS के लिए)

और शायद http://lammps.sandia.gov/doc/Section_start.html#2_2 आप कैसे अतिरिक्त संकलक स्थापित करने के लिए के रूप में openmpi पुस्तिका देखने के लिए की जरूरत है। यह सुनिश्चित नहीं है कि ओपनएमपी के निर्माण के बाद यह किया जा सकता है। डिफ़ॉल्ट रूप से मुझे लगता है कि उबंटू ओपनम्पि कंपाइलर रैपर में केवल जी ++ कॉल होगा। CMIIW।

+0

मेक फ़ाइल एक निष्पादन योग्य है कि तुरंत MPI_Comm_rank में साथ दुर्घटनाओं> गंभीर त्रुटि बाहर थूक MPI_Comm_rank (कॉम = 0x8e5bc0, रैंक = 0x2854d00) असफल MPI_Comm_rank (64) .: अमान्य संवाददाता – Mikhail

+0

ठीक है, इसलिए मुझे "mpiC++" के बजाय "mpiC++। Mpich2" के रूप में सीसी सेट अप करते समय g ++ के साथ काम करने के लिए मिला। – Mikhail

0

तुम कोशिश openmpi फ़ाइल बनाने का उपयोग कर संकलन कर सकते हैं में/src/बनाने मेकअप openmpi

मेरे मामले में

, इस विकल्प को सफल