Ich habe ein MPI-Programm, das seine Prozessoren überzeichnet/übergibt. Das heißt: Es gibt viel mehr Prozesse als Prozessoren.Verhindern MPI von besetzt Schleife
Nur wenige dieser Prozesse sind jedoch zu einem bestimmten Zeitpunkt aktiv, daher sollte es keine Konkurrenz für Rechenressourcen geben.
Aber ähnlich wie die Herde der Möwen aus Findet Nemo, wenn diese Prozesse auf Kommunikation warten, sind sie alle busy-looping und fragen: "Mine? Mine? Mine?"
Ich verwende sowohl Intel MPI und OpenMPI (für Maschinen). Wie kann ich sie überzeugen beide nicht zu beschäftigt Schleife?
Meine schnelle und schmutzige Lösung war MPI_Iprobe
in einer Schleife mit einem Schlafbefehl zu verwenden (siehe here).
Führen Sie alle Prozesse auf einem einzelnen Host aus? –
Nein, sie können auf mehrere Hosts verteilt sein. – Richard
Welche Art von Netzwerk verbindet die Hosts? –