mpiexec vs mpirun

selon mon peu de connaissance mpirun et mpiexec les deux sont lanceur. Est-ce que quelqu'un peut dire la différence exacte entre mpiexec et mpirun?

41
demandé sur Mateusz Piotrowski 2014-08-13 17:49:59

2 réponses

mpiexec est défini dans la norme MPI (bien, les versions récentes au moins) et je vous renvoie à ceux-ci (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, consultez la documentation de la ou des implémentations de votre choix.

Et oui, ils sont à la fois utilisé pour lancer des programmes MPI, de nos jours mpiexec est généralement préférable parce qu'il est standardisé.

42
répondu High Performance Mark 2014-08-13 14:40:05

je sais qu'on a répondu à la question, 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 regarda pour voir si il y a une différence entre mpirun et mpiexec. C'est ce que j'ai trouvé:

Description

Mpiexec est un programme de remplacement pour le script mpirun, qui fait partie de la mpich paquet. Il est utilisé pour initialiser un travail parallèle de dans le cadre d'un lot PBS ou d'un environnement interactif. Utilisations de Mpiexec tâche gestionnaire de bibliothèque de PBS pour lancer des copies de l'exécutable sur les noeuds dans une allocation PBS.

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

  • démarrer des tâches avec L'interface TM est beaucoup plus rapide que d'invoquer un rsh ou ssh séparé une fois pour chaque processus.
  • les ressources utilisées par les processus générés sont comptabilisées correctement avec mpiexec, et déclarées dans les journaux PBS, parce que tous les processus d'un travail parallèle restent sous le contrôle de PBS, contrairement à l'utilisation les scripts de démarrage tels que mpirun.
  • les tâches qui dépassent leurs limites assignées de temps CPU, de temps wallclock, d'utilisation de la mémoire, ou d'espace disque sont tué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 à appliquer une politique de sécurité. Si tous les travaux sont nécessaires pour démarrer en utilisant mpiexec et l'exécution PBS environnement, il n'est pas nécessaire d'activer l'accès rsh ou ssh aux noeuds de calcul dans le cluster.

Ref: https://www.osc.edu / ~djohnson / mpiexec/

16
répondu FranciscoD 2016-05-10 08:43:05