资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
天气预报模型:软件体系结构与性能天气预报模型:软件体系结构与性能J. MICHALAKES, J. DUDHIA, D. GILL, T. HENDERSON,J. KLEMP, W. SKAMAROCK, W. WANG中小尺度气象部门,国家大气研究中心,Boulder,美国科罗拉多 803072004 年 5 月第一个非测试版的天气研究和预报(WRF)建模系统是为大气研究和运行 NWP 用户设计和实施全功能的下一代建模系统的一个关键的里程碑社区。以效率,可移植性,可维护性和可扩展性作为基岩需求,WRF 软件框架允许增量和合理的快速开发,同时保持总体一致性和坚持架构及其接口。 WRF 2.0 版本支持该模型设想的全部功能,包括在一系列高性能计算平台,多个动态核心和物理选项上的高效可扩展性能,低开销双向交互嵌套,移动嵌套,模型耦合,以及与其他常见模型基础设施工作(如 ESMF)的互操作性。1.1.介绍介绍WRF 项目已经开发了下一代中尺度预报模型和同化系统,以推进中尺度降水系统的理解和预测,并促进研究和运营预测社区之间的更紧密的联系。随着 2004 年 5 月向社区发布 WRF 2.0 版本,将WRF 建模系统广泛传播给大量用户,并将其应用于各种领域,包括风暴规模研究和预测,空气质量模拟,图 1 WRF 系统示意图野火模拟,飓风和热带风暴预测,区域气候和作战数字天气预报正在良好进行。2004 年年底,注册下载次数超过 2,500 件。来自 20 个国家的 93 个机构的 173 名参与者于 2004 年 6 月在 NCAR 参加了年度 WRF 用户研讨会,并听取了 28 次涉及以 WRF 模式开展工作的科学报告。在 NOAA 国家环境预测中心和美国空军气象局,正在进行 WRF 的运行实施。已经形成了 NOAA / NCAR / DoD 联合发展试验中心,以促进研究界的新发展的持续测试,评估和过渡在 NCEP,AFWA 和美国海军通过在各中心建立的操作测试中心的操作。如图 1 所示,WRF 系统包括 WRF 模型本身,用于为理想化,实数据和单向嵌套预测产生初始和横向边界条件的预处理器,用于分析和可视化的后处理器,以及三维变化数据同化(3DVAR)程序。除了标准初始化(SI)程序之外,每个预处理器和 3DVAR 是使用 WRF 高级软件框架(ASF)实现的并行程序。程序之间的数据流通过 ASF 的 I / O 和模型耦合 API 输入和输出。 WRF 模型(图中的大框)包含两个动态内核,为机构和应用程序提供额外的灵活性。 NCAR 开发的高级研究 WRF(ARW;最初的欧拉质量或“EM”核)使用时分高阶 Runga-Kutta 方法来整合可压缩非静力方程的保守公式16。 ARW 作为 WRF 第 2 版为研究界提供支持,正在美国空军气象局正在运行实施。 NOAA / NCEP 的 WRF的操作实现使用适应于来自非流体静力中尺度模型(NMM)的 WRF ASF 的动力学3 8 9 15。WRF ASF 实现了 WRF 软件架构11,是 WRF 模型和 3DVAR 系统开发的基础。它具有模块化的层次化软件组织,可以将科学代码与并行性以及其他架构,实现和安装相关的问题隔离开来。这种设计对于管理一系列用户,应用程序和平台的单源代码模型的复杂性也至关重要。本文介绍 WRF 软件的实现和性能,包括 WRF 2.0 中提供的新功能:双向交互和移动嵌套,支持模型耦合,以及与新兴社区建模基础设施(如地球系统建模框架)的互操作性。2.2.WRFWRF 高级软件框架高级软件框架WRF ASF 包括多个可分离层和支持组件:驱动器层,中介层,模型层,称为注册表的元编程实用程序,以及用于处理器间通信,数据格式的外部包的应用程序接口(API) I / O。 WRF ASF 的好处是促进快速开发,易于扩展,充分利用 WRF 社区的开发工作,软件重用,以及适应社区模型基础设施(如 ESMF) 。驱动层处理模型域数据结构的运行时分配和并行分解;组织,管理,交互和控制嵌套域,包括模型中的主时间循环;高级别接口到模型域上的 I / O 操作;以及当 WRF 是更大耦合的应用系统的一部分时与其他组件的接口。在驱动程序中,每个域都抽象地表示为单个对象:Fortran90 派生数据类型,包含动态分配的状态数据,指向嵌套层次结构中的其他域。嵌套表示为根源于顶级(最粗糙分辨率)域的域的树。每个模型时间步长涉及递归深度优先遍历这棵树,推进每个节点及其子节点到下一个模型时间。强制,反馈和嵌套移动也在驱动程序中处理。中介层包含单个模型域上的特定动态核心的一个时间步长。动态核心的求解例程包含对模型层例程的完整集合调用以及处理器间通信(晕轮更新,并行转置等)和多线程的调用。当前的 WRF 实现使用 RSL 通信库12,而 RSL 通信库又使用消息传递接口(MPI)通信包。在使用 OpenMP 的求解例程中还规定了片上的共享存储器并行性 - 分布式内存补丁内的第二级域分解。模型层包括构成模型的实际计算例程:平流,扩散,物理参数化等。模型层子程序通过标准模型层接口调用:所有状态数据作为参数,连同正在计算的图块的三个网格维度中的每一个中的起始和结束索引一起被传递。模型层子例程可以不包括 I / O,停止语句,多线程或处理器间通信,确保它们可以针对任何瓦片分解或在瓦片上执行的顺序被连贯地执行。模型层接口是 ASF 与在模型层工作的程序员/科学家之间的合同。遵守接口确保结合到 WRF 中的模型层包将在框架本身被移植到的任何并行计算机上工作。具有数据依赖性的模型层例程依赖于中介层在它们被调用之前执行必要的处理器间通信。程序员通过向注册表添加条目来描述通信类型和模式,然后插入符号以在求解例程中的适当位置执行通信。注册表是关于 WRF 数据结构的信息的简明数据库,以及用于从数据库中的符号自动生成大部分WRF图 2 嵌套分解与通讯代码的机制。注册表数据库是表的集合,列出并描述了 WRF 状态变量和数组及其属性,例如维度,时间级数,与特定动态核心的关联,与特定物理包的关联,输入的成员资格,输出,或重新启动数据集,对数据进行通信操作,以及一些描述性元数据,例如变量或数组表示的内容及其单位。从该数据库,注册表生成用于基础设施的层之间的接口的代码,用于通信和嵌套的打包和解包代码以及对于模型 I / O 代码的例程的逐字段调用,否则将极其耗时并且容易进行手动写入和管理。在 WRF中添加或修改状态变量或数组是在注册表中修改一行或两行的问题。目前,注册管理机构自动生成总共 250 万条 WRF 代码中的 60 万条。外部软件包的 API 也是 WRF 软件框架的一部分。这些允许 WRF 使用不同的软件包用于自描述数据格式,模型耦合工具包和库,以及通过简单地将外部软件包适配到接口来进行处理器间通信的库。清洁 API 还支持在其他方向重用;例如,地球系统建模框架开发人员正在调整 WRF I / O API 以在ESMF 软件中使用。WRF 基础设施的文档,包括注册表的参考文档,WRF I / O 应用程序接口规范以及基于 Web 的WRF 代码和文档浏览器6在线维护。WRF 的其他软件文档正在进行中。3.3.巢和移动巢巢和移动巢嵌套是网格细化的一种形式,其允许将昂贵的较高分辨率计算集中在感兴趣区域上。 WRF 2.0包括对单向和双向交互嵌套域的支持。 WRF 中的嵌套是非旋转和对齐的,使得父网格点与下面的嵌套上的点重合,这消除了对更复杂的广义重新格栅计算的需要。嵌套配置在运行时通过名称列表指定。 WRF ASF 支持在模拟期间的任何时间创建和删除嵌套,但是如果运行需要嵌套分辨率地形或其他下边界数据的输入,则 WRF 模型当前被限制为开始嵌套;这个限制将在不久的将来得到解决。巢可以伸缩(嵌套在巢内)到任意水平的细化水平。垂直细化尚未实现。精化比是整数,通常为 1:3。在 2.0.3 版本中发布了移动嵌套的原型实现。这个版本用于 4 公里移动巢模拟飓风伊万(2004 年 9月) 。可以在线查看动画。高效和可扩展的嵌套实现是一个关键问题。嵌套模拟中的所有域都在同一组进程上分解,嵌套域与父进程同步运行。交换强制和反馈信息需要通信以在每个父时间步骤中跨进程散布和收集数据。此外,父域数据到嵌套点的插值是负载不平衡的,因为它仅在父域和嵌套共享的域的区域上发生。这通过首先将父域数据重新布置到存储对应的嵌套域点的过程而被部分地减轻,允许在本地和在更大数量的过程上执行内插。图 2 示出了覆盖嵌套边界(包括用于西北巢角的“a”和“b” )的过程的父域数据被传送到计算嵌套边界(包括过程“c” )的过程。通过同一组进程) 。在重排父域数据之后,在嵌套边界处理上局部地执行父 - 嵌套网格插值。嵌套开销通过将同等大小的父域和嵌套域运行为双向交互域,然后分别作为独立的单域运行来衡量。嵌套的开销在 5和 8之间,取决于过程的数量,以及在并行 MM5 模型中观察到的 15开销的目标内。大多数开销出现与内插的成本相关,其使用相对昂贵的非线性算法。移动嵌套的方法与双向嵌套相同,一些额外的逻辑添加到框架和模型代码:1.确定是否是移动的时间,如果是,移动的方向和距离。2.调整嵌套点上的点与父域上的对应点之间的关系。3.在嵌套移动的相反方向上在嵌套的 2 维和 3 维状态数组中移动数据。4.当嵌套移动到相对于父域的新位置时,初始化嵌套的前边缘。在上述步骤 1 中需要另外的工作以结合自动特征跟随嵌套移动机制,并且在步骤 4 中允许运行时间摄取嵌套分辨率下边界数据,例如在移动的前边缘上的地形和土地利用巢。最后,将解决将移动耦合到诸如海洋模型的外部模型的问题。4.I4.I / / O O 和型号耦合和型号耦合WRF ASF 中的 I / O 和模型耦合 API 在 WRF 模型和用于 I / O 和数据格式化的外部软件包之间提供了一个统一的,与软件包无关的接口。用于 NetCDF,并行 HDF5,本地二进制和 GRIB1 I / O 的API 的实现可运行时分配给框架的 I / O 流.WRF I / O 和模型耦合 API 也支持模型耦合,在5 6下和 PRISM 耦合框架7中完善的一个想法。 “耦合作为 I / O”是有吸引力的,因为它允许在已经存在用于 I / O 的模型的控制结构和接口内封装组件数据交换的细节。它需要对模型本身很少(如果有的话)修改,它容易且有效地适应于不同形式的耦合(顺序或并行) ,它可以在在线和离线模式之间透明地(从应用的角度)切换,耦合,并且它自然地适合于诸如网格计算的分布式计算环境。已经开发了 WRF I / O 和模型耦合 API 的两个模型耦合实现:模型耦合工具包(MCT)10是社区气候系统模型(CCSM)耦合器的基础;模型耦合环境库(MCEL)2是基于 CORBA 的基于客户端 - 服务器的耦合框架。图 3 黄海模拟的耦合图显示 WRF(大气) ,ADCIRC(海洋环流) ,SWAN(波模型)和 LSOM(沉积物光学) 。 WRF 的 U 和 V 速度为空气; U 和来自 ADCIRC 的是水。WRF I / O 和模型耦合 API 的 MCT 实现支持对 WRF 和区域海洋建模系统(ROMS)之间紧密耦合到适度耦合的相互作用的边界条件的定期,计划的交换。 WRF 风应力和热通量被发送到海洋模型,并且从 ROMS 接收海表面温度。执行 WRF / ROMS 耦合的三个性能基准,并且耦合开销是标称的,远低于耦合系统的总运行时间的 1。耦合的 WRF / ROMS 系统已被用于后续的科学研究,涉及14中描述的理想化的飓风涡流。 WRF / ROMS MCT 实现已经在 Globus 工具包中的 MPICH-G2 库在基本的计算网格上进行了演示.1 ROMS 在西雅图 NOAA 太平洋海洋环境实验室(PMEL)的一个 Intel Linux 节点上运行; WR
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号