web-dev-qa-db-fra.com

mpiexec vs mpirun

Selon ma petite connaissance mpirun et mpiexec les deux sont lanceur. Quelqu'un peut-il faire la différence exacte entre mpiexec et mpirun?

48
DEV

mpiexec est défini dans la norme MPI (enfin, les versions récentes au moins) et je vous y réfère (votre moteur de recherche préféré les trouvera pour vous) pour plus de détails.

mpirun est une commande implémentée par de nombreuses implémentations MPI. Elle n'a cependant jamais été standardisée et il y a toujours eu des différences, souvent subtiles, entre les implémentations. Pour plus de détails, voir la documentation de la ou des implémentations de votre choix.

Et oui, ils sont tous deux utilisés pour lancer des programmes MPI, de nos jours mpiexec est généralement préférable car il est standardisé.

49

Je sais que la question a été répondue, mais je pense que la réponse n'est pas la meilleure. J'ai rencontré quelques problèmes sur le cluster ici avec mpirun et j'ai cherché à voir s'il y avait une différence entre mpirun et mpiexec. Voici ce que j'ai trouvé:

La description

Mpiexec est un programme de remplacement pour le script mpirun, qui fait partie du package mpich. Il est utilisé pour initialiser un travail parallèle à partir d'un lot PBS ou d'un environnement interactif. Mpiexec utilise la bibliothèque du gestionnaire de tâches de PBS pour générer des copies de l'exécutable sur les nœuds dans une allocation PBS.

Raisons d'utiliser mpiexec plutôt qu'un script (mpirun) ou un démon externe (mpd):

  • Le démarrage des tâches avec l'interface TM est beaucoup plus rapide que d'appeler une fois rsh ou ssh distinct pour chaque processus.
  • Les ressources utilisées par les processus générés sont correctement comptabilisées avec mpiexec et signalées dans les journaux PBS, car tous les processus d'un travail parallèle restent sous le contrôle de PBS, contrairement à l'utilisation de scripts de démarrage tels que mpirun.
  • Les tâches qui dépassent les limites attribuées de temps processeur, d'horloge murale, d'utilisation de la mémoire ou d'espace disque sont supprimées proprement par PBS. Il est assez difficile pour les processus d'échapper au contrôle du gestionnaire de ressources lors de l'utilisation de mpiexec.
  • Vous pouvez utiliser mpiexec pour appliquer une politique de sécurité. Si tous les travaux doivent être démarrés à l'aide de mpiexec et de l'environnement d'exécution PBS, il n'est pas nécessaire d'activer l'accès rsh ou ssh aux nœuds de calcul du cluster.

Réf: https://www.osc.edu/~djohnson/mpiexec/

20
FranciscoD