Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Greg Watson (gwatson_at_[hidden])
Date: 2005-09-19 13:42:40


Yes, I found a bug in my code that was causing the problem. I was
setting the first argument of MPI_Testsome() to the number of
outstanding sends, rather than the total number of sends. It seems to
be working now, though I notice that MPI_Testsome() always returns 1
for count.

Thanks for your help,

Greg

On Sep 19, 2005, at 3:52 AM, George Bosilca wrote:

> MPI_Testsome return MPI_UNDEFINED only when in the set of requests
> there
> are no more active requests. Basically at this point the array of
> requests
> (in your example) should contain only MPI_REQUEST_NULL. I check the
> different possibilities inside, and I'm pretty confident that we are
> correct from the MPI standard point of view. I run your test
> example and
> the behaviour was correct. Moreover, it never miss one request.
>
> Can you forward me your exact example to see what was wrong inside ?
>
> Thanks,
> george.
>
>
> On Mon, 19 Sep 2005, George Bosilca wrote:
>
>
>> Guys I'll take care of that. When I was working on the examples
>> for the
>> tutorial here at Euro PVM I notice a similar problem with
>> MPI_Waitsome.
>>
>> george.
>>
>> On Sun, 18 Sep 2005, Jeff Squyres wrote:
>>
>>
>>> Yes -- Tim, can you check? Sounds like something in the request
>>> progress is not occurring correctly.
>>>
>>> Thanks!
>>>
>>>
>>> On Sep 18, 2005, at 5:59 PM, Greg Watson wrote:
>>>
>>>
>>>> Jeff,
>>>>
>>>> Yes, count is 2, but completed returns 1 on the first call and
>>>> -32766
>>>> on the second call. Sounds like this may be a bug?
>>>>
>>>> Greg
>>>>
>>>> On Sep 17, 2005, at 8:11 AM, Jeff Squyres wrote:
>>>>
>>>>
>>>>> (composing this in an airport on Saturday; may not actually be
>>>>> sent
>>>>> until Monday or so)
>>>>>
>>>>> -32766 is Open MPI's value for MPI_UNDEFINED. This is what is
>>>>> returned
>>>>> when there are no active requests in the array that is passed to
>>>>> MPI_TESTSOME (see MPI-1.1:.
>>>>>
>>>>> Just to verify that this behavior isn't a bug, can you confirm
>>>>> some
>>>>> things:
>>>>>
>>>>> - is count > 1?
>>>>>
>>>>> - if more than one request finished in that single call to
>>>>> MPI_TESTSOME
>>>>> where completed was returned with a value of 1 (e.g., multiple
>>>>> requests
>>>>> in your array turned into MPI_REQUEST_NULL), then this is a bug --
>>>>> i.e., completed should return an accurate value.
>>>>>
>>>>>
>>>>>
>>>>> On Sep 16, 2005, at 8:45 PM, Greg Watson wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Just for a change, I don't have a build problem!
>>>>>>
>>>>>> However, I have a question about the MPI_Testsome() call. I'm
>>>>>> using
>>>>>> MPI_Testsome() to check the completion status of a number of
>>>>>> outstanding ISend() requests. I'm doing something like this:
>>>>>>
>>>>>> int outstanding;
>>>>>>
>>>>>> main()
>>>>>> {
>>>>>> tids = (int *)malloc(sizeof(int) * count);
>>>>>> stats = (MPI_Status *)malloc(sizeof(MPI_Status) * count);
>>>>>> reqs = (MPI_Request *) malloc(sizeof(MPI_Request) * count)
>>>>>>
>>>>>> do_sends();
>>>>>>
>>>>>> outstanding = count;
>>>>>>
>>>>>> while (outstanding > 0)
>>>>>> check_completed();
>>>>>> }
>>>>>>
>>>>>> do_sends()
>>>>>> {
>>>>>> for (i = 0; i < count; i++)
>>>>>> MPI_ISend(buf, len, MPI_CHAR, i, 0, MPI_COMM_WORLD,
>>>>>> &reqs
>>>>>> [i]);
>>>>>> }
>>>>>>
>>>>>> check_completed()
>>>>>> {
>>>>>> int completed;
>>>>>>
>>>>>> if (MPI_Testsome(count, reqs, &completed, tids, stats) !=
>>>>>> MPI_SUCCESS) {
>>>>>> printf("error in testsome\n");
>>>>>> exit(1);
>>>>>> }
>>>>>> outstanding -= completed;
>>>>>> }
>>>>>>
>>>>>> The thing is, MPI_Testsome() returns with completed = 1 the first
>>>>>> time I call it, then completed = -32766 the second time I call
>>>>>> it. It
>>>>>> always returns MPI_SUCCESS though.
>>>>>>
>>>>>> Does anyone know what's going on? Am I doing something dumb?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Greg
>>>>>> _______________________________________________
>>>>>> devel mailing list
>>>>>> devel_at_[hidden]
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> {+} Jeff Squyres
>>>>> {+} The Open MPI Project
>>>>> {+} http://www.open-mpi.org/
>>>>>
>>>>> _______________________________________________
>>>>> devel mailing list
>>>>> devel_at_[hidden]
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> devel mailing list
>>>> devel_at_[hidden]
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>>>
>>>>
>>>
>>>
>>>
>>
>> "We must accept finite disappointment, but we must never lose
>> infinite
>> hope."
>> Martin Luther King
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>>
>
> "We must accept finite disappointment, but we must never lose infinite
> hope."
> Martin Luther King
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>