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?
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.
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/