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 № 1Beachten 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.