/ / OpenMPI gibt die ausführbare Datei für bestimmte Knoten an - MPI, Distributed Computing, OpenMPI

OpenMPI gibt ausführbare Dateien für bestimmte Knoten an - mpi, distributed-computing, openmpi

Ich habe einen heterogenen Computing-Cluster, den ichmöchte parallele Berechnungsaufgaben über OpenMPI ausführen. Da nicht alle Knoten im Cluster die gleiche ausführbare Datei ausführen können (weil sie heterogen ist), möchte ich, dass einige Knoten ihre eigene Version des Programms kompilieren und Open MPI diese ausführbare Datei auf diesen Knoten aufrufen lässt. Meine erste Frage ist, ob OpenMPI diese Art von Datenverarbeitung in heterogenen Architekturen ermöglicht.

Wenn ja, ist meine zweite Frage, wie Sie festlegen, welche ausführbaren Dateien auf welchen Knoten ausgeführt werden sollen. Zum Beispiel sagen wir node0, node1, und node2 kann ausführbar ausgeführt werden prog1 und node3, node4, und node5 kann ausführbar ausgeführt werden prog2, woher prog1 und prog2 sind das gleiche Programm, werden aber für verschiedene Architekturen mit der mpicc oder mpic++ Wrapper-Compiler.

Wenn ich dieses Programm parallel auf allen Knoten ausführen wollte, würde ich Folgendes tun:

mpirun -n 3 --hosts node0,node1,node2 prog1 : -n 3 --hosts node3,node4,node5 prog2

Wenn nicht, was würde ich tun, um diesen Effekt zu erzielen? Dies post gibt an, dass heterogenes Cluster-Computing von OpenMPI unterstützt wird, aber ich muss OpenMPI mit dem erstellen --enable-heterogeneous Flagge. Ich bin mir nicht sicher, wie das geht, da in meinem Cluster ArchLinux läuft und ich OpenMPI mit installiert habe pacman.

Antworten:

1 für die Antwort № 1

Beachten Sie, dass es einen Tippfehler gibt (--host erfordert kein Ende s), so sollte dein Befehl sein

mpirun -n 3 --host node0,node1,node2 prog1 : -n 3 --host node3,node4,node5 prog2

--enable-heterogeneous wird benötigt, damit Open MPI heterogen ausgeführt werden kannSysteme (zum Beispiel zwischen Intel x86_64 (Little Endian) und einem Sparcv9 (Big Endian) Knoten). Wenn OpenMPI (mit ArchLinux geliefert) nicht mit diesem Flag konfiguriert wurde, sollten Sie dieses Paket neu erstellen. Eine andere Möglichkeit ist, Open MPI neu zu erstellen und in ein alternatives Verzeichnis zu installieren.

Nicht zuletzt wird die heterogene Unterstützung (sehr) leicht getestet, und ich empfehle Ihnen dringend, die neueste Open MPI 3.0-Serie zu verwenden.