Mpiexec.hydra - how to start the MPI process on machines where hydra_pmi_proxy locations are different?

I am trying to run a simple MPI program using MPICH through a cluster of two machines. However, one uses Fedora 17, and the other works with Debian Squeeze - not necessarily a problem, but the problem is that the two distributions put their mpi-exec in different directories:

When I run from host1 the following:

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

it does not work with the following error

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

It looks like hydra_pmi_proxy installed in /usr/lib/mpich2/bin on a Fedora computer, but in /usr/bin on a Debian machine. I assume that when I start the process from host1 via ssh, it expects to find hydra_pmi_proxy in the same place on host2.

The program works fine on both machines, if I just run it locally on this node - I have a problem when trying to run it on both.

I searched the MPICH documentation to redefine the path to the remote path to hydra_pmi_proxy , but to no avail.

Can I do it somehow? I thought one of the advantages of MPICH was that it could easily deal with heterogeneous hosts ....

Any ideas would be most appreciated!

+6
source share
3 answers

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

Just solved this problem!

Thanks!

+2
source

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

0
source

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

You have the /mirror directory, but you need to add the /usr directory to /etc/exports :

 /usr *(rw,sync,no_subtree_check) 

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

 master-ip/usr /usr nfs defaults 0 0 

Save and run mount -a .

After running df -h , to see the mounted directory from master to slave / client.

0
source

All Articles