11
votes

Pourquoi tous mes processus Open MPI ont-ils un rang 0?

J'écris un programme parallèle à l'aide de Ouvrir MPI . Je couronne Snow Leopard 10.6.4, et j'ai installé Ouvrir MPI via le homebrew Gestionnaire de paquets.

Quand j'exécute mon programme en utilisant mpirun -np 8 ./test , chaque processus rapporte qu'il a le rang 0 et estime que le nombre total de processus doit être 1 et 8 lignes de Rang de processus: 0, Total Processes: 1 Sortez-vous à la console.

Je sais que ce n'est pas un problème de code, car exactement le même code compilera et fonctionnera comme prévu sur certaines machines Ubuntu dans le laboratoire informatique de mon collège. J'ai vérifié le suivi bogue d'HomeBrew et personne n'a signalé un problème avec le package Open MPI. Je suis à perte.


4 commentaires

Est-ce que cela se produit si vous construisez à la source vous-même, ou utilisez-le sur OS X (Snow Leopard) fournis à Open-MPI?


Désinstallation d'Open-MPI de HomeBrew a provoqué au travail Open-MPI proposé par OS X. Hmm.


C'est presque toujours le résultat de la compilation avec une distribution MPI et (accidentellement ou autre) l'exécute avec le Mpirun d'un autre. Assurez-vous que tous vos chemins et vos chemins de recherche de la bibliothèque dynamique n'ont que la seule distribution en eux.


Dupliqué possible de MPI_Rank Retour Le même numéro de processus pour tous les processus


4 Réponses :


7
votes

Vérifiez quel Mpirun vous invoque. Le Mpirun en cours d'exécution lance 8 cas indépendants du binaire. Donc, chaque instance est une application MPI avec une taille d'univers de 1 et rang 0.

En outre, sauf si vous envisagez d'exécuter le code final sur un cluster de cases OS X, je vous recommande vivement d'installer une version Linux dans une machine virtuelle, comme VirtualBox, de tester et de développer ces codes.


0 commentaires

2
votes

J'ai eu le même problème avec OpenMPI en C sous Linux. En utilisant MPICH2 à la place, le problème a été corrigé (mais n'oubliez pas d'exécuter MPI_Finalize () à la fin ou qu'elle devient étrange.)


0 commentaires

6
votes

Désinstallez complètement la mise en œuvre du MPI précédente.

Dans mon cas, j'ai installé MPICH2 en premier, puis le désinstallé et changé en openmpi. Ensuite, même cas, tous les grades de processus étaient 0. Ce que j'ai fait pour résoudre ce problème est: Désinstaller MPICH2 Complètement de mon système (j'utilise Ubuntu / Debian Linux). P>

# apt-get remove mpich2
# apt-get autoremove


0 commentaires

4
votes

Aujourd'hui, j'ai rencontré le même problème comme toi. Et enfin j'ai eu la solution.

voir https://wiki.mpich.org/mpich/index .php / fréquemment_asked_Questtions # Q: _ALL_MY_PROCESSES_GET_RANK_0

Simplement parler, la réponse indique que MPI a besoin de PMI appropriée pour informer les processus de leurs rangs et autre chose. Par conséquent, nous devons utiliser la correspondance MPIRN / MPIEXEC pour exécuter le programme MPI.

Je suppose que votre problème est lié à l'inadéquation entre le compilateur de programme MPI et l'outil MPIRN. Alors essayez de désinstaller tout et installez MPICH / OPENMPI (assurez-vous simplement d'installer l'un d'entre eux).


0 commentaires