本发明专利技术提供一种数值应用程序的软件模块集成系统及运行方法,该系统包括:外部过程资源管理模块,用于外部过程的程序到动态链接库的编译;外部过程运行驱动管理模块,用于使数值应用程序能调用外部过程;外部过程参数信息管理模块,用于使外部过程能获取数值应用程序的信息;外部过程线程级并行管理模块,用于将多个外部过程组合为具有程序流程的外部过程包,并实现不同外部过程间的线程级并行;外部过程数据交换管理模块,用于数值应用程序与外部过程间数据导入与导出的操作;外部过程集成应用程序接口模块;外部过程集成配置文件接口模块。通过建立具有不同数据结构的外部过程的统一集成框架,实现不同外部过程间的线程级并行。
A software module integration system of numerical application program and its running method
【技术实现步骤摘要】
一种数值应用程序的软件模块集成系统及运行方法
本专利技术涉及软件模块集成
,具体涉及一种数值应用程序的软件模块集成系统及运行方法。
技术介绍
地球系统模式是气候演变规律研究、未来气候预测和无缝隙数值预报等所不可或缺的数值应用程序,由分别模拟大气、陆面、海洋和海冰等地球系统圈层的分量模式构成。经过近几十年的努力,地球系统模式得到了不断进步,其程序量已突破了百万行,这使得地球系统模式的发展,不仅涉及到如何理解与求解各圈层内部及圈层之间的各种机理与机制等科学问题,还涉及到如何进行程序开发、软件测试与软件模块集成的技术与工程问题。位于地球系统模式架构中心位置的耦合器,是支撑地球系统模式软件模块化集成的一个关键基础平台,其连接着多个分量模式以构成地球系统模式,在科学上通过分量模式间的通量交换来实现圈层间的相互作用,在技术上实现各分量模式之间的链接,协调各分量模式的并行计算,并控制着整个地球系统模式的积分。已有耦合器主要包括法国的OASIS,美国的MCT、FMS、ESMF、CPL,中国的C-Coupler。耦合器主要负责分量模式到耦合模式的模块化集成。随着科学与技术的快速发展,人类所关注甚至已厘清的机理与机制越来越多,各分量模式的程序也变得更加复杂,例如有些大气模式内物理过程的代码量已突破了50万行,这使得需要进一步考虑如何实现一个分量模式内的模块化集成。大气模式(包含数值天气预报模式)主要由动力框架与物理过程组成,其中动力框架负责求解整个三维大气的动力方程,而物理过程则由一系列通常仅在垂直方向上进行求解的参数化方案组成。为了便捷集成物理参数化方案,通常需要为物理过程设计统一的数据结构以存储各物理量,例如常规的三维数据结构或优先考虑垂直方向的单柱数据结构(如图1所示,左侧为三维数据结构,右侧为单柱数据结构,这两种数据结构可以相互转换)。对于一个三维物理量,当采用三维数据结构时,一个MPI进程通常只为其分配一个三维数组,而当采用单柱数据结构时,一个MPI进程会为其分配多个独立的数组,每个数组存储一个或多个单柱。当前,WRF(TheWeatherResearchandForecastingModel,天气预报模式)与GRAPES等大气模式的物理过程采用了三维数据结构,而CAM(CommunityAtmosphereModelVersion)等大气模式的物理过程采用了单柱数据结构。与三维数据结构相比,单柱数据结构能加快处理器对存储于内存中的物理量的访问,并能更好地解决物理过程的OpenMP加速与单柱间计算负载不平衡问题,从而提高物理过程的计算效率。在向物理过程中集成参数化方案时,需要确保两者数据结构的一致性,当存在不同时,通常需要对参数化方案进行修改。例如,当把基于单柱数据结构发展的参数化方案集成进采用三维数据结构的物理过程时,首先需要将参数化方案程序所使用的数据结构从单柱方式修改为三维方式。随着物理过程中集成的参数化方案越来越多,特别是集成了同一功能的不同参数化方案以供用户选择使用(例如WRF模式,TheWeatherResearchandForecastingModel,即天气预报模式)提供了多个对流参数化方案以供选择使用与性能对比等),需要面向物理过程实现参数化方案的模块化集成与便捷选择。为了实现这两项功能,美国的DTC与NCAR联合研制了CCPP(即通用公共物理包)框架。CCPP框架基于统一的单柱数据结构,建立了参数化方案驱动程序的统一规范,管理了物理过程的公共变量,建立了参数化方案间基于共享公共变量的参数传递方式,采用了动态链接库技术来集成参数化方案,并设计了能便捷选择使用参数化方案配置文件接口。已有的绝大多数参数化方案仅在垂直方向上进行求解,是因为大气模式的模式高度明显小于水平格距。但随着模式高度和分辨率的不断提升,出现了模式高度明显大于水平格距的情况,倘若仍仅在垂直方向上进行求解,参数化方案所带来的误差将会明显增大,因此需要发展在整个三维空间上进行求解的参数化方案,如三维短波辐射、三维边界层方案等,而物理过程的发展也将面临需要同时集成单柱和三维参数化方案的需求。CCPP框架作为当前最新的相关工作,尚不能应对这一需求。
技术实现思路
本专利技术提供一种数值应用程序的软件模块集成系统及运行方法,建立具有不同数据结构的外部过程的统一集成框架,实现不同外部过程间的线程级并行,并完成数值应用程序与外部过程间数据导入与导出。本专利技术的技术方案如下:第一方面,本专利技术提供一种数值应用程序的软件模块集成系统,所述软件模块为所述数值应用程序的外部过程,所述外部过程的用于存储变量的数据结构有多种,所述数值应用程序的软件模块集成系统,包括:外部过程资源管理模块,用于完成外部过程的程序到动态链接库的编译;外部过程运行驱动管理模块,用于使数值应用程序能调用外部过程;外部过程参数信息管理模块,用于使外部过程能获取数值应用程序的信息;外部过程线程级并行管理模块,用于将多个外部过程组合为具有程序流程的外部过程包,并实现不同外部过程间的线程级并行;外部过程数据交换管理模块,用于数值应用程序与外部过程间数据导入与导出的操作;外部过程集成应用程序接口模块,用于提供用于外部过程集成的应用程序接口;以及外部过程集成配置文件接口模块,用于制定构建外部过程配置信息的文件格式。更进一步地,所述动态链接库包括一个或多个外部过程。更进一步地,所述外部过程运行驱动管理模块,还用于:将外部过程的运行分为启动阶段、执行阶段、结束阶段;在所述启动阶段,使数值应用程序加载所述外部过程所在的动态链接库并调用所述外部过程的启动驱动函数;在所述执行阶段,调用所述外部过程的执行驱动函数;在所述结束阶段,调用所述外部过程的结束驱动函数。更进一步地,所述数值应用程序的信息,包括:所述数值应用程序所使用的MPI进程、网格、并行剖分、计时器、控制变量以及与外部过程对接的对接变量。更进一步地,所述外部过程参数信息管理模块,还用于:使外部过程在启动时动态声明外部过程的输入变量与输出变量,并使得所述外部过程的任一输入变量或任一输出变量能够使用外部过程的存储空间或共享数值应用程序相应的对接变量的存储空间。更进一步地,所述外部过程线程级并行管理模块在实现不同外部过程间的线程级并行时,同时并行运行不同外部过程的线程数相同或不同。更进一步地,所述用于外部过程集成的应用程序接口,包括:数值应用程序启动、执行与结束外部过程的应用程序接口,外部过程获取数值应用程序的信息的应用程序接口,以及外部过程声明输入变量与输出变量的接口。更进一步地,所述外部过程数据交换管理模块,还用于:自动检测数值应用程序与外部过程间需要导入和导出的数据,自动完成数据导入或导出过程中所需的操作。更进一步地,所述数据导入或导出过程中所需的操作,包括:MPI进程间的数据通信、不同网格间的数据插值、同一MPI进程内的数据拷贝、根据网格维度顺序变换的本文档来自技高网...
【技术保护点】
1.一种数值应用程序的软件模块集成系统,所述软件模块为所述数值应用程序的外部过程,其特征在于,所述外部过程的用于存储变量的数据结构有多种,所述数值应用程序的软件模块集成系统,包括:/n外部过程资源管理模块,用于外部过程的程序到动态链接库的编译;/n外部过程运行驱动管理模块,用于使数值应用程序能调用外部过程;/n外部过程参数信息管理模块,用于使外部过程能获取数值应用程序的信息;/n外部过程线程级并行管理模块,用于将多个外部过程组合为具有程序流程的外部过程包,并实现不同外部过程间的线程级并行;/n外部过程数据交换管理模块,用于数值应用程序与外部过程间数据导入与导出的操作;/n外部过程集成应用程序接口模块,用于提供用于外部过程集成的应用程序接口;以及/n外部过程集成配置文件接口模块,制定构建外部过程配置信息的文件格式。/n
【技术特征摘要】
1.一种数值应用程序的软件模块集成系统,所述软件模块为所述数值应用程序的外部过程,其特征在于,所述外部过程的用于存储变量的数据结构有多种,所述数值应用程序的软件模块集成系统,包括:
外部过程资源管理模块,用于外部过程的程序到动态链接库的编译;
外部过程运行驱动管理模块,用于使数值应用程序能调用外部过程;
外部过程参数信息管理模块,用于使外部过程能获取数值应用程序的信息;
外部过程线程级并行管理模块,用于将多个外部过程组合为具有程序流程的外部过程包,并实现不同外部过程间的线程级并行;
外部过程数据交换管理模块,用于数值应用程序与外部过程间数据导入与导出的操作;
外部过程集成应用程序接口模块,用于提供用于外部过程集成的应用程序接口;以及
外部过程集成配置文件接口模块,制定构建外部过程配置信息的文件格式。
2.根据权利要求1所述的数值应用程序的软件模块集成系统,其特征在于,所述动态链接库包括一个或多个外部过程。
3.根据权利要求1所述的数值应用程序的软件模块集成系统,其特征在于,所述外部过程运行驱动管理模块,还用于:
将外部过程的运行分为启动阶段、执行阶段、结束阶段;
在所述启动阶段,使数值应用程序加载所述外部过程所在的动态链接库并调用所述外部过程的启动驱动函数;
在所述执行阶段,调用所述外部过程的执行驱动函数;
在所述结束阶段,调用所述外部过程的结束驱动函数。
4.根据权利要求1所述的数值应用程序的软件模块集成系统,其特征在于,所述数值应用程序的信息,包括:
所述数值应用程序所使用的MPI进程、网格、并行剖分、计时器、控制变量以及与外部过程对接的对接变量。
5.根据权利要求1所述的数值应用程序的软件模块集成系统,其特征在于,所述外部过程参数信息管理模块,还用于:
使外部过程在...
【专利技术属性】
技术研发人员:刘利,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。