On Fri, 19 Mar 2004, Neil Storer wrote:
> From this is it obvious that using the same buffer for send and receive
> is exceedingly dangerous. The program is non-deterministic in that the
> state of the data in the shared buffer cannot be relied upon. The data
> being sent can be overwritten by the receive part way through and the
> receiving node will consequently get the wrong data.
Absolutely correct. MPI says that you must use non-overlapping buffers.
If it worked in 6.5.9, you were likely getting lucky that the race
condition wasn't tripped. Although there's a million reasons why this
could be happening, we improved efficiency in the 7.0 series, which might
account for the change -- things run a little faster so that the receive
buffer is filled before the sending buffer is fully sent.
--
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/
|