Freigeben über


Ausführen von WRF mit HPC Pack Linux Cluster auf Azure

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 Suffix HPC und die Compute 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.

      ARM-Vorlage

    • 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.

      Hinzufügen eines IaaS-Knotens tempate

      Hinzufügen eines neuen Knotens

    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.

    Hinzufügen einer Knotengruppe

  • 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 Umgebungsvariable DIRfest.

  • 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 zu PATHhinzufü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 und Jasper sind Komprimierungsbibliotheken, die zum Kompilieren von WPS mit GRIB2-Funktion erforderlich sind.

  • Laden Sie NetCDFherunter und kompilieren Sie sie. Fügen Sie dann ihren bin Ordner zu PATHhinzu, und fügen Sie Umgebungsvariablen NETCDFhinzu. 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 zlibherunter und kompilieren Sie sie. Legen Sie dann Makefile-Compileroptionen LDFLAGS und CPPFLAGSfest. 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 Jasperherunter und kompilieren Sie sie. Fügen Sie anschließend Umgebungsvariablen JASPERLIB hinzu, und JASPERINC= 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_WRFden 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/*.exeausfü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 nach sudo systemctl status nfs-server. Wenn der Dienst aktiv ist, ändern Sie /etc/exports, um zu konfigurieren, welche Clients auf den freigegebenen Ordner zugreifen dürfen DATA.

      /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, und showmount -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 Knotengruppe WRF-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

    1. 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.
    2. In dieser Demo laden wir die Daten in DATA Verzeichnis eines Knotens herunter, das sich auf derselben Ebene wie Ihre WPS und WRF 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.

    Hinzufügen eines Knotenvorbereitungsvorgangs

  • 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 unter DATA freigegebenen Ordner zu kopieren. Im Befehl mpirun

    -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

    WRF-Vorgänge

  • Die Simulationsergebnisse werden als "wrfout"-Dateien unter /home/hpcadmin/WRFModel/Build_WRF/DATA/results/matthewgeneriert, 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.