mpiexec.hydra - comment faire pour exécuter les processus MPI sur les machines où les emplacements de hydra_pmi_proxy sont différentes?
Je suis en train de lancer un simple MPI programme à l'aide de MPICH sur un cluster de deux machines. Cependant, l'un est en cours d'exécution Fedora 17 et l'autre est en cours d'exécution Debian Squeeze - pas nécessairement un problème, mais le problème est que les deux distributions de mettre leur mpi execs dans des répertoires différents:
Quand je lance la suite de host1:
mpiexec -hosts host2 -np 1 -wdir /home/chris/src/mpi/./mpitest
il échoue avec l'erreur suivante
bash: /usr/lib/mpich2/bin/hydra_pmi_proxy: No such file or directory
Ce qui semble être à cause hydra_pmi_proxy
est installé dans /usr/lib/mpich2/bin
sur la Fedora machine, mais dans /usr/bin
sur la machine Debian. Je suppose que quand j'ai lancer le processus de host1 via ssh, il s'attend à trouver hydra_pmi_proxy à la même place sur host2.
Le programme s'exécute sur ok sur les deux machines si j'ai juste l'exécuter localement sur ce nœud - je seulement obtenir un problème lorsque vous essayez de l'exécuter sur les deux.
J'ai cherché sur le MPICH de la documentation pour un moyen de surcharger de chemin d'accès à distance à hydra_pmi_proxy
, mais en vain.
Puis-je faire cela en quelque sorte? Je pensais que l'un des avantages de MPICH est qu'il peut facilement gérer hétérogène hôtes....
De toutes les suggestions seraient appréciés!
- Qu'en est simplement l'ajout d'un lien symbolique vers
hydra_pmi_proxy
sous/usr/lib/mpich2/bin
sur Debian comme un rapide hack? - Ce genre de travail (je suis d'avoir des erreurs relatives à des problèmes de communication à maintenant), mais elle semble un peu sale!
- En regardant l'Hydra source, il semble que l'interface est responsable de déterminer le chemin d'accès à
hydra_pmi_proxy
(enHYD_uii_mpx_get_parameters
), et ce chemin est ensuite réutilisés sur tous les nœuds. Mais je ne suis pas familier avec le fonctionnement interne de l'Hydre, donc j'ai peut-être tort. Je pense essayer la présentation d'un billet.
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à résoudre ce problème, installez pas mpich hydra et le terminal (par exemple apt-get install MPICH2 ou hydra). Mais au lieu de cela, j'ai téléchargé le code source: http://www.mpich.org/downloads/ (la version stable).
Puis j'ai exécuté la commande suivante sur la machine Maître et de l'esclave: export PATH = /home /vous /mpich: $ PATH (Sur mon ordinateur, j'ai installé sur mon mpich répertoire).
Viens de résoudre ce problème!
Merci!
Cela peut être résolu par l'installation de MPICH par l'intermédiaire de son code source et de monter le répertoire d'installation dans le nœud dans le même répertoire que le répertoire sur le serveur. ensuite, utilisez export PATH = /home/vous/mpich-installation-répertoire/bin: $PATH uniquement sur le serveur.
Ce problème peut être résolu dans la configuration de NFS avec:
exportfs -var
(maître de la machine).Vous avez votre
/mirror
répertoire, mais il est nécessaire d'ajouter le répertoire/usr
dans/etc/exports
:Dans la machine client, modifier
/etc/fstab
et d'ajouter:Enregistrez et exécutez la commande
mount -a
.Après exécution
df -h
pour voir le répertoire monté par le maître de l'esclave/client.