Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI devel] [OMPI svn-full] svn:open-mpi r18607
From: George Bosilca (bosilca_at_[hidden])
Date: 2008-06-09 12:25:43


On Jun 9, 2008, at 11:50 AM, Jeff Squyres wrote:

> Please search through the archives of this list; as Brian mentioned,
> this topic has come up several times before. It's fairly boring to
> keep repeating the same arguments; we have lots of *new* things to
> argue about these days. ;-)

Unfortunately, I'm unable to find any trace of such discussion on the
mailing lists (I checked users and devel). If someone can pinpoint me
to the discussion thread I'll gladly read it.

I completely agree that we should follow the standard to the greatest
possible extend, but then at least we should have our test codes
following the same guidelines. It doesn't means I volunteer for
anything ...

   george.

>
>
>
> On Jun 9, 2008, at 10:44 AM, George Bosilca wrote:
>
>> Rainer,
>>
>> The snippet from the MPICH2 is irrelevant to the current discussion.
>> It only concern set empty status. A quick grep in the MPICH2 source
>> code (find . -name "*.[ch]" -exec grep -Hn MPI_ERROR {} \;) shows
>> that they ALWAYS set the MPI_ERROR field in the status if they
>> detect something wrong.
>>
>> george.
>>
>> On Jun 9, 2008, at 4:17 AM, Rainer Keller wrote:
>>
>>> 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, bosilca_at_[hidden] 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-full_at_[hidden]
>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full
>>>>>>
>>>>>> --
>>>>>> Jeff Squyres
>>>>>> Cisco Systems
>>>>>>
>>>>>> _______________________________________________
>>>>>> devel mailing list
>>>>>> devel_at_[hidden]
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>>
>>>>> --
>>>>> Brian Barrett
>>>>> Open MPI developer
>>>>> http://www.open-mpi.org/
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> devel_at_[hidden]
>>>>> 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: keller_at_[hidden]
>>> Germany AIM/Skype:rusraink
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>
> --
> Jeff Squyres
> Cisco Systems
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel



  • application/pkcs7-signature attachment: smime.p7s