数值预报的实现方法及实现系统技术领域
本发明涉及计算机领域,具体来说,涉及一种数值预报的实现方法及实现系统。
背景技术
数值预报是在大气、海洋的物理化学规律基础上,利用计算机进行数值模拟,研究
未来一段时间内大气、海洋的变化规律的一种方法,在气象、海洋、环境、民航、新能源等领
域数值预报都具有广泛的应用。
数值预报的核心是一套数值模式系统,一般包含数据准备和预处理、数值预报主
模式计算,计算结果的后处理等流程。具体来讲,数据准备和预处理流程用于自动下载或收
集数值模式启动所需要的各类原始数据,包括背景场资料、常规观测监测数据,以及卫星、
雷达、自动站、交通工具监测数据等;收集到这些数据后,需要使用各类专用的软件工具按
照数值模式要求的格式进行存放、转换、格式化等预处理过程,以作为后续数值模式计算的
输入条件。数值预报主模式计算流程用于设置数值模式的模拟区域和各类物理化学参数方
案,以前序输入数据作为初始条件和边界条件,对大气海洋的时空变化进行数值模拟和计
算,得到未来一段时间内大气海洋的物理化学状态。计算结果的后处理流程用于预报模式
完成计算后,一般以二进制等方式存储计算的结果,无法直观地看到模拟效果,需要对计算
结果进行进一步的分析和处理,提取所需要的结果数据,并以表格、图片、GIS等方式展示出
来。
数值模式多在类Unix操作系统平台下利用C语言或Fortran语言开发,一般使用
MPI(Message Passing Interface,消息传递接口)并行编程方法。整套模式系统的运行依
赖一套批处理脚本(如Shell、Perl、Python等)控制。从数据准备到结果生成,均需要整套脚
本在后台定时自动启动,并在规定时间生成预报的结果。数值预报作为气象、海洋等部门的
生产系统,对系统运行的稳定性、可靠性、时效性有着严格的要求。但由于数值模式系统本
身的专业性强、且数据和流程复杂,因此需要专业的气象研究人员进行搭建和维护。而多数
专业的气象研究人员对于高性能计算机软硬件环境不够熟悉,在搭建和维护数值预报系统
时会遇到很多困难。
传统的执行方式存在脚本编写复杂、混乱和维护不便的问题:
一方面,编写一个能够稳定运行的数值预报脚本,需要掌握数值模式的计算流程,
还需要熟悉Linux操作系统基本操作、Shell脚本语言、常用的文本编辑和字符处理工具、
MPI环境的调用、作业调度软件的使用等知识,这通常需要花费很长时间。由于每个人的编
程习惯、水平不同,经常导致只有极少数人能够去维护或修改。
另一方面,由于数值预报的控制脚本多为后台自动启动,非精通脚本和系统的人
员只能通过人工查看每天有没有结果生成来判断系统是否正常运行;一旦出现软硬件故
障,需要分析脚本的运行日志定位故障原因,故障处理后重新启动计算,花费的时间往往非
常长,严重甚至会导致当天的业务失败,带来无法预计的后果。
针对相关技术中脚本编写复杂、混乱和维护不便的问题,目前尚未提出有效的解
决方案。
发明内容
针对相关技术中脚本编写复杂、混乱和维护不便的问题,本发明提出一种数值预
报的实现方法,能够提高数值预报生产系统的效率和稳定性,降低应用难度,便于监控和维
护。
本发明的技术方案是这样实现的:根据本发明的一个方面,提供了一种数值预报
的实现方法。
该数值预报的实现方法包括:根据数值预报的计算流程的需要,将计算流程分解
为具有特定属性的计算子单元;根据计算子单元的特定属性,调用相应的API以生成数值预
报子流程;自动运行数值预报子流程并得到计算结果。
优选地,还包括:调用可视化界面,对数值预报子流程及其计算结果进行监控。
优选地,还包括:当数值预报子流程的计算结果错误时,给出告警信息。
优选地,在根据计算子单元的特定属性,调用相应的API以生成数值预报子流程之
后,还包括:对数值预报子流程的进行检查以确定数值预报子流程能够正常运行。
优选地,计算子单元的特定属性包括:启动时间、与其他计算子单元的相关性、和
申请计算资源数量。
优选地,在自动运行数值预报子流程并得到计算结果之前,还包括:设置数值预报
子流程的启动时间。
优选地,还包括:设置安全操作规则,且不执行违反安全操作规则的指令。
根据本发明的一个方面,提供了一种数值预报的实现系统。
该数值预报的实现系统包括:预处理模块,用于将计算流程分解为具有特定属性
的计算子单元;API库模块,用于存储API;调用模块,用于调用相应的API并生成数值预报子
流程;运行模块,用于运行数值预报子流程并得到计算结果。
优选地,还包括:可视化模块,用于对数值预报子流程及其计算结果进行监控。
本发明通过根据数值预报计算流程的需要调用相应的API,实现了快速构建可投
入实时运行的数值预报生产系统,提高了构建数值预报生产系统的效率,降低了应用难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
图1是根据本发明实施例的数值预报的实现方法的流程图;
图2是根据本发明实施例的数值预报的实现系统的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的
范围。
根据本发明的实施例,提供了一种数值预报的实现方法。
如图1所示,根据本发明实施例的数值预报的实现方法包括以下步骤:
步骤S101,根据数值预报的计算流程的需要,将计算流程分解为具有特定属性的
计算子单元;
步骤S103,根据计算子单元的特定属性,调用相应的API(Application
Programming Interface,应用程序编程接口)以生成数值预报子流程;
步骤S105,自动运行数值预报子流程并得到计算结果。
用户可以根据数值预报生产系统的流程需要,调用相应的API对数据预报子流程
进行自定义,实现快速构建可投入实时运行的数值预报生产系统,更容易的完成数值预报
生产系统的搭建。
在一个实施例中,在步骤S105之后还包括:调用可视化界面,对数值预报子流程及
其计算结果进行监控。
在一个实施例中,还包括:当数值预报子流程的计算结果错误时,给出告警信息。
当数值预报生产系统开始自动运行后,用户可以通过调用可视化界面监控数值预
报子流程和数值预报生产系统的运行状况,当数值预报子流程的计算结果出现错误时,可
通过可视化界面给出相应的告警信息。
在一个实施例中,在步骤S103之后,还包括:对数值预报子流程的进行检查以确定
数值预报子流程能够正常运行。
在一个实施例中,计算子单元的特定属性包括:启动时间、与其他计算子单元的相
关性、和申请计算资源数量。
进一步地,在步骤S105之前,还包括:设置数值预报子流程的启动时间。
对数值预报子流程进行正确性检查,正确性检查通过即可进入自动运行状态,用
户只需要设置数值预报生产系统的每次启动时间的信息即可。
在一个实施例中,还包括设置安全操作规则,且不执行违反安全操作规则的指令。
这就可以在很大程度上避免影响数值预报生产系统稳定的非法操作,提高了数值预报生产
系统的稳定性。
根据本发明的实施例,还提供了一种数值预报的实现系统。
如图2所示,根据本发明实施例的数值预报的实现系统包括:
预处理模块21,用于将计算流程分解为具有特定属性的计算子单元;
API库模块22,用于存储API;
调用模块23,用于调用相应的API并生成数值预报子流程;
运行模块24,用于运行数值预报子流程并得到计算结果。
在一个实施例中,还包括:可视化模块,用于对数值预报子流程及其计算结果进行
监控。
综上所述,借助于本发明的上述技术方案,通过根据数值预报计算流程的需要调
用相应的API,实现了快速构建可投入实时运行的数值预报生产系统,提高了构建数值预报
生产系统的效率,降低了应用难度;通过调用可视化界面,实现了对数值预报生产系统的可
视化监控;还通过设置安全操作规则且不执行违反安全操作规则的指令,避免了影响系统
稳定或安全的非法操作,使系统能够具有较高的稳定性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。