Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] send and receive buffer the same on root
From: Tom Rosmond (rosmond_at_[hidden])
Date: 2010-09-16 12:01:24


I am working with a Fortran 90 code with many MPI calls like this:

call mpi_gatherv(x,nsize(rank+1),
     mpi_real,x,nsize,nstep,mpi_real,root,mpi_comm_world,mstat)

'x' is allocated on root to be large enough to hold the results of the
gather, other arrays and parameters are defined correctly, and the code
runs as it should. However, I am concerned that having the same send
and receive buffer on root is a violation of the MPI standard. Am I
correct? I am aware of the MPI_IN_PLACE feature that can be used in
this situation, by defining it as the send buffer at root.

The fact that the code as written seems to work on most system we run on
(some with OpenMPI, some with proprietary MPI's) indicates that in spite
of the standard, implementations allow it. Is this correct, or are we
just lucky.

T. Rosmond