On Jan 24, 2012, at 5:34 PM, devendra rai wrote:

> I am trying to find out how many separate connections are opened by MPI as 
> messages are sent. Basically, I have threaded-MPI calls to a bunch of 
> different MPI processes (who, in turn have threaded MPI calls). 
> 
> The point is, with every thread added, are new ports opened (even if the 
> sender-receiver pairs already have a connection between them)?

In Open MPI: no.  The underlying connections are independent of how many 
threads you have.

> Is there any way to find out? I went through MPI APIs, and the closest thing 
> I found was related to cartographic information. This is not sufficient, 
> since this only tells me the logical connections (or does it)?

MPI does not have a user-level concept of a connection.  You send a message, a 
miracle occurs, and the message is received on the other side.  MPI doesn't say 
anything about how it got there (e.g., it may have even been routed through 
some other process).

> Reading Open MPI FAQ, I thought adding "--mca btl self,sm,tcp --mca 
> btl_base_verbose 30 -display-map" to mpirun would help. But I am not getting 
> what I need. Basically, I want to know how many ports each process is 
> accessing (reading as well as writing). 

For Open MPI's TCP implementation, it's basically one TCP socket per peer (plus 
a few other utility fd's).  But TCP sockets are only opened lazily, meaning 
that we won't open the socket until you actually send to a peer.

-- 
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