2016-04-07 27 views
3

Ich muss einige alte Codes aktualisieren, um mit der neuesten Version von OpenMPI zu arbeiten, aber ich bin sehr verwirrt von der neuen --map -durch System. Insbesondere bin ich nicht sicher, wie man --cpus-pro-proc N. ersetzt.Wie ersetzt man --cpus-pro-proc mit --map-by in OpenMPI

Mehrere Web site haben vorgeschlagen, --map-by node zu verwenden: pe = N, aber, wenn ich dieses versuchte, gibt es mir ein anderes Ergebnis.

Der ursprüngliche Befehl lautet:

mpirun -np 3 --report-bindings --bind-to-core --cpus-per-proc 3 ./test.sh 

Welche gibt:

[B/B/B/././././.] [./././././././.] [./././././././.] [./././././././.] 
[./././././././.] [B/B/B/././././.] [./././././././.] [./././././././.] 
[./././././././.] [./././././././.] [B/B/B/././././.] [./././././././.] 

Allerdings, wenn ich den Befehl:

mpirun -np 3 --report-bindings --bind-to core --map-by node:pe=3 ./test.sh 

Der Ausgang ist:

[B/B/B/././././.] [./././././././.] [./././././././.] [./././././././.] 
[./././B/B/B/./.] [./././././././.] [./././././././.] [./././././././.] 
[././././././B/B] [B/././././././.] [./././././././.] [./././././././.] 

Könnte jemand bitte erklären, wie man die Option --map-by verwendet?

+0

Was ist Ihr Original öffnen MPI-Version? Die Kombination von --bind-to-core und -cpus-pro-proc sollte eigentlich zur zweiten Bindungszuordnung führen, wie es hier gezeigt wird, außer der MCA-Parameter "rmaps_base_schedule_policy" wurde in beiden Fällen auf "socket" gesetzt Umgebung oder in der System/Benutzer-Konfigurationsdatei (oder es gibt eine zusätzliche Option --bysocket) –

+0

Die ursprüngliche Version war openmpi-1.4.4. Ich weiß nichts über die Konfiguration. Ich werde das untersuchen. –

Antwort

0

vier MPI Prozesse über vier CPU-Sockel zu verbreiten und jeden Prozess zu drei Kernen der entsprechenden Buchse Verwendung gebunden haben:

-n 4 --map-by socket:pe=3 --bind-to core 
+0

Das hat funktioniert, danke. –