2016-05-22 6 views
7

Ich habe über 3 Dinge verwirrt: mpirun, mpiexec und mpiexec.hydraWas ist der Unterschied und die Beziehung zwischen mpirun, mpiexec und mpiexec.hydra?

Auf meinem Cluster, alle von ihnen existieren, und alle von ihnen gehören zu Intel.

Was ist der Unterschied und die Beziehung zwischen ihnen? Vor allem, was in aller Welt ist mpiexec.hydra? Warum gibt es einen Punkt zwischen mpiexec und hydra, was bedeutet das?

+0

Mögliches Duplikat von [Was ist der beste Fortschritt von Hydra MPI] (http://stackoverflow.com/questions/6091397/whats-the-best-advance-of-hydra-mpi) –

+0

@JohnZwinck Hallo, JohnZwinck. Ich denke nicht. Ich kenne diesen Beitrag, aber nachdem ich ihn gelesen habe, verstehe ich immer noch nicht. Also habe ich diesen Beitrag gemacht – user15964

Antwort

15

mpirun und mpiexec sind grundsätzlich gleich - der Name des Prozess-Launcher in vielen MPI-Implementierungen. Der MPI-Standard sagt nichts darüber aus, wie die Ränge gestartet und kontrolliert werden sollen, aber er empfiehlt (obwohl nicht gefordert), dass, wenn es einen Launcher irgendwelcher Art gibt, er mpiexec heißen sollte. Einige MPI-Implementierungen wurden mit mpirun gestartet und dann aus Gründen der Kompatibilität auf mpiexec umgestellt. Andere Implementierungen haben das Gegenteil gemacht. Am Ende stellen die meisten Implementierungen ihren Launcher unter beiden Namen bereit. In der Praxis sollte es keinen Unterschied geben in was mpirun und mpiexec tun.

Verschiedene MPI-Implementierungen haben unterschiedliche Möglichkeiten, die Prozesse zu starten und zu steuern. MPICH begann mit einer Infrastruktur namens MPD (Multi-Purpose Daemon oder so). Dann wechselte es zum neueren Hydra-Prozessmanager. Da Hydra die Dinge anders macht als MPD, verwendet das Hydra-basierte mpiexec andere Befehlszeilenargumente als das MPD-basierte und um Benutzern die explizite Auswahl des Hydra-basierten zu ermöglichen, wird es als mpiexec.hydra zur Verfügung gestellt. Der alte heißt mpiexec.mpd. Es ist möglich, eine MPICH-basierte MPI-Bibliothek zu haben, die nur den Hydra-Launcher bereitstellt und dann mpiexec und mpiexec.hydra die gleiche ausführbare Datei ist. Intel MPI basiert auf MPICH und seine neueren Versionen verwenden den Hydra Prozessmanager.

Open MPI baut auf Open Run-Time Environment (ORTE) auf und sein eigener Prozessstarter heißt orterun. Zur Kompatibilität ist orterun auch als mpirun und mpiexec symbolisiert.

Fassen wir zusammen:

  • mpiexec.something ist eine spezielle Version des MPI-Prozessstart für eine gegebene Implementierung
  • mpiexec und mpirun sind die generischen Namen, in der Regel Kopien oder symbolischen Links zu den eigentlichen Abschuss
  • beide mpiexec und mpirun sollten das gleiche tun
  • einige Implementierungen benennen ihren Launcher mpiexec, einige nennen es mpirun, einige nennen es beide, und das ist oft die Quelle der Verwirrung, wenn mehr als eine MPI-Implementierungen gleichzeitig in den Systempfaden verfügbar sind (z.B. wenn installiert von Distropackages)
+0

Vielen Dank, Hristo Iliev. Ihre Antwort macht die Dinge viel klarer. Und es scheint, dass "mpirun" muss "-n" Optionen angeben, während "mpiexec" und "mpiexec.hydra" muss nicht sein – user15964

Verwandte Themen