मैं एमपीआई सीख रहा हूं। पहले ट्यूटोरियल मैं पीछा किया hereएमपीआई: एमपीआईसी 2 विंडोज़ के साथ लैन में इंस्टॉलेशन और प्रोग्रामिंग
कोड है कि मैं MSVC 2010 विंडोज 7 पर सफलतापूर्वक चला है:
#include "mpi.h"
#include "iostream.h"
int main(int argc,char *argv [])
{
int numtasks, rank, rc;
rc = MPI_Init(&argc,&argv);
if (rc != MPI_SUCCESS) {
printf ("Error starting MPI program. Terminating.\n");
MPI_Abort(MPI_COMM_WORLD, rc);
}
MPI_Comm_size(MPI_COMM_WORLD,&numtasks);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
printf ("Number of tasks= %d My rank= %d\n", numtasks,rank);
MPI_Finalize();
}
मैं सफलतापूर्वक मेरी पेंटियम -4 मशीन पर इस कोड को चला रहा हूँ (न हैरान हूँ हो अभी भी एक पेंटियम -4 है)।
अब मैं ईथरनेट लैन से जुड़े कई मशीनों पर यह कोड (या कोई अन्य एमपीआई कोड) चलाने के लिए चाहता हूं। उदाहरण के लिए कहें कि प्रत्येक मशीन 1 से 1000 तक जाती है, और एक मास्टर नोड पर वापस भेजती है, तो मास्टर नोड फिर अंतिम संख्या प्राप्त करने के लिए उन सभी संख्याओं को जोड़ता है।
मेरा प्रश्न है कि नेटवर्क में एमपीआई प्रोग्रामिंग कैसे शुरू करें? मैं प्रत्येक मशीन में सभी उपकरण/सॉफ्टवेयर क्या चलाना चाहिए।
यदि आप मुझे ट्यूटोरियल में पॉइंटर दे सकते हैं तो मैं वास्तव में सराहना करता हूं।
MPI Implemnetation: MPICH2
O.S:each machine is having Windows 7, 32 bit CPU: Intel's Pentium 4 and Dual core
Network: Ethernet
IDE:MSVC2010
अद्यतन:
मैं अपने संदेह जेईवी के जवाब के साथ मंजूरी दे दी के कुछ मिला है। मेरे नवीनतम प्रश्न हैं:
क्या मैं प्रत्येक मशीन में एमपीआईसी 2 स्थापित करता हूं।
<path-to-mpich2>/bin/mpiexec.exe -machinefile hosts.cfg -n nPEs <your-executable>
मैं कैसे पता होगा कि अपने आवेदन हर मशीन पर चल रहा है: cfg फ़ाइल में प्रत्येक पंक्ति में प्रत्येक मशीन के नाम लिखने के बाद, मैं कुछ और करने के लिए या सिर्फ आदेश दे दिया है? ऐप चलाने के दौरान मुझे प्रत्येक मशीन पर कुछ विशेष विन्यास आदि करने की ज़रूरत है?
क्या यह विंडोज़ में लिनक्स या सेमीडी के लिए है? होस्टफाइल और hosts.cfg क्या है? क्या कोई नमूना। सीएफजी फ़ाइल है? – gpuguy
कमांड को विंडोज़ पर 'mpiexec.exe' कहा जाता है, लिनक्स पर कमांड' mpiexec' होगा। एसएमपीडी (चेक गाइड गाइड) का उपयोग करना विंडोज और लिनक्स दोनों पर काम करना चाहिए बशर्ते मशीनों में एमपीआईसी संस्करण समान हों। mpiexec सिर्फ एक रैपर स्क्रिप्ट है। क्या आपने ईथरनेट के माध्यम से दूसरे नोड को जोड़ने का प्रयास किया है और आप इसे दूरस्थ रूप से लॉगिन कर सकते हैं? – jev
हां, मैं लॉगिन कर सकता हूं लेकिन इस तरह: नेटवर्क => ईथरनेट में जुड़े दूसरे पीसी के डबल क्लिक आइकन। => उपयोगकर्ता आईडी और पासवर्ड दर्ज करें। और अब मैं इस दूसरे पीसी में हूं। मेरा सवाल था मशीनफाइल और hosts.cfg क्या है? क्या मैं इन दो फाइलों में कुछ लिखता हूं? – gpuguy