मैं एमपीआई में एक प्रोग्राम को कार्यान्वित कर रहा हूं जिसमें मुख्य प्रक्रिया (रैंक = 0 के साथ) उन अन्य प्रक्रियाओं से अनुरोध प्राप्त करने में सक्षम होना चाहिए जो चर के मूल्यों के लिए पूछते हैं जो केवल रूट द्वारा ज्ञात हैं । यदि मैं रैंक 0 द्वारा MPI_Recv (...) बना देता हूं, तो मुझे उस प्रक्रिया का रैंक निर्दिष्ट करना होगा जो रूट को अनुरोध भेजता है, लेकिन मैं इसे नियंत्रित नहीं कर सकता क्योंकि प्रक्रियाएं क्रमशः 1,2 में नहीं चलती हैं, 3, .... मैं किसी भी रैंक से अनुरोध कैसे प्राप्त कर सकता हूं और इसे आवश्यक जानकारी भेजने के लिए उत्सर्जन प्रक्रिया की संख्या का उपयोग कैसे कर सकता हूं?किसी अज्ञात स्रोत से MPI recv
24
A
उत्तर
44
यह मानता है कि आप सी का उपयोग कर रहे हैं सी ++ और फोरट्रान में समान अवधारणाएं हैं। आप MPI_recv()
में स्रोत के रूप में बस MPI_ANY_SOURCE
निर्दिष्ट करेंगे। स्थिति संरचना में संदेश का वास्तविक स्रोत होता है।
int buf[32];
MPI_Status status;
// receive message from any source
MPI_recv(buf, 32, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
int replybuf[];
// send reply back to sender of the message received above
MPI_send(buf, 32, MPI_INT, status.MPI_SOURCE, tag, MPI_COMM_WORLD);
2
MPI_ANY_SOURCE स्पष्ट उत्तर है।
हालांकि, यदि सभी रैंक 0 रैंक के लिए अनुरोध भेज रहे हैं, तो MPI_Irecv MPI_Testall के साथ संयुक्त भी एक पैटर्न के रूप में काम कर सकता है। यह MPI_Send कॉल को किसी भी क्रम में निष्पादित करने की अनुमति देगा, और MPI_Irecv कॉल का मिलान होने के क्रम में जानकारी प्राप्त और संसाधित की जा सकती है।
संबंधित मुद्दे
- 1. MPI
- 2. एमपीआई गैर अवरुद्ध भेजने/recv
- 3. MPI संचार
- 4. recv() अजगर
- 5. mpi एकाधिक init अंतिम
- 6. recv() रिटर्न 0
- 7. mpi: अवरुद्ध बनाम गैर-अवरुद्ध
- 8. सॉकेट प्रोग्रामिंग: recv/पढ़ मुद्दा
- 9. MPI रैंक/प्रक्रिया संख्या को सॉकेट/नोड
- 10. किसी अज्ञात अनाम वर्ग से बाहरी अज्ञात वर्ग के क्षेत्र तक पहुंच
- 11. recv() के आउटपुट को कैसे स्टोर करें?
- 12. किसी अज्ञात वर्ग के निर्माता का उपयोग
- 13. nginx त्रुटियों readv() और recv() विफल
- 14. "अज्ञात स्रोत", फिर भी लाइन नंबर क्लास फ़ाइल
- 15. मुझे किसी अज्ञात प्रकार से किसी संपत्ति का मूल्य कैसे प्राप्त हो सकता है?
- 16. अज्ञात
- 17. आईओएस, अज्ञात प्रक्रिया, अज्ञात क्रैश
- 18. DataTables में पंक्ति 0 के लिए डेटा स्रोत से अनुरोध किया गया अज्ञात पैरामीटर '1'
- 19. किसी डेटाटेबल/डेटासेट को ऑब्जेक्टडेटा स्रोत
- 20. क्लोजर में, क्या किसी अज्ञात फ़ंक्शन को अज्ञात फ़ंक्शन के भीतर परिभाषित करना संभव है?
- 21. स्रोत स्रोत
- 22. फ़ाइल से बिटमैप स्रोत
- 23. एनएसआईएस - स्रोत से संस्थापक
- 24. अज्ञात संरचना
- 25. रनटाइम पर किसी अन्य "अज्ञात" तालिका में इकाई मानचित्र बदलें
- 26. इस प्रतिनिधि को किसी अज्ञात विधि या lambda
- 27. अज्ञात वर्ग
- 28. अज्ञात NullPointerException() लाइन: 96
- 29. समान सॉकेट पर भेजने/recv भेजने के समानांतर कॉल हैं?
- 30. नामस्थान अज्ञात
बहुत बहुत धन्यवाद !! मुझे यह नहीं पता था, लेकिन वास्तव में बहुत उपयोगी – shkk
ऐसा लगता है कि संपादन ने कोड को अनुपयोगी बनाया है। मूल स्थिति के स्रोत की पहचान करने के लिए 'स्थिति' संरचना वास्तव में 'एमपीआई_Send' ऑपरेशन के लिए उपयोग की जाती है:' status.MPI_SOURCE' – Marius
@ मैरियस धन्यवाद, मैं मूल संस्करण पर वापस आ गया हूं, और कुछ टिप्पणियां जोड़ दी हैं चीजों को स्पष्ट करें। – KeithB