[能源] WRF on AWS
WRF on AWS 解决方案
例如能源行业中的风力发电和光伏发电的用户,需要有一套天气的数值预测系统针对大气,云层,海洋,光照等实时天气信息进行数学模型进行计算机模拟操作,并预测几小时后或第二天的中期发电量估计。
虽然商业的天气预报可以提供一定的天气信息,但这些信息不能直接量化的被业务系统使用。另外,数值天气预报的结果,如风速和风向等,并不能作为风电功率预测系统的直接输入参数。数值天气预报数据只能代表大气对应均匀下垫面的各计算网格的空间平均值,而实际电场地表具有明显的非均匀特征。比如,复杂的地形,即使是地势平坦的区域,也可能会因为地表的材质与植被造成粗糙度的差异,从而使各风电机组的风速、风向,光伏板位置的太阳光照强度存在较大差异。
为了提高天气预测的准确性,很多厂商自建了相关数值天气预报系统,这些系统适配风电场预测的相应尺度,预测结果也比气象局提供的预测结果更加精确。针对天气预测,可以使用WRF (Weather Research and Forecasting )天气研究和预报系统。 WRF 是学术界和工业界使用最广泛的 NWP 模型之一,在气象和相关领域(气象服务、农业林业、新能源等)的应用越来越广泛。
随着计算机计算能力的日益强大以及数值天气预报模式的发展,将来的预测结果将更加准确,可预测时间也将延长,为功能更强大的天气预测系统奠定基础。用户希望能建立一套灵活的,弹性的并且运行在云端的WRF高性能计算系统。同时也希望借助于云端HPC的成本优势来减少其运行成本。
行业痛点
风电行业
风电功率预测技术是以风电场气象信息、历史功率数据等为依据,利用物理模拟计算和科学统计方法,通过对风电场的风力风速进行短期预测,从而预测出风电场的功率,为电力调度部门制定风电调度方案提供依据。风能具有波动性、间歇性、低能量密度等特点,因此,风电功率也是波动的、间歇的。当风力发电在电网中所占的比例非常小时,上述特点不会对电网造成明显影响。但是,随着风力发电装机容量的迅速增加,其在电网中的比例也不断上升,一旦风电的穿透功率超过极限比例,接入电网的风力发电机组将会对电力系统的安全、稳定运行以及电能质量带来严峻挑战。
风速预测是风电场风功率预测的基础,其准确性具有重要的意义。风电预测的意义有: 1)用于经济调度, 根据风电场预测的出力曲线优化常规机组的出力, 达到降低运行成本的目的。 2)根据风电出力变化规律增强系统的安全性、 可靠性和可控性。 3)在风电参与电力市场的系统中,优化电力市场中电力的价值。在电力市场中,风电场对风电功率进行预测, 参与电力市场竞价; 电网公司对风电功率进行预测,保证系统安全经济运行。
风场的边界层方案、近地面层方案、陆面过程方案等各参数化方案配置选择,都会对风速模拟的性能和效果产生影响。而风能始源于大气的运动,具有很大的随机性和间歇性,对于复杂地形条件下,风速的预报一直是行业研究的难点和重点。
光伏发电行业
光伏发电作为可再生能源发电方式的重要形式,具有清洁、无污染、可持续的优点,发展前景极为广阔。在晴天和云天条件下光伏板均可运行发电,但太阳能光伏发电系统的电力输出受到云量时空变化的影响较大,其发电量的变化是非平稳的随机过程。即当某光伏电站或热电站无明显天气过程时(晴天条件下),其发电量较稳定,对电站微电网调节和电网调度没有明显影响;当天气系统经过时(有云或降水时),其发电量发生剧烈变化,对电网冲击较大。云的反射和散射会使太阳辐射被削弱,同时云的时空分布变化会在不同程度上引起到达地面太阳辐射的变化。
由于光伏发电功率具有波动性、间歇性和非线性的特点,光伏大规模并网容易对电网造成冲击,影响电网正常安全运行。所以也需要针对大气以及云层所影响对于大地光照强度影响进行预测。
如何解决
解决上述两个行业的痛点都依赖于数值天气预报系统。例如风电行业,为了提高风电场短期风速预报的准确性,越来越多的风电用户需要采用风电功率预测的物理模型来进行预测。物理模型是一套具有严密逻辑的风电场功率预测理论。该方法基于数值天气预报(Numerical Weather Prediction, NWP) 得到风电场所在地的气象资料(如风速,风向等的预测值),然后根据风电场所地的地形和地表植被或材质等进行局域地理模型,并考虑尾流效应,根据此模型将数值天气预报提供的预测值转换为风机所在位置和高度的风速和风向数据,最后与风机的功率曲线相匹配,得到单个风机或整个风场的风电功率预测。
参考 浙江大学学报(工学版)论文 《耦合风电场参数化模型的天气预报模式对风资源的评估和验证》 http://www.zjujournals.com/eng/article/2019/1008-973X/201908016.shtml 中描述,“为了验证耦合风电场参数化模型的天气预报模式(WRF-WFP)对大规模风电场风资源特性评估的准确性,以我国河北省张北县百万千瓦风能基地为研究对象,分别采用耦合与未耦合风电场参数化模型的天气预报模式开展相关的模拟试验,利用在平坦及复杂地形场区的测风塔的观测数据对风速及其概率密度函数分布以及风向进行验证分析. 研究结果表明:耦合与未耦合风电场参数化模型的天气预报数值模式对风资源特性的评估均有较高的可靠性,且对平坦地形区域的模拟精确性优于山地地形区域;由于前者考虑了风电场的尾流效应,对风速预测的精确性比后者高约4.5%. 该数值模式可为风能丰富地区的风电场微观选址、大规模风电场的运行特性及其对大气边界层影响的评估提供可靠的技术支撑.” - 说明了WRF 在风电行业中带来的收益。
解决方案概述
业务场景
天气系统按照其空间尺度大致可分为四类:行星尺度天气系统、天气尺度天气系统、中间尺度天气系统、中小尺度天气系统。用数值天气预报模式对中小尺度天气系统进行预报或诊断分析研究,现已是世界各国气象工作者的常用做法。对于风电功率预报系统,重点关注的是中小尺度天气系统的数值天气预报。
而WRF 是美国气象界联合开发的新一代中小尺度预报模式及同化系统。WRF 模型包含多个模块、功能和程序,它们分别关注天气预报的不同方面,包括风、热传递、太阳辐射、相对湿度和地表水文学等。WRF 模型依据物理学、流体力学和化学定律使用偏微分方程系统进行计算,并将地球划分为三维网格。 这让系统模型与大气条件的交互范围从几十米扩大到数千公里, 并能够支持各种气象应用,该模拟系统精度高、方案新、并包含多种地球系统过程。WRF模型对复杂地形条件下的风场具有较好的模拟能力,不仅可以进行风场的数值模拟,也能较好地模拟出地形对风速的影响。
数值天气预报数据只能代表大气对应均匀下垫面的各计算网格的空间平均值,而实际风电场地表具有明显的非均匀特征。比如,复杂的地形,即使是地势平坦的区域,也可能会因为地表的材质与植被造成粗糙度的差异,从而使各风电机组位置的风速、风向存在较大差异。
对于风电场发电预测模型建模来说,会涉及到如下的变量 1) 地面粗糙度估算:地面的粗糙度将会对风产生拖拽作用,从而改变风向及风速。2)尾流模型:上风向风电机组吸收风能用于发电,从而导致经过下风向风机的自然风所含风能减小,因而经过上风向风电机组的风速大于下风向风电机组处的风速,且两者距离越近,影响越大。基于地表粗糙度和尾流的建模,就可以结合风电场地形,对风电场所在地的数值天气预报进行降维操作,将NWP网格的风场参数转化为风电场风电机组位置轮毂高度处的风速和风向,进行风电功率预测。
对于太阳能发电,WRF模型对区域性、持续时间长的太阳光照预报能力较高,根据实时预测结果来预测发电量。
技术场景
由于数值天气预报的模式方程组是非线性偏微分方程组,目前还没有普遍的解析求解方法。因此必须将模式方程组离散化,然后用相应的数值方法进行求解。所以从技术的角度来看,WRF其实就是一个高性能计算平台,采用 Fortran90 语言开发,并开放源代码。同时具有的可移植,易维护,可扩充,高效率,方便等特点。 采用高度模块化,并行化和分层设计技术,在预报各种天气中都具有较好的性能。
WRF可以运行在AWS 的官方 HPC 框架AWS ParallelCluster 上,并能方便的是使用开源现代作业调度程序 Slurm进行基本的集群操作。当然 ParallelCluster 也可以支持 sge, torque, aws batch等多种作业调度系统。Cloud HPC 正在快速增长, 然而,快速敏捷地在云中编排 HPC 集群也绝非易事,许多 WRF用户来自科学和工程领域,并且没有接受过 IT 和系统管理技能的培训。同时关于在云端建立HPC 集群的文档很少,在搭建集群时可能会面临非常陡峭的学习曲线。而借助ParallelCluster框架可以快速地启动 WRF HPC 集群。
由于ParallelCluster 可以地在AWS EC2多种实例类型和存储类型(例如EC2 c5n、FSx for Lustre以及即将推出的EFA)进行选择,为不同的使用场景提供了灵活的备选方案。例如HPC计算节点选择ARM CPU还是 Intel CPU?存储选择 EBS还是 FSx?
成本角度
从成本的角度,借助于基于ARM系统的Gravition2实例,在获得巨大算力的情况下,也能缩减HPC集群的成本。另外,参考ARM 社区测试结果 https://community.arm.com/developer/tools-software/hpc/b/hpc-blog/posts/assessing-aws-graviton2-for-running-wrf, 最终 “如果WRF 选择c6g 实例类型,价格比同等配置的 c5 实例低 20%。就每次模拟的成本而言,意味着成本至少比 c5 实例低 45%。”
相比于企业自建高性能计算集群或线下超算中心而言,超算中心需要保障有充足的算力供给国家级科研项目,通常只会拿出少量的资源对外开放,且对单个用户申请的资源上限进行严格审核,如国家超级计算长沙中心规定单个用户最多使用100个节点,不到其节点总数的5%。
优点
在云端的WRF on AWS解决方案具有如下的优点:
- 部署速度快,可以在短时间内大规模的调用海量计算资源的能力。
- 弹性 - 可以自定义计算节点的实例类型。不仅可以使用不同的CPU类型(Intel 或 ARM),也可以使用不同的存储 (EBS或 FSx)
- 多种Job Scheduling 可供灵活选择 。
- SGE
- Torque
- Slurm
- AWS Batch
- 成本灵活
- 可以使用 ARM 类型的实例作为计算节点。如果WRF 选择c6g 实例类型,价格比同等配置的 c5 实例低 20%。就每次模拟的成本而言,意味着成本至少比 c5 实例低 45%。
架构决定
从技术的角度,本解决方案就是一个HPC 计算平台。在跨不同架构对应用程序进行基准测试时,需要考虑如下四个因素。
1. MPI 等级与 OpenMP 线程
当运行包含 MPI 和 OpenMP 并行化的应用程序(例如 WRF)时,确定 MPI 任务与应在每个实例上运行的 OpenMP 线程的适当比率非常重要。该比率通常会根据应用程序、正在运行的特定工作负载和规模而变化。由于 CPU 架构(包括缓存)的差异,这些比率通常会根据所使用的架构而变化。
对于C6gn实例版本,需要设置超线程(HyperThreading)选项关闭。由于 WRF 是一项资源密集型任务,因此您应该始终使用物理内核的数量。在这种情况下,虚拟内核没有好处。建议参考:以下是来自 AWS或GEOS-Chem wiki 的有关“超线程”内核可扩展性的更多信息。
另外,如果使用Intel CPU, 需要使用Intel 编译器编译WRF,那么有两个选项可供用户选择 1)选项 15/16:这是没有任何优化标志的普通选项 2)选项 66/67。 例如,根据 WRF benchmark 文档 https://buildmedia.readthedocs.org/media/pdf/wrf-benchmarks/latest/wrf-benchmarks.pdf , Intel 18.0.1 (latest) + MPT 2.18 的选项,在性能测试方面是最优的。
2. 编译器选择会影响性能
根据WRF官方性能优化建议 ( https://www2.cisl.ucar.edu/resources/optimizing-wrf-performance )所指出的,WRF 性能可能因编译器选择而异。为了评估此影响,需要在基于 AWS Graviton2 的实例上评估 ARM 编译器 (20.3) 和 GCC 10.2两种编译器。在由英特尔 Skylake 提供支持的 C5n 实例上,我们将使用英特尔 19.1 编译器套件和 GCC 10.2 进行评估。
3. I/O 性能
WRF 为 I/O 层提供了多种不同的选项,例如串行 NetCDF、并行 NetCDF、异步 I/O 等。根据案例属性和规模,WRF 可能对 I/O 性能很敏感,因此使用其他 I/O 层会有所帮助。在本博客中,我们专注于计算性能,因此启用了默认的串行 NetCDF 选项。为了提高 I/O 性能,我们使用了Amazon FSx for Lustre,这是一项完全托管的高性能 Lustre 文件系统服务。
4. 性价比
虽然性能是一个关键指标,但运行模拟的成本也是一个主要考虑因素。
架构测试
测试基准
WRF 基准是美国大陆 (CONUS) 2.5km 和 12km:CONUS 2.5km 和 CONUS 12km。CONUS 12km 是 2001 年 10 月 24 日时间步长为 72 秒的 48 小时模拟。基准周期是从 24 小时结束时的重启文件开始的 25-27 小时。CONUS 2.5km 是 9 小时2005 年 6 月 4 日时间步长为 15 秒的模拟。基准周期为 6-9 小时,从第 6 小时结束时的重启文件开始。由于 CONUS 2.5km 的分辨率比 CONUS 12km 高得多,计算量更大,所以更适合测试处理器的性能和可扩展性。
测试结果
AWS Graviton2处理器由 AWS 使用 64 位 Arm Neoverse 内核定制构建,可为在 Amazon EC2 中运行的云工作负载提供卓越的性价比。这些实例由 64 个物理核心 AWS Graviton2 处理器提供支持,这些处理器使用 64 位 Arm Neoverse N1 核心和 AWS 设计的定制芯片,使用先进的 7 纳米制造技术构建。
由于 NWP 模型通常受益于高速网络,我们将评估 C6gn.16xlarge(基于 64 核 Graviton2 的实例)和 C5n.18xlarge(基于 Intel Skylake 的 36 核实例)。这两个实例都具有 100 Gbps 网络带宽并支持Elastic Fabric Adapter (EFA)。为了确定通过 C6gn 增加的网络功能实现的性能,我们还评估了 C6g。C6g 实例除了增加了网络功能外,还具有与 C6gn 实例相同的特性。
单实例性能
在着手解决网络的影响之前,我们在单个实例中运行 CONUS 2.5 km数据集。对于每种实例类型,我们评估了具有不同编译器版本以及 MPI 等级和 OpenMP 线程比率的多种组合。在具有 64 个物理内核的基于 Graviton2 的实例上,MPI 任务数乘以 OpenMP 线程数始终等于 64。同样,在 C5n.18xlarge 上,它有 36 个物理内核(两个插槽,每个插槽有 18 个物理内核) ),它将始终达到 36 个内核。此处使用的性能指标是模拟速度,即每个挂钟时间完成的模拟持续时间。下图显示了该评估的结果。
- C6gn:我们看到 GCC 10.2 和 ARM 20.3 编译器在单个实例上的性能相似(在所有情况下都在 3% 以内)。在单个节点上,每个节点也使用 16 或 32 个 MPI 等级略有优势。
- C5n:在这种情况下,英特尔编译器套件和 GCC 10.2 之间的性能差异更大,英特尔编译器在这些场景中的执行速度提高了 15-20%。
跨实例比较,c5n.18xlarge 在单个实例上比 c6gn 具有性能优势,在本测试用例中约为 5%。对于测试的其余部分,我们将在每种情况下使用性能最高的编译器。这意味着 GCC 10.2 用于所有 Graviton2(C6g 和 C6gn)测量,英特尔编译器用于 C5n 实例测量。
多实例性能
为了更好地理解 c6gn 实例增强网络的差异,我们评估了扩展到 112 个实例的相同基准测试。C6gn.16xlarge 和 C5n.18xlarge 都包含 EFA 功能和每个实例 100 Gbps,以实现高度可扩展的节点间通信。C6g 实例使用使用弹性网络适配器 (ENA) 和 TCP/IP 的 25 Gbps 连接。作业中使用的所有实例都是作为计算置放群组的一部分启动的,这可以最大限度地提高群组实例之间的网络性能。在所有情况下,我们都使用 Open MPI 4.1.0。图 2 显示了三个实例中每一个的评估结果。我们以两种格式显示相同的结果,一种基于实例数(左),另一种基于内核数(右)。 在实例级别进行比较时,C6g.16xlarge 实例的性能与其他两个实例相似,直到 16 个实例,由于网络通信增加,扩展效率进一步下降。在 112 个实例中,C5n 和 C6gn 的性能比 C6g 高约 30%,显示了 EFA 的价值和增加的网络容量。 内核数量图(右侧)的性能在外观上有所不同,因为 C5n.18xlarge 有 36 个物理内核,而基于 Graviton2 的实例(C6g、C6gn)有 64 个物理内核。在给定的核心数量下,与 C6g.16xlarge/C6gn.16xlarge 实例(每个实例 64 个核心)相比,它运行的 C5n.18xlarge 实例(每个实例 36 个核心)更多。从图表中,我们观察到 C5n.18xlarge 以每核为基础在 4,600 个核上具有近 70% 的优势,但是,在许多实例的基础上,性能几乎相同。对于本测试案例中评估的 112 个实例,它们还显示出近乎线性的扩展行为。 从测试结果来看,C6gn 和 C5n 的多实例性能的网络性能非常接近。另外网络测试的结果和在单个实例网络测试的结果很相似。
性价比
使用美国东部(弗吉尼亚北部)地区的最新定价,绘制了核心仿真成本与针对该成本获得的仿真速度(与实时相比的加速)的关系图。这仅包括花费在应用程序计算部分的时间,但不包括 I/O 时间,I/O 时间可能因所需输出属性、I/O 库和所用文件系统的选择而异。
C6gn 在较低的模拟速度下提供了显着的节省(与模拟速度接近 16 核的 C5n.18xlarge 相比节省了约 40%),并且当需要更快的模拟速度时,C6gn.16xlarge 成本最低(与 C5n.18xlarge 相比,模拟速度为 100 时节省 30%)。 在较低的模拟速度(和较少的实例数)下,因为模拟没有利用 C6gn.16xlarge 提供的高速网络,所以成本较低的 C6g.16xlarge 性价比最高。但在更大的范围内,由于每个实例需要处理的网格点较少,并且网络对性能更重要。因此 C6gn 实例具有更高的性价比。
总结
使用 WRF 在由基于 Arm 的 AWS Graviton2 处理器提供支持的 Amazon EC2 C6g/C6gn 实例上运行单节点和大规模多节点 NWP 模拟的性能。与基于 Intel 的 C5n 实例相比,在基于 Arm 的 AWS Graviton2 (C6g/C6gn) 实例上运行这些 NWP 模拟具有高达 40% 的性价比优势。由于 EFA 提供的高速网络,甚至 C6gn 上的周转时间(以模拟速度衡量)也与 C5n 实例几乎相同。
根据上述测试结果来选择WRF on AWS 的技术架构决策。
D1: HPC Computer Node 是基于Intel还是ARM?
与基于 Intel 的 C5n 实例相比,在基于 Arm 的 AWS Graviton2 (C6g/C6gn) 实例上运行这些 NWP 模拟具有高达 40% 的性价比优势。 所以选择 ARM.
D2: 使用GCC 还是 Intel C 编译器?
根据D1架构决定选择ARM CPU , 同时根据编译器性能测试结果。 GCC 10.2 用于所有 Graviton2(C6g 和 C6gn)选择 GCC 10.2 编译器。当然,如果Parallel Cluster计算节点选择C5n类型,那么就应该选择英特尔编译器。
另外,从许可证的角度来看。1)如果您有许可证,请使用英特尔 C/Fortran 编译器。它们通常提供更好的性能。如果您选择走这条路线,请跳至英特尔部分。2)如果使用 ARM CPU,则建议使用免费和开源的 GNU C/Fortran 编译器。
D3: 存储使用EFS 还是 FSx?
从成本的角度,建议选择EFS。如果从性能的角度,建议选择FSx。
系统架构
为了搭建一个多尺度通用的或者全球/区域一体化的数值天气预报模式,除了网格系统的选择、模式大气的开关设置(δ1、δ2)以外,还要从软件工程构造上采取适当的策略。参考国外其他国家数值预报模式程序软件的设计策略,尤其是天气预报模式(WRF)的程序软件包基础架构,设计构建一套全新的、统一的模式程序软件包,达到一套模式程序软件包,满足多种研究与业务预报的应用需求。
-
标准化。参照其他领域的软件标准和美国、ECMWF、法国、英国等的数值天气预报系统软件编程标准,建立了一套既要与国际接轨又要满足开发合作与持续创新的实际需要的、基于FORTRAN-90 的气象数值预报模式程序编写标准。
-
模块化。 所谓模式程序设计的模块化(在 FORTRAN-90 计算机语言中,称为“Module”)就是将数值天气预报系统中的科学计算内容,按照不同的数值计算方法、计算内容、计算顺序、不同的物理过程参数化方案等分为独立计算的模块进行编程,达到根据不同的需要“插拔式”地选取不同的模块,组装成针对不同的预报对象、不同研究目的的数值预报模式,达到一套模式程序软件包却有多种研究与业务预报用途的目的。例如,全球中期数值天气预报模式、有限区域短期数值天气预报模式、中尺度数值天气预报模式、热带台风数值预报模式均是由同一套“模块化”的程序软件包组装而成。
-
并行化。多节点多处理器体系结构的并行计算机是未来高性能计算机的主流发展方向。因此,要使数值天气预报系统在高性能并行计算机环境下高效运行,对其模式程序作并行化计算处理是不可缺少的重要工作。现有并行化数值天气预报模式程序存在两方面的问题,一是大部分气象科学家编写的数值模式,其并行化计算效率不高;二是经并行化计算编程专家优化的数值模式,其并行化计算效率高,但模式程序的可读性较差。而且,由于高性能并行计算机的快速更换,数值模式中并行化计算的程序需要作相应的大量修改、优化。
4)使并行优化与串行模式编程既可独立进行,又可有机组合,还可使程序易读、易写、易改、易维护,可移植性强,通用性和灵活性高。
Data Work Flow
WRF模式系统的主要组成如图所示,包括前处理系统、基础软件框架和后处理过程三大部分。1)前处理系统主要是为WRF模式做前期的数据准备。2)基础软件框架:基础软件框架是WRF模式系统的主体部分,具有高度的模块化、易维护、适用于多计算平台、支持多个动力求解方面模块(ARW 和 NMW)、物理过程、初始化模块、变分同化模块。
1. 动力求解模块:包含了完整的物理过程选项。而物理过程模块本身是模式的重要组成部分,计算模式所需要的动力、热力和水汽的参数值,对模式的动力和热力过程有强迫和驱动作用。
2. 变分同化模块:数据同化是将不同来源的气象观测要素与数值预报产品向结合,产生更准确的大气或海洋要素的数据资料,为数值模型提供更准备的初始场。
System Context Diagram
WRF模式可以进行两大类模拟:具有理想初始化的模拟和利用真实数据的模拟。理想模拟通常根据现有的一维或二维观测为WRF模型生成初始条件文件,并假设简化的解析地形图。真实的数据情况通常需要WPS包的预处理,WPS包为每个大气和静态场提供适合于模型所选网格分辨率的保真度。通常情况下,我们会使用真实数据模拟。
- Static Geographical Data - 静态数据 (包含地形和土地利用类别等字段的数据集)
- Gridded Meteorological Data – 实时数据 (初始条件和横向边界条件的最新气象信息)
静态数据
WRF 建模系统能够创建理想化的模拟,常用的场景是对真实数据案例进行模拟。要启动真实数据案例,需要一个包含地形和土地利用类别等字段的静态数据集。而这个数据集必须包含下垫面信息(包括土地利用类型、土壤类型、叶面积指数等)和地形高度信息。静态数据可从 WRF 下载页面 ( http://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html )
实时数据
对于实时数据,WRF 模型需要初始条件和横向边界条件的最新气象信息。此气象数据传统上是由先前运行的外部模型或分析提供的 Grib 文件。气象数据通常来自全球,美国国家环境预测中心 (NCEP) 每天运行四次全球预测系统 (GFS) 模型(初始化适用于 00:00、06:00、12:00 和 18:00 UTC)。这是一个全球等高、0.5 度纬度/经度、免费提供的预测数据集,通常在初始化时间段后 4 小时即可访问。
System Logic Design
WRF 数据输入部分有两种,一种是静态数据。一种是动态数据。1)静态数据通常包地球上的物理位置以及该位置的静态信息。静态数据的好坏直接影响陆-气交换过程,对模式预报效果存在较大的影响。但多数下垫面数据是根据历史观测数据统计得来,其更新周期较长,与当前真实的地表情况存在差异。理论上讲,更新下垫面数据,缩小其与真实情况的差异,可以提升局地的预报效果。由于该部分数据很少发生变化,可以把静态数据存储在S3存储桶中。这样不仅可以节省成本,同时也便于加快集群的运行速度。2)动态数据主要从卫星或者风力测速等设备获得的实时数据。
WRF系统组成
主要包含WPS和WRF两部分模块:
- WPS模块:全称为WRF Pre-processing System,即WRF前处理系统,用来为WRF模型准备输入数据;
- 前处理模块主要是为模式做前期的数据准备。其具体的过程包括 1) 定义模拟区域与嵌套区域 2)计算格点经纬度,地图投影放大系数和科氏参数 3)将陆地数据(如地形、植被和土壤类型)插值到模拟区域 4)将随时间变化的气象数据插值到模拟区域。
- 在WRF的前处理模块(WPS)中,程序geogrid会根据定义的网格信息,计算每个网格的经纬度和投影比例因子,同时,将静态地理数据集(static geographical Data)插值到定义好的区域网格中。但如果只是做理想实验(idealized modeling),就不需要用WPS处理真实数据。
- WPS 可处理来自世界各个气象数据中心的气象资料,允许4种地图类型(极射赤面投影,兰伯特投影,墨卡托投影和经纬度投影)。
- WRF-动力求解方法模块:就是数值求解的模块,该模块是WRF模式系统的核心部分,主要对控制大气运动方程组进行地图投影和空间离散,应用时间积分方案以及为保证模式稳定而采用耗散处理等。
- 它有两个版本:ARW(Advanced Research WRF) 和 NMM(Nonhydrostatic Mesoscale Model)。大多数研究者主要用的都是ARW版本。 除了WPS与WRF两大核心模块外,WRF系统还有很多附加模块:比如用于数据同化的WRF-DA,用于化学传输的WRF-chem,用于林火模拟的WRF-fire。
System Detail Design
1. WPS 模块 - 前处理模块
geogrid.exe根据从外部数据源获得的静态地理数据创建地面数据。 ungrib.exe解压缩 GRIB 气象数据(从外部来源获得)并将其打包为中间文件格式。 metgrid.exe将气象数据水平插入到您的模型域中。metgrid.exe 的输出用作 WRF 的输入(通过 real.exe 程序)。
2. WRF 模块-动力求解方法模块:
real.exe 该程序垂直插入met_em*文件(由metgrid.exe生成),创建边界和初始条件文件,并进行一些一致性检查。 wrf.exec生成模型预测。
详细架构
方案所使用的服务
- EC2 - C6g, C6gn, C5
- S3
- EBS
- FSx
- PallelCluster
- CloudFormation
- IAM
- SQS
- AutoScaling
- DynamoDB
系统部署
系统部署,从逻辑上可以分为两个部分。
Parallel Cluster 自动化安装
WRF 部分安装
[具体步骤,参见 https://aws-industry-solutions-workshop.s3.cn-northwest-1.amazonaws.com.cn/wrf_on_aws/wrf_lib_setup.html]
GCC 安装
WRF 依赖库安装
编号 | 库名称 | 版本号 | 作用 |
---|---|---|---|
1 | GCC | 10.2.0 | gfortran编译器以及gcc和cpp非常重要 |
2 | NetCDF-C | 4.7.4 | 用于读写geo_em文件,必要文件。 |
3 | NetCDF-Fortran | 4.5.3 | 用于读写geo_em文件,必要文件。 |
4 | HDF5 | 1.12.0 | |
5 | Zlib | 1.2.11 | 压缩库,用于编译具有GRIB2功能的WPS |
6 | Parallel-netcd | 1.12.2 | |
7 | OpenMPI | 4.1.0 | 如果您计划并行构建WRF,此库是必要的。如果您的机器没有超过1个处理器,或者如果您不需要使用多个处理器运行WRF,您可以跳过安装MPICH |
8 | LibPng | 1.6.37 | 这是一个压缩库,用于编译具有GRIB2功能的WPS(特别是ungrib) |
10 | Jpsper | 1.900.1 | 这是一个压缩库,用于编译具有GRIB2功能的WPS(特别是ungrib) |
Raster | 用于读取FROM-GLC的tiff文件,进行必要的裁剪、合并以及位置判断等 |
WRF 编译
后期推广
方案部署指南及Workshop
合作伙伴
[TODO] 代码提交 GitLab
FAQ
1. 请问机器学习是否可以用在WRF中?
行业能针对天气预测主要有两种模型,一种是物理模型,另外一种是统计模型。
物理模型:
该模型的原理是首先获得风电场所在地的中尺度天气模式数值天气预报,具体的参数包括风速、风向、湿度、气压等,然后根据风电场所在地型和地表植被等情况进行局地建模,将数值天气预报参数转化为风机所在位置轮毂高度(一般为70m)的风速和风向,最后结合风机的功率曲线,得到风机发电的实时功率预测值。该模型适用于风电场的长期预测和短期预测,不需要风电场历史数据。
统计模型:
统计模型有两种思路: 1) 使用数学模型表达数值天气预报参数(风速、风向、气压和湿度)与风电场发电功率间的函数关系,再根据未来的数值天气预报值,使用该数学模型进行风功率预测; 2)认为风电场历史发电功率数据中已暗含了各种天气因素的影响,因此使用数学模型对历史数据进行学习并外推,从而得到风电功率的预测值。这种模型适用于超短期预测,历史数据越多、越翔实,预测精度越高。
在统计模型中可以使用机器学习。但由于WRF是物理模型预测,所以在本解决方案中无法使用机器学习的算法。
2. 请问WRF on AWS 是否可以移植到SOCA?
正在进行技术上的验证,现在还没有结论。
3. 成本估计
WRF建模系统能够创建理想化的模拟,尽管大多数用户对真实数据案例感兴趣。
静态数据:
要启动真实数据案例,必须创建域在地球仪上的物理位置和该位置的静态信息。这需要一个数据集,包括地形和土地利用类别等领域。这些数据可从WRF下载页面http://www2.mmm.ucar.edu/wrf/users/download/get_sources_wps_geog.html, 所以静态文件的大小首先是需要估计的。静态文件一般保存在Build_WRF
目录中。
静态文件数据集中的文件非常大。如果您在,您可能需要考虑将其放置在集群上共享目录中,以便每个人都可以使用它,并且不需要为每个人下载。
根据链接https://www2.mmm.ucar.edu/wrf/OnLineTutorial/Basics/GEOGRID/ter_data.php,如果下载完全记录集合,大概需要29G的空间进行存储。
实时数据:
对于真实数据情况,WRF模型需要初始条件和横向边界条件的最新气象信息。这种气象数据传统上是一个Grib文件,由之前运行的外部模型或分析提供。对于半操作设置,气象数据通常来自全局模型,该模型允许在全球任何地方定位WRF模型的域。美国国家环境预测中心(NCEP)每天运行四次全球预测系统(GFS)模型(初始化适用于00:00、06:00、12:00和18:00 UTC)。这是一个全局的等压的,0.5度纬度/经度的预测数据集,可以免费获得,通常在初始化时间段后+4小时访问。文件名称一般为 gfs.2019071200/gfs.t00z.pgrb2.0p50.f000 gfs.2019071200/gfs.t00z.pgrb2.0p50.f006 gfs.2019071200/gfs.t00z.pgrb2.0p50.f012
参考
https://workshop-wrf-on-graviton2.s3.cn-northwest-1.amazonaws.com.cn/1.basics.html https://aws.amazon.com/cn/blogs/hpc/numerical-weather-prediction-on-aws-graviton2/ https://www.nag.com/blog/sunny-weather-forecast-arms-cost-solution-cloud-hpc https://community.arm.com/developer/tools-software/hpc/b/hpc-blog/posts/assessing-aws-graviton2-for-running-wrf 中国国家气象科学数据中http://data.cma.cn/site/index.html WRF Free Data http://www2.mmm.ucar.edu/wrf/users/download/free_data.html