<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr">Completed requests are set to MPI_REQUEST_NULL. Since MPI_Ibarrier (and MPI_Barrier) is a no-op for a communicator of size 1, it is trivially complete and it would seem that MPICH is optimizing away the unnecessary request object here.<div><br></div><div>Why don't you use MPI_Test instead of direct comparison?<br><div><br></div><div>Jeff<br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 6, 2015 at 10:04 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In MPICH 3.2, MPI_Ibarrier(MPI_COMM_SELF,&r) returns r ==<br>
MPI_REQUEST_NULL. This is also the case for other communicators of size<br>
1. Previous versions of MPICH and also all versions of Open MPI return<br>
a valid request not equal to MPI_REQUEST_NULL. This bit me because it<br>
was natural to compare to MPI_REQUEST_NULL in a conditional for an<br>
Ibarrier/Issend/Iprobe algorithm. It can be worked around with a<br>
slightly more complicate conditional, but is this change intentional?<br>
<br>
The call returns a request handle, which must be passed to a<br>
completion call.<br>
-- MPI-3 ยง5.12<br>
<br>
This does not say "unless the communicator has size 1".<br>
<br>_______________________________________________<br>
discuss mailing list <a href="mailto:discuss@mpich.org">discuss@mpich.org</a><br>
To manage subscription options or unsubscribe:<br>
<a href="https://lists.mpich.org/mailman/listinfo/discuss" rel="noreferrer" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div></div></div></div>