Thanks Jeff,

I was looking more into this scenario :

if (rank ==0){
        MPI_Send(&tmp,2048, MPI_INT, 1,123, myComm);
        MPI_Recv(&tmp2,2048, MPI_INT, 1,321,
                 MPI_COMM_WORLD, MPI_STATUS_IGNORE);
  }
  if (rank == 1){
        MPI_Send(&tmp1,2048, MPI_INT, 0,321, MPI_COMM_WORLD);
        MPI_Recv(&tmp3,2048, MPI_INT, 0,123, myComm, MPI_STATUS_IGNORE);

  }

This scenario in a normal case will lead to a deadlock. But I was wondering
whether multiple communicators will solve this issue, but apparently it
doesn't.
I tried doing sends and receives on different threads, but that did not
help too. So  I was wondering if there is a way to handle this in MPI
without using non-blocking sends and receives.

Thanks
Ramesh


On Fri, Jun 15, 2012 at 3:40 AM, Jeff Squyres <jsquy...@cisco.com> wrote:

> On Jun 14, 2012, at 8:43 PM, Ramesh Vinayagam wrote:
>
> > I was wondering is there a way to communicate between two processes with
> two different communicators simultaneously in MPI? Like having two channels
> for communication?
>
> I'm not quite sure what you're asking.  Are you asking if it's possible to
> have 2 processes share 2 entirely different communicators (and use both of
> them for communication)?
>
> If so, yes.  Any set of processes can have any number of shared
> communicators.  For example:
>
>   MPI_Comm foo;
>   MPI_Comm_dup(MPI_COMM_WORLD, &foo);
>
> Now foo will be a duplicate of MPI_COMM_WORLD, but with a different
> communication context (so that messages sent on MCW won't be received on
> foo, and vice versa).  Hence, you can send a message on MCW to any peer in
> that communicator, but you can also send a message on foo to any peer in
> that communicator.
>
> Note, however, that sending multiple messages on different communicators
> to the same peer doesn't (usually) expand your available bandwidth.  Think
> of communicators (and tags, too), as message matching mechanisms rather
> than bandwidth-multiplying mechanisms.  For example, you might send control
> messages on "foo", but send data messages on MPI_COMM_WORLD.
>
> Hope that helps.
>
> --
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

Reply via email to