Hi all,
First of all let me make it perfectly clear that I'm a complete
beginner as far as MPI is concerned, so this may well be a trivial
problem!
I've tried to set up Open MPI to use SSH to communicate between nodes
on a heterogeneous cluster. I've set up passwordless SSH and it seems
to be working fine. For example by hand I can do:
ssh nodename uptime
and it returns the appropriate information for each node.
I then tried running a non-MPI program on all the nodes at the same
time:
mpirun -np 10 --hostfile hostfile uptime
Where hostfile is a list of the 10 cluster node names with slots=1
after each one i.e
nodename1 slots=1
nodename2 slots=2
etc...
Nothing happens! The process just seems to hang. If I interrupt the
process with Ctrl-C I get:
"
mpirun: killing job...
[gamma2.phyastcl.dur.ac.uk:18124] [0,0,0] ORTE_ERROR_LOG: Timeout in
file base/pls_base_orted_cmds.c at line 275
[gamma2.phyastcl.dur.ac.uk:18124] [0,0,0] ORTE_ERROR_LOG: Timeout in
file pls_rsh_module.c at line 1166
------------------------------------------------------------------------
--
WARNING: mpirun has exited before it received notification that all
started processes had terminated. You should double check and ensure
that there are no runaway processes still executing.
------------------------------------------------------------------------
--
"
If, instead of using the hostfile, I specify on the command line the
host from which I'm running mpirun, e.g.:
mpirun -np 1 --host nodename uptime
then it works (i.e. if it doesn't need to communicate with other
nodes). Do I need to tell Open MPI it should be using SSH to
communicate? If so, how do I do this? To be honest I think it's
trying to do so, because before I set up passwordless SSH it
challenged me for lots of passwords.
I'm running Open MPI 1.2.5 installed with Scientific Linux 5.2. Let
me reiterate, it's very likely that I've done something stupid, so
all suggestions are welcome.
Cheers,
Hugh