Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
WRF ist eine numerische Berechnungssoftware für die Wettervorhersage. Es verfügt über eine starke Unterstützung für parallele Computing. Im DM-Modus (Distributed-Memory Parallelismus) ist es im Wesentlichen ein MPI-Programm. In der Praxis führen Personen WRF im Cluster aus.
In diesem Artikel wird gezeigt, wie Sie WRF mit HPC Pack ausführen, einschließlich des Erstellens eines Linux-Clusters, des Erstellens von WPS (Datenvorverarbeitungsmoduls von WRF), WRF und seiner abhängigen Bibliotheken sowie der Ausführung von WRF-Aufträgen. Die Knotenverwaltungs- und Auftragsverwaltungsfunktionen von HPC Pack können Ihnen helfen, den Prozess zu vereinfachen und die Effizienz zu steigern.
Voraussetzungen
Vorbereiten von Linux-Computeknoten Sie können einen neuen Linux-Cluster mit der ARM-Vorlage bereitstellen oder einfach Linux-Knoten im Cluster-Manager eines vorhandenen Clusters hinzufügen. Beachten Sie, dass, wenn Ihre Workloads RDMA-Netzwerk erfordern, sicherstellen sollten, dass die virtuellen Computer in demselben VM-Skalierungssatz oder -verfügbarkeitssatz bereitgestellt werden, und die
Compute Node Image
mit SuffixHPC
und dieCompute Node VM Size
in H-Serie sein sollten, damit der virtuelle Computer RDMA-fähig sein könnte.Option 1: Verwenden Sie Single Head Node Cluster für Linux-Workloads, um einen neuen Linux-Cluster bereitzustellen.
Option2: Fügen Sie im Cluster-Manager eines vorhandenen Clusters eine neue IaaS-Knotenvorlage hinzu, und fügen Sie einen neuen Knoten mit der Vorlage hinzu. Beachten Sie, dass der Cluster entweder ein Cluster für Windows-Workloads oder Linux-Workloads sein kann.
Nach der Bereitstellung der Knoten ist es erforderlich, eine bestimmte Gruppe für sie zu erstellen. Dies ist in den Clusrun-Befehlen in den folgenden Abschnitten hilfreich, um sicherzustellen, dass die Befehle nicht auf WRF-bezogenen Knoten ausgeführt werden. Hier erstellen wir
WRFNodes
für die neu hinzugefügten Knoten.Bereiten Sie Systemumgebungen vor. Sie sollten sicherstellen, dass die Systeme über einen Gfortran Compiler verfügen, sowie gcc und cpp. Die Skriptsprachen csh, perl und sh sind ebenfalls erforderlich, da das WRF-Buildsystem Skripts verwendet, die in diesen Sprachen als oberste Ebene für die Benutzeroberfläche geschrieben wurden. Die offizielle Website von WRF stellt Tests bereit, um die Compiler miteinander kompatibel zu sein, und Skriptsprachen funktionieren ordnungsgemäß auf dem System.
Erstellen Sie einen neuen Ordner
WRFModel/Tests
unter dem Startverzeichnis, laden Sie die Testdateien herunter, und führen Sie die Tests mit clusrun aus.clusrun /nodegroup:WRFNodes "wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_tests.tar; mkdir -p ~/WRFModel/Tests; tar -xf Fortran_C_tests.tar -C ~/WRFModel/Tests;"&&clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Tests;gfortran TEST_1_fortran_only_fixed.f;./a.out;gfortran TEST_2_fortran_only_free.f90;./a.out;gcc TEST_3_c_only.c;./a.out;gcc -c -m64 TEST_4_fortran+c_c.c;gfortran -c -m64 TEST_4_fortran+c_f.f90;gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o;./a.out;./TEST_csh.csh;./TEST_perl.pl;./TEST_sh.sh;"
Herunterladen und Erstellen von WRF
Festlegen von Umgebungsvariablen
Bevor Sie WRF oder Bibliotheken kompilieren, müssen Sie diese Makefile-Compileroptionen festlegen.
Name Wert CC Gcc CXX g++ FC gfortran FCFLAGS -m64 F77 gfortran FFLAGS -m64 Erstellen Sie einen neuen Ordner
WRFModel/Build_WRF/Libraries
unter dem Startverzeichnis, und verwenden Sie ihn als übergeordnetes Verzeichnis, das die Speicherorte enthält, in denen verschiedene Bibliotheken installiert werden. Legen Sie den Wert als UmgebungsvariableDIR
fest.Verwenden Sie clusrun, um alles oben zu erreichen.
clusrun /nodegroup:WRFNodes "mkdir -p ~/WRFModel/Build_WRF/LIBRARIES;sed -i '$a export DIR=~/WRFModel/Build_WRF/LIBRARIES \nexport CC=gcc \nexport CXX=g++ \nexport FC=gfortran \nexport FCFLAGS=-m64 \nexport F77=gfortran \nexport FFLAGS=-m64' ~/.profile;source ~/.profile"
MPICH herunterladen und kompilieren
Grundsätzlich sollte jede Implementierung des MPI-2-Standards mit dem Parallelitätsmodus von WRF funktionieren. MPICH empfiehlt jedoch die offizielle Website von WRF. Sie müssen MPICH herunterladen und erstellen und dann den
bin
Ordner von MPICH zuPATH
hinzufügen.Verwenden Sie clusrun, um alles oben zu erreichen.
clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Build_WRF/LIBRARIES;wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/mpich-3.0.4.tar.gz; tar xzvf mpich-3.0.4.tar.gz;cd mpich-3.0.4;./configure --prefix=`echo $(dirname $PWD)`/mpich;make;make install;sed -i '$a export PATH=$DIR/mpich/bin:$PATH' ~/.profile;source ~/.profile"
Herunterladen und Kompilieren von Bibliotheken
Vor dem Kompilieren von WRF gibt es verschiedene abhängige Bibliotheken, die installiert werden sollen.
NetCDF
wird als Grundlegendes von Arrayberechnungen verwendet.zlib
,libpng
undJasper
sind Komprimierungsbibliotheken, die zum Kompilieren von WPS mit GRIB2-Funktion erforderlich sind.Laden Sie
NetCDF
herunter und kompilieren Sie sie. Fügen Sie dann ihrenbin
Ordner zuPATH
hinzu, und fügen Sie UmgebungsvariablenNETCDF
hinzu. Verwenden Sie clusrun, um diese zu erreichen.clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Build_WRF/LIBRARIES;wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/netcdf-4.1.3.tar.gz; tar zxvf netcdf-4.1.3.tar.gz;cd netcdf-4.1.3;./configure --prefix=`echo $(dirname $PWD)`/netcdf --disable-dap --disable-netcdf-4 --disable-shared;make;make install;sed -i '$a export PATH=$DIR/netcdf/bin:$PATH \nexport NETCDF=$DIR/netcdf' ~/.profile;source ~/.profile"
Laden Sie
zlib
herunter und kompilieren Sie sie. Legen Sie dann Makefile-CompileroptionenLDFLAGS
undCPPFLAGS
fest. Verwenden Sie clusrun, um diese zu erreichen.clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Build_WRF/LIBRARIES;wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/zlib-1.2.11.tar.gz; tar xzvf zlib-1.2.11.tar.gz;cd zlib-1.2.11;./configure --prefix=`echo $(dirname $PWD)`/grib2;make;make install;sed -i '$a export LDFLAGS=-L$DIR/grib2/lib \nexport CPPFLAGS=-I$DIR/grib2/include \nexport LD_LIBRARY_PATH=$DIR/grib2/lib:$LD_LIBRARY_PATH ' ~/.profile;source ~/.profile"
Laden Sie
libpng
mit clusrun herunter und kompilieren Sie sie.clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Build_WRF/LIBRARIES;wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/libpng-1.2.50.tar.gz; tar xzvf libpng-1.2.50.tar.gz;cd libpng-1.2.50;./configure --prefix=`echo $(dirname $PWD)`/grib2;make;make install;"
Laden Sie
Jasper
herunter und kompilieren Sie sie. Fügen Sie anschließend UmgebungsvariablenJASPERLIB
hinzu, undJASPERINC=
entsprechend. Verwenden Sie clusrun, um diese zu erreichen.clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Build_WRF/LIBRARIES;wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/jasper-1.900.1.tar.gz; tar xzvf jasper-1.900.1.tar.gz;cd jasper-1.900.1;./configure --prefix=`echo $(dirname $PWD)`/grib2;make;make install;sed -i '$a export JASPERLIB=$DIR/grib2/lib \nexport JASPERINC=$DIR/grib2/include' ~/.profile;source ~/.profile"
Nachdem die Bibliotheken erstellt wurden, müssen Sie überprüfen, ob die Bibliotheken mit den Compilern arbeiten können, die für die WPS- und WRF-Builds verwendet werden sollen. Verwenden Sie die Tests, die von der -Website von WRFbereitgestellt werden.
clusrun /nodegroup:WRFNodes "wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_NETCDF_MPI_tests.tar; tar -xf Fortran_C_NETCDF_MPI_tests.tar -C ~/WRFModel/Tests;"&&clusrun /nodegroup:WRFNodes "source ~/.profile;cd ~/WRFModel/Tests;cp ~/WRFModel/Build_WRF/LIBRARIES/netcdf/include/netcdf.inc .;gfortran -c 01_fortran+c+netcdf_f.f;gcc -c 01_fortran+c+netcdf_c.c;gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o -L ~/WRFModel/Build_WRF/LIBRARIES/netcdf/lib -lnetcdff -lnetcdf;./a.out;mpif90 -c 02_fortran+c+netcdf+mpi_f.f;mpicc -c 02_fortran+c+netcdf+mpi_c.c;mpif90 02_fortran+c+netcdf+mpi_f.o 02_fortran+c+netcdf+mpi_c.o -L ~/WRFModel/Build_WRF/LIBRARIES/netcdf/lib -lnetcdff -lnetcdf;mpirun ./a.out"
Herunterladen und Kompilieren von WRF und WPS
Klonen Sie unter
Build_WRF
den Quellcode von WRF und WPS von Github.clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Build_WRF;git clone https://github.com/wrf-model/WRF;git clone https://github.com/wrf-model/WPS"
WrF kompilieren. Vor der Kompilierung müssen Sie die verwendeten Compiler und die Art und Weise konfigurieren, wie Sie WRF erstellen möchten. Da wir WRF im DM-Modus erstellen, wählen Sie bitte Option 34 (Gfortran Compiler mit gcc(dmpar)) aus, und die Schachtelungsoption sollte "einfach" sein.
WRF übernimmt den interaktiven Modus in der Konfiguration. Melden Sie sich also über SSH (Cluster-Manager -> Ressourcenverwaltung -> Knotenaktionen -> Remotedesktop/SSH) an, und führen Sie das Konfigurationsprogramm manuell aus, und kompilieren Sie es.
source ~/.profile; cd ~/WRFModel/Build_WRF/WRF; ./configure #Here, you choose the compile option you want ./compile em_real >& log.compile #The compilation should take about 20-30 minutes
Überprüfen Sie, ob die Kompilierung erfolgreich ist, indem Sie
ls -ls main/*.exe
ausführen, sollten Sie Folgendes sehen:wrf.exe real.exe ndown.exe tc.exe
Kompilieren sie WPS. Auch hier müssen Sie die Compiler konfigurieren. Wählen Sie Option 1 (seriell, empfohlen von der offiziellen WRF-Website). WPS ist weniger CPU-intensiv und kann als einzelner Prozessorauftrag ausgeführt werden.
Melden Sie sich beim Knoten über SSH an, führen Sie das Konfigurationsprogramm aus, und kompilieren Sie es.
source ~/.profile; cd ~/WRFModel/Build_WRF/WPS; ./configure #Here, you choose the compile option you want ./compile >& log.compile #The compilation should take a few minutes
Wenn die Kompilierung erfolgreich ist, sollten 3 ausführbare Dateien im Verzeichnis der obersten Ebene der WPS vorhanden sein.
geogrid.exe -> geogrid/src/geogrid.exe ngrib.exe -> ungrib/src/ungrib.exe metgrid.exe -> metgrid/src/metgrid.exe
Ausführen von WRF-Workloads
Vorbereiten von Beispieldaten für den WRF-Auftrag
In diesem Artikel verwenden wir den Einzeldomänenfall von Hurricane Matthew. Weitere Informationen zum Hintergrund finden Sie in diesem Link.
Laden Sie die statischen Geografiedaten und Echtzeitdatenherunter. Obwohl Sie die Beispieldaten auf jedem Knoten herunterladen können, indem Sie
clusrun
, um die Netzwerkbandbreite zu sparen, empfehlen wir, nur einen Knoten herunterzuladen, einen NFS-Cluster zu konfigurieren und die Daten über DEN NFS-Dienst freigegeben zu haben.Auf Serverseite:
Daten herunterladen:
mkdir -p ~/WRFModel/Build_WRF/DATA; cd ~/WRFModel/Build_WRF/DATA; wget https://www2.mmm.ucar.edu/wrf/src/wps_files/geog_high_res_mandatory.tar.gz; #Static geography data tar -xzvf geog_high_res_mandatory.tar.gz wget https://www2.mmm.ucar.edu/wrf/TUTORIAL_DATA/matthew_1deg.tar.gz #Real time data tar -xf matthew_1deg.tar.gz
Führen Sie
sudo apt install nfs-kernel-server
aus, um den nfs-Server zu installieren. Überprüfen Sie dann den Status des Diensts nachsudo systemctl status nfs-server
. Wenn der Dienst aktiv ist, ändern Sie/etc/exports
, um zu konfigurieren, welche Clients auf den freigegebenen Ordner zugreifen dürfenDATA
./home/hpcadmin/WRFModel/Build_WRF/DATA [client hostname1](rw,sync,no_subtree_check) ... /home/hpcadmin/WRFModel/Build_WRF/DATA [client hostnamen](rw,sync,no_subtree_check)
Führen Sie
sudo exportfs -arv
aus, um die Änderungen wirksam zu machen, undshowmount -e
, um die Exportliste zu überprüfen.Auf Clientseite:
Installieren Sie nfs-Client, mounten Sie den freigegebenen Ordner, und fügen Sie eine Zeile zu
/etc/fstab
hinzu, um den freigegebenen Ordner automatisch zu mounten, wenn Ihr Linux-System gestartet wird. Erstellen Sie eine KnotengruppeWRF-NFSClients
für die Knoten, und verwenden Sie clusrun, um alle zu erreichen.clusrun /nodegroup:WRF-NFSClients "sudo apt install nfs-common -y;mkdir -p ~/WRFModel/Build_WRF/DATA;cd ~/WRFModel/Build_WRF;sudo mount [server hostname]:/home/hpcadmin/WRFModel/Build_WRF/DATA DATA;sudo sed -i '$a [server hostname]:/home/hpcadmin/WRFModel/Build_WRF/DATA /home/hpcadmin/WRFModel/Build_WRF/DATA nfs defaults,_netdev 0 0' /etc/fstab"
Anmerkung
- Vermeiden Sie die Verwendung des SMB-Freigabeverzeichnisses in WRF-Workload, da die statischen Geografiedaten Unterordner mit dem Namen "CON" enthalten, bei denen es sich um einen der reservierten Windows-Dateinamen handelt.
- In dieser Demo laden wir die Daten in
DATA
Verzeichnis eines Knotens herunter, das sich auf derselben Ebene wie IhreWPS
undWRF
Verzeichnisse befindet. Wählen Sie für Ihre Arbeit einen geeigneten NFS-Serverknoten und -verzeichnis basierend auf Ihren Anforderungen aus, und stellen Sie sicher, dass genügend Platz unter dem Verzeichnis vorhanden ist. Die Größe statischer Geografiedaten beträgt 29G. Der Betriebssystemdatenträger HBv2 Serie beträgt 64G, und die Größen temporären Datenträger sind 480 + 960G. Wenn Sie die Daten auf den Betriebssystemdatenträger herunterladen müssen, können Sie virtuelle Festplatten erweitern, die an einen virtuellen Windows-Computerangefügt sind.
Verwenden Sie "clusrun", um die Umgebungsvariable
WRFDATADIR
für Ihr Datenverzeichnis festzulegen.clusrun /nodegroup:WRFNodes "sed -i '$a export WRFDATADIR=~/WRFModel/Build_WRF/DATA' ~/.profile;source ~/.profile"
Bearbeiten von Einstellungsdateien
WPS und WRF verwenden verschiedene Variablen, um das Datenformat, den Zeit- und Raumumfang der Berechnung usw. zu definieren. Ausführliche Erläuterungen aller Variablen finden Sie unter folgenden Links: WPS, WRF.
In der folgenden Tabelle wird erläutert, wie Sie die Einstellungsdatei von WPS namelist.wps
ändern, damit sie an unsere Fallstudie angepasst wird. Beachten Sie, dass Sie bei Variablen mit mehreren Werten nur das erste ändern können, da wir uns nur um die erste Domäne kümmern.
Variablenname | Standardwert | Neuer Wert |
---|---|---|
max_dom | 2 | 1 |
start_date | '2019-09-04_12:00:00','2019-09-04_12:00:00' | '2016-10-06_00:00:00' |
end_date | '2019-09-06_12:00:00','2019-09-04_12:00:00' | '2016-10-08_00:00:00' |
interval_seconds | 10800 | 21600 |
e_we | 150,220 | 91 |
e_sn | 130,214 | 100 |
Dx | 15000 | 27000 |
Dy | 15000 | 27000 |
map_proj | "lambert" | "Mercator" |
ref_lat | 33,00 | 28.00 |
ref_lon | -79.00 | -75.00 |
stand_lon | -79.00 | -75.00 |
geog_data_path | "/glade/work/wrfhelp/WPS_GEOG/" | "$WRFDATADIR/WPS_GEOG" |
Verwenden Sie "clusrun", um die Änderung durchzuführen. Sie können auch Eigene Einstellungsdateien hochladen, auf den Knoten herunterladen und die Standardeinstellungsdatei ersetzen.
clusrun /nodegroup:WRFNodes "source ~/.profile;sed -i -e 's/max_dom = 2/max_dom = 1/g' -e 's/2019-09-04_12:00:00/2016-10-06_00:00:00/g' -e 's/2019-09-06_00:00:00/2016-10-08_00:00:00/g' -e 's/interval_seconds = 10800/interval_seconds = 21600/g' -e 's/e_we = 150, 220/e_we = 91/g' -e 's/e_sn = 130, 214/e_sn = 100/g' -e 's/dx = 15000/dx = 27000/g' -e 's/dy = 15000/dy = 27000/g' -e """s/map_proj = 'lambert'/map_proj = 'mercator'/g""" -e 's/ref_lat = 33.00/ref_lat = 28.00/g' -e 's/ref_lon = -79.00/ref_lon = -75.00/g' -e 's/stand_lon = -79.0/stand_lon = -75.0/g' -e """s#/glade/work/wrfhelp/WPS_GEOG/#$WRFDATADIR/WPS_GEOG#g""" ~/WRFModel/Build_WRF/WPS/namelist.wps;"
In der folgenden Tabelle ist aufgeführt, wie Sie die Einstellungsdatei von WRF ändern namelist.input
, damit sie an unsere Fallstudie angepasst wird. Beachten Sie, dass Sie bei Variablen mit mehreren Werten nur das erste ändern können, da wir uns nur um die erste Domäne kümmern.
Variablenname | Standardwert | Neuer Wert |
---|---|---|
run_hours | 36 | 48 |
start_year | 2019,2019 | 2016 |
start_month | 09,09 | 10 |
start_day | 04,04 | 06 |
start_hour | 12,12 | 00 |
end_year | 2019,2019 | 2016 |
end_month | 09,09 | 10 |
end_day | 06,06 | 08 |
interval_seconds | 10800 | 21600 |
history_interval | 60,60 | 180 |
restart_interval | 7200 | 1440 |
time_step | 90 | 150 |
max_dom | 2 | 1 |
e_we | 150,220 | 91 |
e_sn | 130,214 | 100 |
num_metgrid_levels | 34 | 32 |
Dx | 15000 | 27000 |
Dy | 15000 | 27000 |
Verwenden Sie "clusrun", um die Änderung durchzuführen. Sie können auch Eigene Einstellungsdateien hochladen, auf den Knoten herunterladen und die Standardeinstellungsdatei ersetzen.
clusrun /nodegroup:WRFNodes "sed -i -e 's/max_dom = 2/max_dom = 1/g' -e 's/run_hours = 36/run_hours = 48/g' -e 's/start_year = 2019, 2019/start_year = 2016/g' -e 's/start_month = 09, 09/start_month = 10/g' -e 's/start_day = 04, 04/start_day = 06/g' -e 's/start_hour = 12, 12/start_hour = 00/g' -e 's/end_year = 2019, 2019/end_year = 2016/g' -e 's/end_month = 09, 09/end_month = 10/g' -e 's/end_day = 06, 06/end_day = 08/g' -e 's/interval_seconds = 10800/interval_seconds = 21600/g' -e 's/history_interval = 60, 60/history_interval = 180/g' -e 's/restart_interval = 7200/restart_interval = 1440/g' -e 's/time_step = 90/time_step = 150/g' -e 's/max_dom = 2/max_dom = 1/g' -e 's/e_we = 150, 220/e_we = 91/g' -e 's/e_sn = 130, 214/e_sn = 100/g' -e 's/num_metgrid_levels = 34/num_metgrid_levels = 32/g' -e 's/dx = 15000/dx = 27000/g' -e 's/dy = 15000/dy = 27000/g' ~/WRFModel/Build_WRF/WRF/test/em_real/namelist.input"
Erstellen von Aufträgen zum Ausführen der Simulation
Erstellen Sie einen Auftrag, und fügen Sie zwei Aufgaben mit Abhängigkeit hinzu.
Vorgangs-ID | Vorgangsname | Art | Knoten | Kerne | Workdir | Befehl |
---|---|---|---|---|---|---|
1 | Wps | NodePrep | Nicht verfügbar | Nicht verfügbar | Quelle ~/.profile; ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable; ./link_grib.csh $WRFDATADIR/matthew/fnl; ./ungrib.exe; ./geogrid.exe; ./metgrid.exe |
~/WRFModel/Build_WRF/WPS /name:wps |
2 | wrf | Grundlegend | 4 | 64 | Quelle ~/.profile; ln -sf .. /.. /.. /WPS/met_em.d01.2016-10* .; mpirun -iface ib0 -np %CORE_NUMBER% -f $CCP_MPI_HOSTFILE ./real.exe; mpirun -iface ib0 -np %CORE_NUMBER% -f $CCP_MPI_HOSTFILE ./wrf.exe; mkdir -p $WRFDATADIR/results/matthew; cp wrfout_d01_2016-10-0* $WRFDATADIR/results/matthew; cp wrfrst_d01_2016-10-0* $WRFDATADIR/results/matthew; |
~/WRFModel/Build_WRF/WRF/test/em_real |
In Task1 behandeln wir die Datenvorverarbeitungsaufgabe, indem wir die drei Untermodule von WPS ausführen: ungrib, geogrid und metgrid. Da das Vorverarbeitungsergebnis die Eingabe der WRF-Simulation ist, sollte es bei jedem knotenbeteiligten WRF-Auftrag vorhanden sein. Daher fügen wir die Aufgaben als Knotenvorbereitungsaufgabe hinzu, damit sie auf jedem Knoten exekuliert wird.
In Task2 führen wir die MPI-Programme real.exe und wrf.exe aus, um die parallelen Berechnungen durchzuführen und die Ausgabedateien in den ordner
results/matthew
unterDATA
freigegebenen Ordner zu kopieren. Im Befehlmpirun
-iface
gibt die Netzwerkschnittstelle an, die für die Kommunikation zwischen den Prozessen verwendet werden soll.-np
gibt an, wie mamy das MPI-Programm läuft. In dieser Demo verwenden wir 64 Prozesse, d. h. jeden Kern der erforderlichen Knoten.-f
gibt den Dateinamen an, der die Knotenliste enthält. Informationen zu finden Sie in$CCP_MPI_HOSTFILE
.
Alles oben mit Befehlen erreichen:
set NODE_NUMBER=4
set CORE_NUMBER=64
job new /numnodes:%NODE_NUMBER%
job add !! /workdir:~/WRFModel/Build_WRF/WPS /name:wps /type:NodePrep "source ~/.profile; ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable; ./link_grib.csh ../DATA/matthew/fnl; ./ungrib.exe; ./geogrid.exe; ./metgrid.exe"
job add !! /workdir:~/WRFModel/Build_WRF/WRF/test/em_real /name:wrf /numnodes:%NODE_NUMBER% /requirednodes:[nodelist] "source ~/.profile; ln -sf ../../../WPS/met_em.d01.2016-10* .; mpirun -iface ib0 -np %CORE_NUMBER% -f $CCP_MPI_HOSTFILE ./real.exe; mpirun -iface ib0 -np %CORE_NUMBER% -f $CCP_MPI_HOSTFILE ./wrf.exe; mkdir -p $WRFDATADIR/results/matthew; cp wrfout_d01_2016-10-0* $WRFDATADIR/results/matthew"
job submit /id:!! /jobname:WRF
Ergebnis abrufen
Überprüfen des Auftragsergebnisses im HPC Pack 2019 Cluster Manager
Die Simulationsergebnisse werden als "wrfout"-Dateien unter
/home/hpcadmin/WRFModel/Build_WRF/DATA/results/matthew
generiert, die mit NCL- oder Python visualisiert werden können. Unter demselben Ordner befinden sich "wrfrst"-Dateien, die zum Neustart der Simulation verwendet werden können, weitere Informationen zum Simulationsneustart finden Sie unter diesem.