Subject: MPI_EXCHANGE?

From: [email-masked] (David Walker)
Date: Fri, 23 Apr 1993 10:05:47 -0400

Thanks to Jim Cownie and Rik Littlefield for explaining the reason for
having mpi_commit_buffer.

Was there ever a vote on whether there should be a routine mpi_exchange
for exchanging data between two processes? I think it would be a useful
addition to the point-to-point routines. It would look something like this:
	
	mpi_exchange ( send_bdo_handle,
		       recv_bdo_handle,
		       other_proc_handle,
		       tag,
		       context )

where "bdo"="buffer descriptor object". I think a blocking version would be 
sufficient, though a nonblocking version is conceivable in which the exchange
is initiated and we later check if its completed, or block until completion.

mpi_exchange will help users avoid writing unsafe programs.

David

---

From: Adam Greenberg <[email-masked]>
Date: Fri, 23 Apr 93 10:17:26 EDT

Date: Fri, 23 Apr 1993 10:05:47 -0400
   From: [email-masked] (David Walker)

   David

We have been dancing around the issue of bidirectional communciation for a
while.  Recall that we also are flirting with the notion of a cshift function.
A generic send_and_receive function provides all of this functionality.

MPI_send_and_receive( dest_proc, stag, scontext, sbdo,
		      src_prc, rtag, rcontext, rbdo )

Looking at this, I suspect that scontext and rcontext would have to be the
same.

moose