Hi, that's one of the mysteries of the MPI-1 standard. Nevertheless, we should be std. conforming. Therefore, I included the comment and omitted the setting of .MPI_ERROR.
MPIch2 does not for the same reasons. Therefore I would say the tests are wrong. With best regards, Rainer PS: e.g. from mpich2-1.0.7: include/mpiimpl.h:2112 /* Do not set MPI_ERROR (only set if ERR_IN_STATUS is returned */ #define MPIR_Status_set_empty(status_) \ { \ if ((status_) != MPI_STATUS_IGNORE) \ { \ (status_)->MPI_SOURCE = MPI_ANY_SOURCE; \ (status_)->MPI_TAG = MPI_ANY_TAG; \ (status_)->count = 0; \ (status_)->cancelled = FALSE; \ } \ } On Sonntag, 8. Juni 2008, George Bosilca wrote: > Here is what the MPI standard state: > > "In general, message passing calls do not modify the value of the > error code field of status variables. This field may be updated only > by the functions in Section 3.7.5 which return multiple statuses. The > field is updated if and only if such function returns with an error > code of MPI ERR IN STATUS. > > Rationale. The error field in status is not needed for calls that > return only one status, such as MPI WAIT, since that would only > duplicate the information returned by the function itself. The current > design avoids the additional overhead of setting it, in such cases. > The field is needed for calls that return multiple statuses, since > each request may have had a different failure. (End of rationale.)" > > First, the sentence start with "In general" which is not a limiting > statement, it absolutely doesn't state that the field doesn't have to > be set. Second, the reason cited in the rationale is completely fake. > We're talking about one store instruction, while the simple usage of > the status will generate a cache miss. > > On the other side, a simple grep in the ompi-tests shows that hundreds > of tests use this MPI_ERROR over the return value. If test writers > (which are supposed to know the standard quite well), do such things, > I wonder how can we expect that the users will never do it. > > george. > > On Jun 6, 2008, at 12:04 PM, Brian Barrett wrote: > > Since this is not the first or second time we've had the discussion in > > the group, perhaps a comment in the code would be a good idea :). > > > > Brian > > > > On Jun 6, 2008, at 9:58 AM, Jeff Squyres wrote: > >> George -- > >> > >> This is not correct. Note the comment that says to see MPI-1.2 > >> section 3.2.5 page 22 (I think it means MPI-1.1). It says: > >> > >> "In general, message passing calls do not modify the value of the > >> error code field of status variables. This field may be updated only > >> by the functions in Section 3.7.5 which return multiple statuses." > >> > >> So we should not be setting status.MPI_ERROR here; you should check > >> the return value from MPI_WAIT to get the error code. > >> > >> On Jun 6, 2008, at 11:53 AM, bosi...@osl.iu.edu wrote: > >>> Author: bosilca > >>> Date: 2008-06-06 11:53:17 EDT (Fri, 06 Jun 2008) > >>> New Revision: 18607 > >>> URL: https://svn.open-mpi.org/trac/ompi/changeset/18607 > >>> > >>> Log: > >>> Update the MPI_ERROR field as well. > >>> > >>> Text files modified: > >>> trunk/ompi/request/req_wait.c | 1 + > >>> 1 files changed, 1 insertions(+), 0 deletions(-) > >>> > >>> Modified: trunk/ompi/request/req_wait.c > >>> = > >>> = > >>> = > >>> = > >>> = > >>> = > >>> = > >>> = > >>> = > >>> = > >>> ==================================================================== > >>> --- trunk/ompi/request/req_wait.c (original) > >>> +++ trunk/ompi/request/req_wait.c 2008-06-06 11:53:17 EDT (Fri, 06 > >>> Jun 2008) > >>> @@ -50,6 +50,7 @@ > >>> /* See MPI-1.2, sec 3.2.5, p.22 */ > >>> status->MPI_TAG = req->req_status.MPI_TAG; > >>> status->MPI_SOURCE = req->req_status.MPI_SOURCE; > >>> + status->MPI_ERROR = req->req_status.MPI_ERROR; > >>> status->_count = req->req_status._count; > >>> status->_cancelled = req->req_status._cancelled; > >>> } > >>> _______________________________________________ > >>> svn-full mailing list > >>> svn-f...@open-mpi.org > >>> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full > >> > >> -- > >> Jeff Squyres > >> Cisco Systems > >> > >> _______________________________________________ > >> devel mailing list > >> de...@open-mpi.org > >> http://www.open-mpi.org/mailman/listinfo.cgi/devel > > > > -- > > Brian Barrett > > Open MPI developer > > http://www.open-mpi.org/ > > > > > > _______________________________________________ > > devel mailing list > > de...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/devel -- ---------------------------------------------------------------- Dipl.-Inf. Rainer Keller http://www.hlrs.de/people/keller HLRS Tel: ++49 (0)711-685 6 5858 Nobelstrasse 19 Fax: ++49 (0)711-685 6 5832 70550 Stuttgart email: kel...@hlrs.de Germany AIM/Skype:rusraink