On Jun 18, 2012, at 11:45 AM, Harald Servat wrote:

>> 2. The two machines need to be able to open TCP connections to each other on 
>> random ports.
> 
> That will be harder. Do need both machines to open TCP connections to
> random ports, or just one? 


Both.

To be specific: there's two layers that open TCP sockets to each other.  The 
run-time system (i.e., mpirun and its friends) opens control channels between 
nodes.  There *is* a predictable pattern upon which nodes open TCP sockets to 
which other nodes, but you shouldn't count on it (because we change it over 
time).

Then the MPI layer opens TCP sockets for MPI messaging.  The pattern of who 
opens TCP sockets to whom depends on the app, because OMPI opens sockets upon 
the first send (and that may be racy, depending on your application).

So it's best not to assume and just allow random TCP sockets from any machines 
that will be involved in the computation.

BTW, there have been a few discussions here in the past about how to configure 
iptables properly to allow this.  No one has quite gotten it right; our advice 
has always just been to disable iptables.  However, if you come up with a 
configuration solution that allows it to work properly -- and I'm *sure* that 
such a configuration exists; I'm just betting that no one with the proper 
willpower / experience has set their mind to figuring it out -- please let us 
know what it is so that we can add it to the FAQ.

Thanks!

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