Question

Je suis en train de mettre en place un cluster MPI. Mais j'ai le problème que le nombre de processeurs ajoutés au fichier mpd.conf est pas correctement utilisé. J'ai trois serveurs Ubuntu. opteron avec 48 Cores calc1 avec 8 Cores calc2 à 8 noyaux.

Mon mpd.hosts ressemble:
opteron:46
calc1:6
calc2:6

Après le démarrage (mpdboot -n 3 -f mpd.hosts) le système est en marche. mpdtrace -.> tous les trois d'entre eux sont énumérés

Mais l'exécution d'un Programm comme « mpiexec -n 58 raxmlHPC-MPI ... » provoque que calc1 et calc2 Familiarisez beaucoup d'emplois et opteron arrive à peu en même temps. Qu'est-ce que je fais mal?

Cordialement

Bjoern

Était-ce utile?

La solution

J'ai trouvé une solution de contournement. J'ai utilisé les paramètres supplémentaires « -machinefile /path/to/mpd.hosts » pour la commande mpiexec. Et maintenant, tous les noeuds sont en cours d'exécution correctement. Un problème que je suis arrivé est que je suis message d'erreur:

... MPIU_SHMW_Seg_create_attach_templ (671): ouvert a échoué - Aucun fichier ou répertoire ...

Pour résoudre ce problème, je devais régler la MPICH_NO_LOCAL=1 variable d'environnement

Autres conseils

Comme vous avez compris, vous devez passer le machinefile à la fois mpdboot et mpiexec pour utilisation d'un processus par hôte compte. La question « ouvert a échoué » est un bug connu dans MPD, le gestionnaire de processus que vous utilisez. Notez que la solution de contournement de MPICH_NO_LOCAL=1 fonctionnera, mais entraînera probablement une grande pénalité de performance pour la communication intranœud.

Vous utilisez clairement MPICH2 (ou un dérivé MPICH2), mais il est clair pas quelle version que vous utilisez. Si vous le pouvez, je recommande fortement la mise à niveau soit MPICH2 1.2.1p1 ou (mieux encore) 1.3.1. Ces deux versions comprennent un gestionnaire de processus plus récent appelé hydra qui est beaucoup plus rapide et plus robuste. En 1.3.1, hydra est le gestionnaire de processus par défaut. Il ne nécessite pas une phase de mpdboot, et il prend en charge une variable d'environnement $HYDRA_HOST_FILE afin que vous ne devez pas spécifier le fichier de la machine sur chaque mpiexec.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top