MPI_Isend के बारे में, एमपीआई मानक कहते हैं, "एक nonblocking भेजने कॉल इंगित करता है कि प्रणाली भेजने बफर से बाहर डेटा की प्रतिलिपि शुरू हो सकता है। के बाद एक nonblocking भेजने आपरेशन कहा जाता है इस भेजने बफर के किसी भी भाग का उपयोग नहीं करना चाहिए, जब तक प्रेषण पूरा करता है।" (http://www.mpi-forum.org/docs/mpi-11-html/node46.html)एक बफर पर MPI_Isend कई बार कॉल करने के लिए ठीक है?
प्रेषण बफर को किसी अन्य प्रेषण कॉल में संदर्भित कर रहा है ठीक है, या क्या "प्रेषण बफर के किसी भी हिस्से तक पहुंच" में शामिल है?
दूसरे शब्दों में, प्रेषक के लिए निम्नलिखित सी कोड सही है?
MPI_Request req[2];
MPI_Status statuses[2];
...
MPI_Isend(buf, type, count, dest0, tag, comm, &req[0]);
MPI_Isend(buf, type, count, dest1, tag, comm, &req[1]);
MPI_Waitall(2, req, statuses);
मैं यहाँ अनुमान लगा रहा हूँ, जिसके कारण यह एक पूर्ण जवाब के रूप में में नहीं जा रहा है, क्या तुम सच में ऐसा करने के लिए नहीं करना चाहती स्रोत बफर की सामग्री को संशोधित या पहले गंतव्य बफर की सामग्री पढ़ने है कि भेजना पूरा हो गया है तो मेरे लिए, आप क्या कर रहे हैं ठीक दिखता है। लेकिन कृपया परीक्षण करें। इसके लिए मेरा शब्द मत लो। –
@ bob.sacamento बेशक, यह सच है। और मुझे पता है कि एमपीआईआई कार्यान्वयन के लिए मेरा कोड सही होगा (स्रोत कोड को देखा गया), लेकिन मैं जानना चाहता हूं कि यह मानक के अनुसार सही है या नहीं, यानी एमपीआई के हर सही कार्यान्वयन पर काम करेगा। –