Ich habe eine Wettervorhersage-Software mit OpenMPI in doppelter Genauigkeit auf Ubuntu 14.04 und Intel iFort Compiler kompiliert. Ich bin jedoch nicht in der Lage, einige Probleme herauszufinden. Ich muss herausfinden, wie viele Prozessoren ich an mpirun senden muss. Dies ist die Ausgabe von lscpuErmittlung der Anzahl der Prozessoren für die Verwendung von Openmpi
x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 60
Stepping: 3
CPU MHz: 800.000
BogoMIPS: 6784.93
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3output of lscpu
Dies ist der Befehl, den ich meine Software verwenden mpirun -np 4 aaa zu laufen. Aber wenn ich dies tun, bekomme ich diese Fehler -
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1001.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
Wenn ich np auf 1 gesetzt, es erfolgreich ausgeführt wird, aber die CPU nicht vollständig nutzen. Die CPU-Nutzung variiert von 3% bis 35%, aber die Speicherauslastung beträgt fast 100% und das System friert für etwa 10 Minuten ein und wird mit der Fehlermeldung
forrtl strenger (41) unzureichender virtueller Speicher beendet.
Ich habe WRF (die Software für diese Frage ist nicht WRF) mit mehreren Semaphoren ausgeführt und ich habe keine Geschwindigkeit oder Speicherprobleme erlebt. Ich könnte auf einfache Genauigkeit neu kompilieren, aber bevor ich das tue, möchte ich in der Lage sein, die Anzahl der Kerne (Prozessoren) herauszufinden, die an mpirun gesendet werden.
schöne Antwort. Lass mich all diese Informationen aufnehmen! – gansub
absorbiert all das. Die Leute, die die Software entwickelt haben, haben mich gebeten, mit einfacher Genauigkeit neu zu kompilieren, anstatt eine kleinere Problemgröße zu verwenden. Gedanken dazu? – gansub
Ich gehe davon aus, dass es einen Gitter- oder AMR-Fluiddynamik-Löser verwendet, so dass eine Änderung der Genauigkeit das Problem um die Hälfte reduzieren würde. Es ist nur eine Frage, ob Sie mit der reduzierten Genauigkeit umgehen können. Das hängt empfindlich von Ihrem Problem ab. – Tim