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/


Reply via email to