WRF는 날씨 예측을 위한 숫자 계산 소프트웨어입니다. 병렬 컴퓨팅을 강력하게 지원합니다. DM(Distributed-Memory 병렬 처리) 모드에서 빌드된 경우 기본적으로 MPI 프로그램입니다. 실제로 사람들은 클러스터에서 WRF를 실행합니다.
이 문서에서는 Linux 클러스터 만들기, WPS(WRF의 데이터 전처리 모듈), WRF 및 해당 종속 라이브러리 빌드, WRF 작업 실행 등 HPC Pack을 사용하여 WRF를 실행하는 방법을 보여 줍니다. HPC Pack의 노드 관리 및 작업 관리 기능은 프로세스를 간소화하고 효율성을 높이는 데 도움이 될 수 있습니다.
필수 구성 요소
Linux 컴퓨팅 노드를 준비합니다. ARM 템플릿을 사용하여 새 Linux 클러스터를 배포하거나 기존 클러스터의 클러스터 관리자에 Linux 노드를 추가할 수 있습니다. 워크로드에 RDMA 네트워크가 필요한 경우 VM이 동일한 가상 머신 확장 집합 또는 가용성 집합에 배포되었는지 확인해야 하며,
Compute Node Image
접미사가HPC
Compute Node VM Size
H 시리즈 있어야 VM이 RDMA 지원될 수 있습니다.옵션 1: Linux 워크로드에
단일 헤드 노드 클러스터를 사용하여 새 Linux 클러스터를 배포합니다. ARM 템플릿
옵션2: 기존 클러스터의 클러스터 관리자에서 새 IaaS 노드 템플릿을 추가하고 템플릿을 사용하여 새 노드를 추가합니다. 클러스터는 Windows 워크로드 또는 Linux 워크로드용 클러스터일 수 있습니다.
추가
추가
노드를 배포한 후에는 노드에 대한 특정 그룹을 만들어야 합니다. 이는 다음 섹션의 clusrun 명령에서 WRF 관련 노드가 아닌 노드에서 명령이 실행되지 않도록 하는 데 유용합니다. 여기서는 새로 추가된 노드에 대한
WRFNodes
만듭니다.추가
시스템 환경을 준비합니다. 시스템에 gfortran 컴파일러뿐만 아니라 gcc 및 cpp있는지 확인해야 합니다. WRF 빌드 시스템에서 이러한 언어로 작성된 스크립트를 사용자 인터페이스의 최상위 수준으로 사용하므로 csh,
perl 및sh 스크립트 언어도 필요합니다. WRF의 공식 웹 사이트 컴파일러가 서로 호환되고 스크립트 언어가 시스템에서 제대로 작동하는지에 대한 테스트를 제공합니다. 홈 디렉터리 아래에
WRFModel/Tests
새 폴더를 만들고, 테스트 파일을 다운로드하고, clusrun을 사용하여 테스트를 실행합니다.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;"
WRF 다운로드 및 빌드
환경 변수 설정
WRF 또는 라이브러리를 컴파일하기 전에 이러한 메이크파일 컴파일러 옵션을 설정해야 합니다.
이름 값 CC(참조) gcc CXX g++ FC (주) gfortran FCFLAGS -m64 F77 gfortran FFLAGS -m64 홈 디렉터리 아래에
WRFModel/Build_WRF/Libraries
새 폴더를 만들고 다른 라이브러리가 설치될 위치를 포함하는 부모 디렉터리로 사용합니다. 해당 값을 환경 변수DIR
설정합니다.clusrun을 사용하여 위의 모든 것을 달성합니다.
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 다운로드 및 컴파일
원칙에 따라 MPI-2 표준의 구현은 WRF의 분산 메모리 병렬 처리 모드에서 작동해야 합니다. 그러나 MPICH는 WRF의 공식 웹 사이트가 권장하는. MPICH를 다운로드하고 빌드한 다음 MPICH의
bin
폴더를 추가하여PATH
.clusrun을 사용하여 위의 모든 것을 달성합니다.
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"
라이브러리 다운로드 및 컴파일
WRF를 컴파일하기 전에 설치해야 하는 다양한 종속 라이브러리가 있습니다.
NetCDF
배열 계산의 기본으로 사용됩니다.zlib
,libpng
및Jasper
GRIB2 기능을 사용하여 WPS를 컴파일하는 데 필요한 압축 라이브러리입니다.NetCDF
다운로드하고 컴파일합니다. 그런 다음bin
폴더를 추가하여PATH
NETCDF
환경 변수를 추가합니다. 이러한 작업을 수행하려면 clusrun을 사용합니다.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"
zlib
다운로드하고 컴파일합니다. 그런 다음 메이크파일 컴파일러 옵션을LDFLAGS
설정하고CPPFLAGS
. 이러한 작업을 수행하려면 clusrun을 사용합니다.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"
clusrun을 사용하여
libpng
다운로드하고 컴파일합니다.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;"
Jasper
다운로드하고 컴파일합니다. 그런 다음JASPERLIB
환경 변수를 추가하고 그에 따라JASPERINC=
. 이러한 작업을 수행하려면 clusrun을 사용합니다.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"
라이브러리가 생성되면 라이브러리가 WPS 및 WRF 빌드에 사용할 컴파일러와 함께 작동할 수 있는지 확인해야 합니다. WRF의 웹 사이트제공된 테스트를 사용합니다.
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"
WRF 및 WPS 다운로드 및 컴파일
Build_WRF
Github에서 WRF 및 WPS의 소스 코드를 복제합니다.clusrun /nodegroup:WRFNodes "cd ~/WRFModel/Build_WRF;git clone https://github.com/wrf-model/WRF;git clone https://github.com/wrf-model/WPS"
WRF를 컴파일합니다. 컴파일하기 전에 사용된 컴파일러와 WRF를 빌드하려는 방법을 구성해야 합니다. DM 모드에서 WRF를 빌드하므로 옵션 34(gcc(dmpar)가 있는 gfortran 컴파일러)를 선택하세요. 중첩 옵션은 "기본"이어야 합니다.
WRF는 구성에서 대화형 모드를 채택하므로 SSH(클러스터 관리자 -> 리소스 관리 -> 노드 작업 -> 원격 데스크톱/SSH)를 통해 노드에 로그인하고 구성 프로그램을 수동으로 실행하고 컴파일합니다.
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
ls -ls main/*.exe
실행하여 컴파일이 성공했는지 확인합니다. 다음이 표시됩니다.wrf.exe real.exe ndown.exe tc.exe
WPS를 컴파일합니다. 다시 컴파일러를 구성해야 합니다. 옵션 1(WRF 공식 웹 사이트에서 권장하는 직렬)을 선택하세요. WPS는 CPU 집약적이 적으며 단일 프로세서 작업으로 실행할 수 있습니다.
SSH를 통해 노드에 로그인하고 구성 프로그램을 실행하고 컴파일합니다.
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
컴파일에 성공하면 WPS 최상위 디렉터리에 3개의 실행 파일이 있어야 합니다.
geogrid.exe -> geogrid/src/geogrid.exe ngrib.exe -> ungrib/src/ungrib.exe metgrid.exe -> metgrid/src/metgrid.exe
WRF 워크로드 실행
WRF 작업에 대한 샘플 데이터 준비
이 문서에서는 허리케인 매튜의 단일 도메인 사례를 사용합니다. 배경에 대한 자세한 내용은 이 링크참조하세요.
정적 지리 데이터 다운로드하고 실시간 데이터. clusrun
각 노드에서 샘플 데이터를 다운로드하여 네트워크 대역폭을 저장할 수 있지만, 하나의 노드에서만 다운로드를 수행하고, NFS 클러스터를 구성하고, NFS 서비스를 통해 데이터를 공유하는 것이 좋습니다.서버 쪽:
데이터 다운로드:
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
sudo apt install nfs-kernel-server
실행하여 nfs 서버를 설치합니다. 그런 다음sudo systemctl status nfs-server
서비스의 상태를 확인합니다. 서비스가 활성화된 경우/etc/exports
공유 폴더에 액세스할 수 있는 클라이언트를 구성하도록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)
sudo exportfs -arv
실행하여 변경 내용을 적용하고showmount -e
내보내기 목록을 확인합니다.클라이언트 쪽:
nfs 클라이언트를 설치하고, 공유 폴더를 탑재하고,
/etc/fstab
줄을 추가하여 Linux 시스템이 시작될 때 공유 폴더를 자동으로 탑재합니다. 노드에 대한 노드 그룹WRF-NFSClients
만들고 clusrun을 사용하여 모든 것을 달성합니다.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"
메모
- 정적 지리 데이터에 Windows 예약 파일 이름 중 하나인 "CON"이라는 하위 폴더가 포함되어 있으므로 WRF 워크로드에서 SMB 공유 디렉터리를 사용하지 마세요.
- 이 데모에서는
DATA
및WPS
디렉터리와 동일한 수준에 있는 한 노드의WRF
디렉터리에 데이터를 다운로드합니다. 작업을 위해 필요에 따라 적절한 NFS 서버 노드 및 디렉터리를 선택하고 디렉터리 아래에 충분한 남은 공간이 있는지 확인하세요. 정적 지리 데이터의 크기는 29G입니다. HBv2 시리즈의 OS 디스크는 64G이며 임시 데이터 디스크의 크기는 480 + 960G입니다. OS 디스크에 데이터를 다운로드해야 하는 경우 Windows 가상 머신연결된 가상 하드 디스크를 확장할있습니다.
clusrun을 사용하여 데이터 디렉터리에 대한 환경 변수
WRFDATADIR
설정합니다.clusrun /nodegroup:WRFNodes "sed -i '$a export WRFDATADIR=~/WRFModel/Build_WRF/DATA' ~/.profile;source ~/.profile"
설정 파일 편집
WPS 및 WRF는 다양한 변수를 사용하여 데이터 형식, 계산의 시간 및 공간 범위 등을 정의합니다. 모든 변수에 대한 자세한 설명은 WPS, WRF링크를 참조하세요.
다음 표에서는 사례 연구에 맞게 WPS의 설정 파일 namelist.wps
수정하는 방법을 나열합니다. 값이 여러 개 있는 변수의 경우 단일 도메인의 경우 첫 번째 도메인만 중요하므로 첫 번째 도메인만 수정할 수 있습니다.
변수 이름 | 기본값 | 새 값 |
---|---|---|
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 | '램버트' | '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' |
clusrun을 사용하여 수정을 수행합니다. 사용자 고유의 설정 파일을 업로드하고, 노드에 다운로드하고, 기본 설정 파일을 바꿀 수도 있습니다.
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;"
다음 표에서는 WRF의 설정 파일 namelist.input
수정하여 사례 연구에 맞게 수정하는 방법을 나열합니다. 값이 여러 개 있는 변수의 경우 단일 도메인의 경우 첫 번째 도메인만 중요하므로 첫 번째 도메인만 수정할 수 있습니다.
변수 이름 | 기본값 | 새 값 |
---|---|---|
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 | 백오십 |
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 |
clusrun을 사용하여 수정을 수행합니다. 사용자 고유의 설정 파일을 업로드하고, 노드에 다운로드하고, 기본 설정 파일을 바꿀 수도 있습니다.
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"
시뮬레이션을 수행하는 작업 만들기
작업을 만들고, 의존도가 있는 2개 작업을 추가합니다.
작업 ID | 작업 이름 | 형 | 노드 | 코어 | Workdir | 명령 |
---|---|---|---|---|---|---|
1 | wps | NodePrep | 해당(N/A) | 해당(N/A) | source ~/.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 | 기초의 | 4 | 64 | 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; cp wrfrst_d01_2016-10-0* $WRFDATADIR/results/matthew; |
~/WRFModel/Build_WRF/WRF/test/em_real |
task1에서는 WPS의 세 가지 하위 모듈(ungrib, geogrid 및 metgrid)을 실행하여 데이터 전처리 작업을 처리합니다. 전처리 결과는 WRF 시뮬레이션의 입력이므로 WRF 작업에 참여하는 각 노드에 있어야 합니다. 따라서 태스크를 노드 준비 태스크로 추가하여 각 노드에서 이 태스크를 계산합니다.
추가
task2에서는 real.exe MPI 프로그램 및 wrf.exe 실행하여 병렬 계산을 수행하고 출력 파일을
results/matthew
공유 폴더 아래의DATA
폴더에 복사합니다.mpirun
명령-iface
프로세스 간의 통신에 사용할 네트워크 인터페이스를 지정합니다.-np
mamy가 MPI 프로그램을 실행하는 방법을 지정합니다. 이 데모에서는 64개의 프로세스, 즉 필요한 노드의 모든 코어를 사용합니다.-f
노드 목록을 포함하는 파일 이름을 지정합니다.대한 자세한 내용은 이 참조하세요.
명령을 사용하여 위의 모든 작업을 수행합니다.
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
결과 가져오기
HPC 팩 2019 클러스터 관리자에서 작업 결과 확인
완료된 WRF 작업
시뮬레이션 결과는
/home/hpcadmin/WRFModel/Build_WRF/DATA/results/matthew
아래에 "wrfout" 파일로 생성되며 NCL 또는 python으로 시각화할 수 있습니다. 동일한 폴더 아래에 시뮬레이션을 다시 시작하는 데 사용할 수 있는 "wrfrst" 파일이 있습니다. 시뮬레이션 다시 시작에 대한 자세한 내용은 이참조하세요.