mpiexec.hydra - how to run MPI process on machines where locations of hydra_pmi_proxy are different?

ccbunney picture ccbunney · Nov 14, 2012 · Viewed 12.7k times · Source

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!

Answer

Iago Lira picture Iago Lira · Oct 27, 2013

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!