But that is what surprises me. Indeed the scenario I described can be
implemented using two-sided communication, but it seems not to be possible
when using one sided communication.

Additionally the MPI 2.2. standard describes on page 356 the matching rules
for post and start, complete and wait and there it says :
"MPI_WIN_COMPLETE(win)
initiate a nonblocking send with tag tag1 to each process in the group of
the preceding start call. No need to wait for the completion of these
sends."
The wording 'nonblocking send' startles me somehow !?

toon


On Thu, Feb 24, 2011 at 2:05 PM, James Dinan <di...@mcs.anl.gov> wrote:

> Hi Toon,
>
> Can you use non-blocking send/recv?  It sounds like this will give you the
> completion semantics you want.
>
> Best,
>  ~Jim.
>
>
> On 2/24/11 6:07 AM, Toon Knapen wrote:
>
>> In that case, I have a small question concerning design:
>> Suppose task-based parallellism where one node (master) distributes
>> work/tasks to 2 other nodes (slaves) by means of an MPI_Put. The master
>> allocates 2 buffers locally in which it will store all necessary data
>> that is needed by the slave to perform the task. So I do an MPI_Put on
>> each of my 2 buffers to send each buffer to a specific slave. Now I need
>> to know when I can reuse one of my buffers to already store the next
>> task (that I will MPI_Put later on). The only way to know this is call
>> MPI_Complete. But since this is blocking and if this buffer is not ready
>> to be reused yet, I can neither verify if the other buffer is already
>> available to me again (in the same thread).
>> I would very much appreciate input on how to solve such issue !
>> thanks in advance,
>> toon
>> On Tue, Feb 22, 2011 at 7:21 PM, Barrett, Brian W <bwba...@sandia.gov
>> <mailto:bwba...@sandia.gov>> wrote:
>>
>>    On Feb 18, 2011, at 8:59 AM, Toon Knapen wrote:
>>
>>     > (Probably this issue has been discussed at length before but
>>    unfortunately I did not find any threads (on this site or anywhere
>>    else) on this topic, if you are able to provide me with links to
>>    earlier discussions on this topic, please do not hesitate)
>>     >
>>     > Is there an alternative to MPI_Win_complete that does not
>>    'enforce completion of preceding RMS calls at the origin' (as said
>>    on pag 353 of the mpi-2.2 standard) ?
>>     >
>>     > I would like to know if I can reuse the buffer I gave to MPI_Put
>>    but without blocking on it, if the MPI lib is still using it, I want
>>    to be able to continue (and use another buffer).
>>
>>
>>    There is not.   MPI_Win_complete is the only way to finish a
>>    MPI_Win_start epoch, and is always blocking until local completion
>>    of all messages started during the epoch.
>>
>>    Brian
>>
>>    --
>>      Brian W. Barrett
>>      Dept. 1423: Scalable System Software
>>      Sandia National Laboratories
>>
>>
>>
>>    _______________________________________________
>>    users mailing list
>>    us...@open-mpi.org <mailto:us...@open-mpi.org>
>>
>>    http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>>
>>
>>
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

Reply via email to