6

I am trying to run a simple MPI program using MPICH over a cluster of two machines. However, one is running Fedora 17 and the other is running Debian Squeeze - not necessarily a problem, but the issue is that the two distros put their mpi execs in different directories:

When I run the following from host1:

mpiexec -hosts host2 -np 1 -wdir /home/chris/src/mpi/ ./mpitest

it fails with the following error

bash: /usr/lib/mpich2/bin/hydra_pmi_proxy: No such file or directory

This seems to be because hydra_pmi_proxy is installed in /usr/lib/mpich2/bin on the Fedora machine but in /usr/bin on the Debian machine. I assume that when I spawn the process from host1 via ssh, it expects to find hydra_pmi_proxy in the same place on host2.

The program runs ok on both machines if I just run it locally on that node - I only get a problem when trying to run it on both.

I have searched the MPICH documentation for a way to override to remote path to hydra_pmi_proxy, but to no avail.

Can I do this somehow? I thought one of the advantages of MPICH was that it can easily handle hetrogeneous hosts....

Any insights would be most appreciated!

gsamaras
  • 71,951
  • 46
  • 188
  • 305
ccbunney
  • 2,282
  • 4
  • 26
  • 42
  • 1
    What about just adding a symlink to `hydra_pmi_proxy` under `/usr/lib/mpich2/bin` on Debian as a quick hack? – Greg Inozemtsev Nov 14 '12 at 21:59
  • That sort of worked (I am getting errors pertaining to communication issues now), but seems a bit dirty! – ccbunney Nov 19 '12 at 11:40
  • 1
    Looking at the Hydra source, it seems that the frontend is responsible for figuring out the path to `hydra_pmi_proxy` (in `HYD_uii_mpx_get_parameters`), and this path is then reused across all nodes. But I'm not that familiar with the inner workings of Hydra, so I could be wrong. I guess try [submitting a ticket](https://trac.mcs.anl.gov/projects/mpich2/). – Greg Inozemtsev Nov 19 '12 at 17:37

3 Answers3

2

I managed to solve this problem not installing mpich hydra and the terminal (eg apt-get install MPICH2 or hydra). But instead I downloaded the source code: http://www.mpich.org/downloads/ (being the stable version). Then I ran the following command on the machines Master and slave: export PATH = / home / you / mpich: $ PATH (On my computer I installed on my mpich directory).

Just solved this problem!

Thanks!

Iago Lira
  • 21
  • 2
0

This can be solved by installing MPICH via its source code and mount the installation directory in the node in the same directory as the directory on server. then use export PATH = /home/you/mpich-installation-directory/bin: $PATH only on server.

0

This problem can be solved in NFS configuration with: exportfs -var (in master machine).

You have your /mirror directory, but it is necessary to add the directory /usr in /etc/exports:

/usr *(rw,sync,no_subtree_check)

In the client machine, edit /etc/fstab and add:

master-ip/usr   /usr nfs defaults 0 0

Save and run the command mount -a.

After run df -h to see the mounted directory from master in slave/client.

Martin Tournoij
  • 26,737
  • 24
  • 105
  • 146
Deam
  • 1
  • 1