本文源自曙光智算主题征文活动
投稿人:流洋(华东师范大学)
WRF(Weather Research and Forecasting)气象数值模式是一种用于天气和气候预测的大气模式,可以模拟大气中的各种物理和化学过程,包括辐射传输、湍流、云微物理、降水、地表过程等,可以用于预测各种天气现象,如降水、温度、风速等。WRF模式免费开源、可扩展性强,被广泛应用于气象、环境、农业和水文等领域。WRF模式的编译和运行需要一定的Linux基础,且随着模拟分辨率的提高,对科学计算资源的需求十分迫切,让我们看看曙光智算AC.sugon.com平台如何高效运行和处理WRF模式。
一
计算服务平台
曙光智算平台提供了网页端(AC.sugon.com)和客户端(支持Windows和Mac系统)两种启用方式,不仅提供了命令行和数据管理功能,还支持VS code和Jupyter等编程工具,能够满足不同场景下的使用需求。
进入命令行模式,即可通过Linux操作命令进行环境管理、软件编译、文件移动等等
输入module avail,即显示平台可提供调用的编译环境、基础模块和常用工具
我们可以看到平台上已经安装好了可用的WRF和WPS:
►WRF安装路径:/public/software/apps/WRF
►WPS(WRF前处理模块)安装路径:/public/software/apps/WPS
可通过module load加载所需工具或软件:
►加载WPS 3.9.1环境:module load apps/WPS/3.9.1/hpcx-intel2017
►加载WRF 4.2环境:module load apps/WRF/4.2/hpcx-intel2017
二
编译WRF
如果我们需要使用其他的WRF版本,也可以自己进行编译。编译WRF模式所需的基础环境都可以直接通过module load进行加载,不用再自己折腾hdf5、netcdf等模块的安装,很大程度节省了基础性环境配置工作量。
这里列出了WRF编译所需的基础环境配置:
#intelmpi
module load mpi/intelmpi/2021.3.0
#ZLIB
module load mathlib/zlib/1.2.11/intel
#SZIP
module load apps/szip/2.1.1/intel
#HDF5
module load mathlib/hdf5/1.12.0/mpi-intel_fortran_parallel
#NETCDF
module load mathlib/netcdf/4.4.1/intel
#LIBPNG
module load mathlib/libpng/1.2.50/intel
#JASPER
module load mathlib/jasper/1.900.1/intel
通过module list即可查看当前已加载的环境变量:
接下来需要下载我们想要的WRF及WPS版本源码
►WRF模式源码下载地址:https://github.com/wrf-model/WRF
►WPS模式源码下载地址:https://github.com/wrf-model/WPS
我们可以创建model文件夹来编译WRF模式,上传WPS-4.5.tar.gz和WRF-4.5.tar.gz:
Step1:解压缩
tar -zxvf WRF-4.5.tar.gz
tar -zxvf WPS-4.5.tar.gz
Step2:编译WRF
运行configure命令进行配置(按所加载的基础环境的编译器进行设置)
./configure
这步一定要根据编译器进行选择。上述环境使用的ifort编译器,这里选择15
随后选择1,即可开始正式编译,并将编译日志输出到log.compile
./compile em_real >& log.compile
检查编译结果,出现如下4个exe即为成功
ndown.exe real.exe tc.exe wrf.exe
Step3:编译WPS
设置WRF路径
export WRF_DIR=/xxx/xxx/xxx/WRF-4.5
运行configure命令进行配置
./configure
这步一定要根据编译器进行选择,上述环境使用的ifort编译器,这里选择19
正式编译,并将编译日志输出到log.compile
./compile >& log.compile
检查编译结果,出现如下3个exe即为成功
geogrid.exe ungrib.exe metgrid.exe
三
运行WRF模式&提交作业
首先,需要进行WRF模式前处理(WPS),运行流程如下(来自WRF使用手册):
其中,geogrid.exe需要静态地理数据,服务器上已将其存放在公共路径,可以不用另行下载。
►静态地理数据路径:/public/software/meteorology/WPS_GEOG
►静态地理数据下载:https://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html
在运行WRF模式前,我们需要设置namelist.wps和namelist.input,namelist.wps文件用于配置WPS的运行参数,例如指定最大嵌套层数、模拟开始和结束时间等;namelist.input文件用于real.exe和wrf.exe可执行文件。
随后依次运行ungrib.exe、metgrid.exe和real.exe,ungrib.exe将静态GRIB数据转换为中间文件格式;geogrid.exe将静态地理数据拟合到指定网格;metgrid.exe获取来自geogrid.exe和ungrib.exe的输出并将数据插值到指定时间和空间,最后通过wrf.exe来运行WRF模式。
►关于WRF模式的设置及运行可参考WRF手册:https://github.com/wrf-model/Users_Guide
特别重要的是,高计算需求的任务不要在前台跑,例如real.exe和wrf.exe需要提交作业。
进入数据管理,可以查看文件目录,实时查看WRF模式的前处理流程:
需要关注一下个人主目录用量,确保有足够的存储空间。如果空间不够用,可以进行扩容:
然后,可以在客户端【应用】中的【基础模板】
或在网页版的【科学计算】→【作业提交】→【更多应用模板】中的【基础模板】提交作业,依次进行如下设置:
我们可以通过如下命令实时查看作业进度,或取消指定的作业:
作业完成后,可以查看作业日志、错误信息和详细信息:
关于计算开销也十分清晰:
四
处理WRF模式模拟结果
支持NCL编程处理:https://www.ncl.ucar.edu/
支持Python编程处理:https://wrf-python.readthedocs.io/en/latest/index.html
WRF模拟降雨量示意图:
WRF模拟后的重要数据不仅能下载到本地,还支持多种分享方式,便于跨服务器传输。
五
使用体验
一直觉得WRF编译和数据传输是非常花时间的,但这次在曙光智算平台上使用后发现很多环境配置的工作都由技术人员完成了,可以供大家根据自己需求调用。并且基于网页端和客户端的连接具有更好的灵活性,身边没有笔记本和台式机的情况下,也可以通过手机或平板来连接。此外,平台可以联网使用,支持Anaconda进行Python包的管理,对数据处理和可视化也有很好的支持。总得来说,WRF模式的编译、运行和处理的整个环节都可以在一个平台上完成,很大程度提高了工作效率。