Newsgroups: comp.parallel.mpi
From: gropp@godzilla.mcs.anl.gov (William Gropp)
Subject: Re: MPI_Ibsend()
Organization: Math and Computer Science, Argonne National Laboratory
Date: Sun, 14 Jan 1996 21:0:21 GMT
Message-ID: <82165322111136@godzilla.mcs.anl.gov>

MPI_Ibsend's existence is MOSTLY due to completeness; if it wasn't there, 
it would have to be explained.  This is a weak but not completely empty
arguement.

It is also possible to implement it as follows (I don't know if anyone
does this, but they could):
   Leave the data in the users buffer; initiate the send.  Assuming a
   rendevous protocol, one of two things happen:
   (1) User calls wait/test before send completes - transfer data to 
       attached buffer.  Ibsend request then completes, with the data
       transfered later.
   (2) Receiver indicates its ready for message - data transfered directly
       from original user buffer.  A test of the request will then 
       complete immediately.

Case (2) saves a copy, without changing the guarentee that the send will 
"complete" without requiring the message to be received.  For MPICH, this
is on the list of things to do.  Note that the buffered send routines do
not REQUIRE that the users buffer space be used, only that the completion
semantics act as if it had.
Bill

