<div class="gmail_quote">On Sun, Sep 23, 2012 at 9:45 AM, N.M. Maclaren <span dir="ltr"><<a href="mailto:nmm1@cam.ac.uk" target="_blank">nmm1@cam.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":d6">That can be done only if you impose some OTHER constraints on the use<br>
of the buffers, which MPI currently does not do.  I know how to do it,<br>
in both Fortran and C99, but I doubt that you do.  The issues for<br>
MPI_Ireduce and MPI_Irecv_reduce are far subtler, and I am not even<br>
going to try explaining them until you understand the simpler one.</div></blockquote></div><br><div>MPI imposes that the user is forbidden from accessing the buffer until the request has completed. The MPI implementation provides the memory barrier before returning to the user. Please explain why this is not sufficient?</div>