使用WRF软件进行气象模拟计算

本文介绍如何使用E-HPC集群运行WRF软件进行气象模拟计算。

背景信息

WRF(Weather Research and Forecasting model)是一款采用先进中尺度数值模式的开源气象模拟软件,广泛应用于气象行业。它不仅支持广泛的大气过程研究和模拟,包括历史数据再现和未来天气预报,而且能够在多种计算平台上运行。更多信息,请参见WRF官网

本文以2019年感恩节前的美国冬季风暴事件为例,使用WRF模型进行了12公里空间分辨率的模拟。分析和研究了降水、温度、风速等关键气象要素,并展示了它们在特定12小时时间段内的变化和分布。

准备工作

  1. 选择以下任一方式创建一个E-HPC集群。

    • 通过集群模板创建。具体操作,请参见模板创建

      重要

      若您选择通过集群模板创建集群,则您需要在计算节点与队列页面修改节点配置后再完成创建。

      image

    • 通过手动创建集群。具体操作,请参见创建标准版集群

    本文使用的集群配置示例如下:

    配置项

    配置

    系列

    标准版

    部署模式

    公共云集群

    集群类型

    SLURM

    节点配置

    • 包含1个管理节点、1个登录节点和4个计算节点,规格如下:

      • 管理节点:采用ecs.c8ae.xlarge实例规格,该规格配置为4 vCPU,8 GiB内存。

      • 登录节点:采用ecs.c8ae.xlarge实例规格,该规格配置为4 vCPU,8 GiB内存。

      • 计算节点:采用ecs.c8ae.16xlarge实例规格,该规格配置为64 vCPU、128 GiB内存。

    • 计算节点间使用eRDMA网络互联。

    集群镜像ID

    Alibaba Cloud Linux 2.1903 LTS 64位

  2. 创建集群用户。具体操作,请参见用户管理

    集群用户用于登录集群,进行编译软件、提交作业等操作,本文创建的用户示例如下:

    • 用户名:testuser

    • 用户组:sudo权限组

  3. (条件必选)如果您是手动创建集群,则您需要安装wrf-aocc软件;否则,请跳过此步骤。具体操作,请参见安装和卸载集群软件

    说明

    安装wrf-aocc软件至集群后,将自动触发安装所有其他必需的依赖软件。

步骤一:环境验证和配置

  1. 登录E-HPC Portal。具体操作,请参见登录E-HPC Portal

  2. 在E-HPC Portal页面,单击页面右上角image图标,通过Workbench远程连接集群。

  3. 执行以下命令,查看软件是否安装成功,以确保系统成功加载特定版本的环境。

    module avail

    系统返回信息如下所示:

    image

  4. 配置conus12km算例。

    1. 执行以下命令,下载并解压算例文件。

      cd ~
      wget https://ehpc-perf.oss-cn-hangzhou.aliyuncs.com/yt710/WRFV4/input-data/v4.4_bench_conus12km.tar.gz
      
      tar -zxvf v4.4_bench_conus12km.tar.gz
      cd v4.4_bench_conus12km
      ln -s /opt/ehpc_common_softwares/nwp/wrf-aocc/4.4.2/aliyun/2/x86_64/run/* .
    2. 执行以下命令,下载并解压NCL编程语言。

      cd ~
      wget https://ehpc-perf.oss-cn-hangzhou.aliyuncs.com/AMD-Genoa/WRFV4/ncl_draw.tar.gz
      tar -zxvf ncl_draw.tar.gz
  5. 执行以下命令,修改~/.bashrc文件。

    vim ~/.bashrc

    新增内容如下:

    module load aocc/4.0.0   aocl/4.0.1   gcc/12.3.0   hdf5/1.10.5   libfabric/1.16.0   mpich-aocc/4.0.3   netcdf/4.8.0   szip/2.0.0   wrf-aocc/4.4.2   zlib/1.2.13
    
    export NCARG_ROOT=~/ncl
    
    export PATH=$NCARG_ROOT/bin:$PATH
  6. 在四个计算节点上统一执行以下命令,安装NCL和ImageMagick。

    说明

    您可以通过控制台快速发送命令执行。具体操作,请参见发送命令

    sudo yum install -y ncl ImageMagick
  7. 执行以下命令,创建文件名为png2gif.sh的作业执行文件。

    cd ~
    vim png2gif.sh

    单击查看脚本示例:

    #!/bin/sh
    
    echo date
    echo "------------get wrfout_d01 file-------------"
    ls -al wrfout_d01* | awk '{print $9}'
    echo "----------start change png tp gif-----------"
    
    
    out_gif=''
    for i in "$@"; do
      case $i in
        -out)
          shift
          out_gif=$1 
          break 
          ;;
        *)
          echo "Other parameter: $i"
          ;;
      esac
    done
    WRFPath=`pwd`
    for file in `ls -al wrfout_d01* | awk '{print $9}'`; do
            export FILE_PATH="/$WRFPath/$file"
            echo "-----------$FILE_PATH-----------"
            ncl surface.ncl
    done
    echo "----------surface.ncl file-----------"
    ls -al wrfout_d01*.png | awk '{print $9}'
    
    echo "----------convert delay start-----------"
    if [ -n "$out_gif" ]; then
      convert -delay 50 wrfout_d01_2019-11-26*.000001.png "$out_gif"
    else
      convert -delay 50 wrfout_d01_2019-11-26*.000001.png wrfout_d01_2019-11-26.000001.gif
    fi

步骤二:提交作业

在完成环境验证和配置后,请关闭Workbench对话框以继续下述步骤。

  1. 在顶部导航栏,选择任务管理

  2. 在页面上方,单击submitter

  3. 创建作业页面,填写以下作业信息。

    说明

    请注意以下配置,未提及的配置请保持默认。

    • 基本参数

      参数

      示例

      说明

      作业名称

      wrf-conus12

      作业的名称。

      如果需要自动下载解压作业文件,解压目录也将以作业名称进行命名。

      输出文件

      • 变量名:out

      • 变量值:test.gif

      作业的输出文件。

      作业队列

      comp

      运行作业的队列。

      如果计算节点已加入到指定队列中,则必须将作业提交到对应的队列,否则作业会执行失败;如果计算节点没有加入队列,则默认将作业提交到调度器所在的默认队列中。

      执行命令

      在线编辑

      向调度器提交的作业执行命令,可以是脚本文件,也可以是一段命令文本。您可以通过以下三种方式提交:

      • 在线编辑

      • 本地文件

      • 上传文件

      计算节点数

      4

      用来运行此作业的计算节点数。

      任务数

      4

      每个计算节点运行此作业使用的任务数,即进程数。

      线程数

      2

      每个任务所使用的线程数,为空时线程数为1。

      单击查看执行命令示例:

      #!/bin/bash
      
      ln -s ~/v4.4_bench_conus12km/* .
      ln -s ~/ncl/* .
      ln -s ~/png2gif.sh .
      
      rm -rf rsl.error.????
      rm -rf rsl.out.????
      
      rm -rf wrfout*
      
      ulimit -s unlimited
      ulimit -l unlimited
      
      export WRF_NUM_TILES=16
      export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
      export OMP_STACKSIZE="16M"
      
      
      # mpi + omp
      mpirun   -genv FI_PROVIDER="verbs;ofi_rxm" -bind-to core:2 ./wrf.exe
      
      source png2gif.sh -out 'test.gif' 
    • 高级参数

      参数

      示例

      说明

      MPI性能剖析

      开启MPI性能剖析

      选择是否开启MPI性能剖析。

  4. 单击提交作业

    完成操作后,您可以看到状态为RUNNING的作业任务。

    image

步骤三:查看作业详情

  1. 在作业列表区域,找到目标作业,单击操作列下的查看

  2. 在作业详情页面,您可以查看作业的详细信息,如下图所示:

    image

  3. 待作业任务完成后(状态为COMPLETED),单击输入输出文件页签,然后选择输出文件,查看作业运行结果。

    image

    GIF图片如下图所示:

    test

步骤四:查看性能剖析

  1. 在顶部导航栏,选择性能管理,进入性能管理页面。

  2. 性能剖析筛选区域,设置以下参数筛选性能剖析任务。

    参数

    说明

    状态

    选择剖析状态为已完成

    类型

    选择MPI类型。

  3. 找到名称为wrf-conus12的任务,然后在左侧单击image按钮,以查看性能剖析信息。

    关于更多参数指标说明,请参见查看性能剖析

    image