On Jan 5, 2009, at 5:01 PM, Maciej Kazulak wrote:

Interesting though. I thought in such a simple scenario shared memory would be used for IPC (or whatever's fastest) . But nope. Even with one process still it wants to use TCP/IP to communicate between mpirun and orted.

Correct -- we only have TCP enabled for MPI process <--> orted communication. There are several reasons why; the simplest is that this is our "out of band" channel and it is only used to setup and tear down the job. As such, we don't care that it's a little slower than other possible channels (such as sm). MPI traffic will use shmem, OpenFabrics-based networks, Myrinet, ...etc. But not MPI process <--> orted communication.

What's even more surprising to me it won't use loopback for that. Hence my maybe a little bit over-restrictive iptables rules were the problem. I allowed traffic from 127.0.0.1 to 127.0.0.1 on lo but not from <eth0_addr> to <eth0_addr> on eth0 and both processes ended up waiting for IO.

Can I somehow configure it to use something other than TCP/IP here? Or at least switch it to loopback?

I don't remember how it works in the v1.2 series offhand; I think it's different in the v1.3 series (where all MPI processes *only* talk to the local orted, vs. MPI processes making direct TCP connections back to mpirun and any other MPI process with which it needs to bootstrap other communication channels). I'm *guessing* that the MPI process <-- > orted communication either uses a named unix socket or TCP loopback. Ralph -- can you explain the details?

--
Jeff Squyres
Cisco Systems

Reply via email to