Frage

Ich benutze den aktuellen Befehl, um MPI-Jobs zu senden: MPIRUN -NP Anzahl der Prozessoren Dateiname

Mein Verständnis ist, dass der obige Befehl mich an 4 unabhängige Prozessoren einreichen kann, die über MPI kommunizieren. Bei unserem Setup verfügt jeder Prozessor jedoch 4 Kerne, die nicht verwendet werden . Die Fragen, die ich hatte, sind folgende:

    .
  1. ist es möglich, einen Job einzugeben, um auf mehreren Kernen auf demselben Knoten oder mehreren Knoten aus der MPI-Run-Befehlszeile auszuführen? Wenn ja, wie?

  2. Erfordert das oben Genannte spezielle Kommentare / eingerichtet im Code? Ich verstehe, etwas Literatur zu lesen, dass die Kommunikationszeit zwischen Kernen zwischen den Prozessoren unterschiedlich sein könnte. Daher ist es dadurch, wie das Problem denkt, wie das Problem verteilt ist ... aber für diese Frage? Was muss man sonst noch schätzen?

  3. Gibt es schließlich eine Grenze, wie viel Datenmenge übertragen wird? Gibt es ein Limit, wie viel Daten der Bus senden / empfangen können? Gibt es eine Einschränkung des Cache?

    danke!

War es hilfreich?

Lösung

So 1 is a question about launching processes, and 2+3 are questions about, basically, performance tuning. Performance tuning can involve substantial work on the underlying code, but you won't need to modify a line of code to do any of this.

What I understand from your first question is that you want to modify the distribution of the MPI processes launched. Doing this is necessarily outside the standard, because it's OS and platform dependant; so each MPI implementation will have a different way to do this. Recent versions of OpenMPI and MPICH2 allow you to specify where the processors end up, so you can specify two processors per socket, etc.

You do not need to modify the code for this to work, but there are performance issues depending on core distributions. It's hard to say much about this in general, because it depends on your communication patterns, but yes, the "closer" the processors are, the faster the communications will be, by and large.

There's no specified limit to the total volume of data that goes back and forth between MPI tasks, but yes, there are bandwidth limits (and there are limits per message). The cache size is whatever it is.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top