CN111984916B - 一种数理方程解算构件及并行软件研发方法与系统 - Google Patents
一种数理方程解算构件及并行软件研发方法与系统 Download PDFInfo
- Publication number
- CN111984916B CN111984916B CN202011070229.4A CN202011070229A CN111984916B CN 111984916 B CN111984916 B CN 111984916B CN 202011070229 A CN202011070229 A CN 202011070229A CN 111984916 B CN111984916 B CN 111984916B
- Authority
- CN
- China
- Prior art keywords
- numerical
- unit
- mathematical equation
- physical
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本文涉及高性能数值模拟技术领域,尤其涉及一种数理方程解算构件及并行软件研发方法与系统。其中数理方程解算构件基于并行计算构件研发,并通过数理方程解算构件接口将物理建模插件单元,工程模板插件单元,数值离散解算单元三类单元隔离,实现并行数值模拟软件研发的复杂度降低的目的。
Description
技术领域
本文涉及高性能数值模拟技术领域,尤其涉及一种数理方程解算构件及并行软件研发方法与系统。
背景技术
高性能数值模拟是科学研究和工程设计的必要研究手段,并行软件是高性能数值模拟的工具。并行软件自主研发需要工程(业务)建模、物理(科学)建模、数值(离散)算法和大规模并行计算等方面的多学科协同,其中,工程建模可能涉及流体、结构、振动、冲击、电磁、辐射、化学、燃烧、传热等多个工程学科分支,物理建模大多涉及物理机理、材料物性、本构关系等多个基础学科分支,数值算法包含求解不同类型数理方程的数值离散格式,大规模并行计算通常包含适配于不同类型体系结构高性能计算机的大规模并行算法和性能优化方法。由此,并行软件自主研发复杂度可以用描述,其中,L表示工程建模复杂度,M表示物理建模复杂度,N表示数值算法复杂度,J表示并行算法和性能优化复杂度。随着实际应用的日趋复杂,多学科协同也日趋紧密,L、M、N和J持续增长,软件研发复杂度越来越大,严重制约并行软件自主研发水平的提升,从而反过来制约多学科协同和求解实际应用问题的能力提升。
ANSYS是现有技术中广泛使用的商业CAE软件,采用了如下技术方案实现结构、流体、电磁等工程学科并行软件的研发:
软件开放二次开发编程接口,并提供相应的二次开发工具,支持用户自定义材料性质、单元类型、失效准则等。通过连接自己的FORTRAN程序,用户可以生成一个定制的ANSYS程序实例。
通过ANSYS Workbench、MPCCI等工具,屏蔽内部学科软件的数值计算和不同学科软件之间的数据场传输,支持用户快速定制工程业务个性的序贯分析多学科协同计算流程。
但是上述现有技术中二次开发接口通常与有限元或有限体积等单一的数值算法绑定,不具备普适性,无法支持新数值方法的扩展和适配。
ANSYS多学科协同计算效率低。主要原因在于各个工程学科分支的数值模拟软件独立开发、独立运行,缺乏一体化无缝对接的数据结构,各个学科分支之间需要进行数据转换才能实现协同。
各工程学科分支数理方程软件大多经历了长期的发展,集成了大量的创新研究成果,数据结构和并行算法与现代超级计算机体系结构缺乏协同设计,大多缺乏现代超级计算机和微处理器体系结构的针对性设计,需要重构。然而,这些软件代码量巨大,重构代价大、周期长,多学科协同的代码实现复杂度很难在短期内得到大幅降低。
如何解决现有技术超级计算并行软件研发的高复杂度是亟需解决的问题。
发明内容
本文实施例提供了一种数理方程解算构件及并行软件研发方法与系统,用于解决现有技术中数值模拟领域研发复杂度高,效率低的问题。
本文实施例提供了一种数理方程解算构件,包括,
数理方程解算构件接口,数据分布存储单元,自适应适配单元,数值离散解算单元,并行计算构件单元;
所述数理方程解算构件接口,连接所述数据分布存储单元、自适应适配单元以及数值离散解算单元,用于基于数理方程定解问题,接收外部输入的数值数据和数值数据计算方法,将所述数值数据和数值数据计算方法传输给所述数值离散解算单元,并将所述数值离散解算单元进行数值计算后得到的数值解输出;
所述数据分布存储单元,用于在进程的私有内存空间存储外部数据场和内部数据场;其中,外部数据场指通过数理方程解算构件接口从外部接收的物理场数值数据,内部数据场指数值离散解算单元在数值求解过程中产生的物理场数值数据;
所述自适应适配单元,用于根据数理方程定解问题的问题特征参数数据,自适应地选配适配的数值离散解算单元;
所述数值离散解算单元,用于根据数理方程定解问题的控制方程数值离散算法,结合所述自适应适配单元提供的选配信息以及所述数理方程解算构件接口提供的数值数据以及数值数据计算方法进行数值并行计算;
所述并行计算构件单元,用于将所述数值离散解算单元进行数值并行计算所依赖的其他进程的数值数据存储于本地进程。
本文实施例还提供了一种生成如上述数理方程解算构件的方法,
生成数理方程解算构件接口,根据数理方程定解问题,接收外部输入的数值数据和数值数据计算方法,将所述数值数据以及数值数据计算方法传输给数值离散解算单元,并将所述数值离散解算单元进行数值计算后得到的数值解输出;
生成所述数据分布存储单元,在进程的私有内存空间存储外部数据场和内部数据场;
生成多个数值离散解算单元,每个数值离散解算单元针对数理方程的控制方程提供一种数值离散算法,并结合所述数理方程解算构件接口提供的数值数据和数值数据计算方法进行数值并行计算;
生成并行计算构件单元,用于将所述数值离散解算单元进行数值并行计算所依赖的其他进程的数值数据存储于本地进程;
生成自适应适配单元,根据数理方程定解问题的问题特征参数数据,自适应地选配适配的数值离散解算单元。
本文实施例还提供了一种基于上述数理方程解算构件的数值模拟并行软件开发方法,包括,
根据工程应用数值模拟对象涉及的物理过程,确定每个物理过程对应的数理方程定解问题;
根据所述数理方程定解问题的控制方程、物理模型以及定解条件,实例化数理方程解算构件;
调度多个实例化的数理方程解算构件之间的数值数据的传递,完成由多个实例化数理方程解算构件组成的数值模拟并行软件。
本文实施例还提供了一种基于上述数理方程解算构件的数值模拟并行软件开发系统,包括,
数理方程解算构件库,其中包括多个对应于不同控制方程的数理方程解算构件;
插件库,其中包括针对于不同物理模型以及不同定解条件的插件单元;
并行计算框架,用于向在工程应用数值模拟对象的数值计算中所涉及的多个数理方程解算构件提供并行计算支持。
本文实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本文实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述的方法。
通过本文实施例中的数理方程解算构建,可以实现工程建模、物理建模、数值算法和大规模并行计算等四类软件模块的解耦研发,将多学科协同自主研发复杂度从降低到线性复杂度O(L)+O(M)+O(N)+O(J),从而可以为多学科协同提供有效的软件设计方法支撑,也可以为多学科协同奠定坚实的软件实现技术基础。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本文实施例提出的一种数理方程解算构件结构示意图;
图2所示为本文实施例数理方程解算构件的具体结构图;
图3所示的本文实施例插件计算接口的结构示意图;
图4所示为本文实施例数值离散解算接口的结构示意图;
图5所示为本文实施例数理方程解算构件的生成方法流程图;
图6所示为本文实施例一种基于数理方程解算构件的数值模拟并行软件开发方法的流程图;
图7所示为本文实施例生成实例化数理方程解算构件的流程图;
图8所示为本文实施例一种基于数理方程解算构件的数值模拟并行软件开发系统的结构图;
图9所示为本文实施例不可压流体N-S数理方程解算构件生成方法的流程图;
图10所示为本文实施例针对N-S数理方程的数理方程解算构件接口的结构示意图;
图11所示为本文实施例的各插件单元与N-S数值解算单元之间的调用数据流模型;
图12所示为本文实施例圆柱绕流不可压流体的数理方程解算构件的数值模拟并行软件开发方法流程图。
【附图标号说明】
101、数理方程解算构件接口;
1011、方程配置接口;
1012、方程解算接口;
102、数据分布存储单元;
103、物理建模插件单元;
104、工程模板插件单元;
105、自适应适配单元;
106、数值离散解算单元;
107、并行计算构件单元;
108、插件计算接口;
1081、输出场;
1082、输入场;
1083、接口类型;
109、数值离散解算接口;
1091、输入接口;
1092、输出接口;
110、自适应适配接口;
1101、输入接口;
1102、输出接口;
801、数理方程解算构件库;
802、插件库;
8021、物理模型库;
8022、工程模板库;
803、并行计算框架。
具体实施方式
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
数值模拟并行软件自主研发的高复杂度已经成为制约超级计算应用水平提升的关键瓶颈。数理方程定解问题的并行解算是数值模拟并行软件研发的核心。所谓数理方程定解问题,包括控制方程、物理模型和定解条件。其中,数理方程定解问题可以根据数值模拟对象多种多样;控制方程刻画领域普适的基本物理定律,多个数理方程定解问题对应某个特定的控制方程,例如流体Euler方程、结构动力学方程等;物理模型建模特殊规律,包括状态方程、物性模型、断裂模型、燃烧模型、源项模型等;定解条件涉及工程建模,用于确定初边值条件。数理方程定解问题的并行解算涉及数值离散算法和大规模并行计算。对此,如图1所示为本文实施例提出的一种数理方程解算构件结构示意图,通过该解算构件可以解耦工程建模、物理建模、数值算法和大规模并行计算等四个类别的软件模块研发,将多学科协同自主研发复杂度从降低到线性复杂度O(L)+O(M)+O(N)+O(J),从而可以为多学科协同提供有效的软件设计方法支撑,也可以为多学科协同奠定坚实的软件实现技术基础。
不失一般性,数理方程定解问题的控制方程可形式化表达为:
对任意给定的控制方程F,其数理方程解算构件具体包括,数理方程解算构件接口101,数据分布存储单元102,自适应适配单元105,数值离散解算单元106以及并行计算构件单元107;
其中,所述数理方程解算构件接口101,连接所述数据分布存储单元102、自适应适配单元105以及数值离散解算单元106,用于接收外部输入的数值数据和数值数据计算方法,将所述数值数据和数值数据计算方法传输给所述数值离散解算单元106,并将所述数值离散解算单元106进行数值计算后得到的数值解输出;
所述数据分布存储单元102,用于在进程的私有内存空间存储外部输入的物理场数值数据和数值离散解算单元在数值求解过程中产生的物理场数值数据;
其中,所述数值数据包含数据场和计算参数,所述数据场包含离散网格和定义在网格上的物理量值,依据离散网格在各个进程之间的区域剖分,分布存储在相应进程的私有内存空间;计算参数包含独立于离散网格的控制参数和物理参数,计算参数通常由各个进程共享。
所述自适应适配单元105,用于根据所述数理方程定解问题的问题特征参数数据选配满足离散精度的数值离散解算单元106;
所述数值离散解算单元106,用于根据数理方程定解问题的控制方程数值离散算法,结合所述自适应适配单元105提供的选配信息以及所述数理方程解算构件接口101提供的数值数据以及数值数据计算方法进行数值并行计算;
还包括并行计算构件单元107,用于将所述数值离散解算单元进行数值并行计算所依赖的其他进程的数值数据存储于本地进程。
作为本文实施例的一个方面,如图2所示为本文实施例数理方程解算构件的具体结构图,该解算构件还包括工程物理插件单元,根据所述数理方程定解问题的物理模型和定解条件,通过所述数理方程解算构件接口101向所述数值离散解算单元106提供相关物理场的数值数据计算方法。
所述工程物理插件单元进一步包括,物理建模插件单元103和工程模板插件单元104。
所述物理建模插件单元103,用于根据数理方程定解问题的物理模型向所述数值离散解算单元106提供相关物理场(关联场)数值数据的计算方法;
所述相关物理场数值数据的计算方法通常依赖于坐标和其他物理场,物理建模插件单元103需要从数值离散解算单元106接收坐标和其他物理场的数值数据,再计算返回相关物理场的数值数据;
所述工程模板插件单元104,用于根据数理方程定解问题的定解条件向所述数值离散解算单元106提供相关物理场(基本场)的初边值数据计算方法;
所述相关物理场的初边值算法有时依赖于坐标和其他物理场,工程模板插件单元104需要从数值离散解算单元106接收坐标和其他物理场数值数据,再计算返回相关物理场的初边值数据。
所述数值离散解算单元106根据控制方程F的某种数值离散算法,独立地对本地进程的网格、网格上的相关物理场的数值数据进行数值计算,并将数值计算后的数值解传送给数理方程解算构件接口101进行输出。
当所述数值离散解算单元106需要对本地进程相关物理场的初边值数据进行计算时,通过调用工程模板插件单元104完成计算;其中,若工程模板插件单元104需要依赖外部数据场,则数值离散解算单元106从数理方程解算构件接口101接收相关外部数据场,经过必要的计算处理后传递给工程模板插件单元104。当所述数值离散解算单元106需要对本地进程相关物理场的数值数据进行计算时,通过调用物理建模插件单元103完成计算;其中,若物理建模插件单元103需要依赖外部数据场,则数值离散解算单元106从数理方程解算构件接口101接收相关外部数据场,经过必要的计算处理后传递给物理建模插件单元103。
作为本文实施例的一个方面,所述数理方程解算构件接口101还包括插件计算接口108连接于所述工程物理插件单元,该插件计算接口108包括,
输出场1081,用于从所述工程物理插件单元向所述数值离散解算单元106输出相关物理场的数值数据;
输入场1082,用于从所述数值离散解算单元106向所述工程物理插件单元输入任意依赖场的数值数据;其中,所述依赖场指所述工程物理插件单元计算所述相关物理场时所依赖的物理场;
接口类型1083,用于指示所述输出场1081和所述输入场1082的数值数据的具体形式。
在本实施例中,输入场1082,输入的数值数据可以是任意依赖场,个数可调;所述任意依赖场,可以是控制方程中的任意相关物理场(包括任意基本场或任意关联场),也可以是出现在数理方程解算构件接口101中的任意外部数据场,还可以是这些相关物理场或外部数据场的导数场。
接口类型1083,为输出场1081和输入场1082定义接口的具体形式,分为单点型计算接口和区域型计算接口两类。
其中,所述单点型计算接口,用于支持将单点计算函数封装为插件单元,一次计算只输入输出一个空间点上的输出场1081和输入场1082的数值数据。所述区域型计算接口,用于支持将区域计算函数封装为工程物理插件单元,一次计算输入输出一个空间区域上的输出场1081和输入场1082的数值数据,且这些数值数据遵循统一的数据结构规范,储存于数据分布储存单元。
所述单点型计算接口适用于如下特征的物理模型或定解条件:
所述区域型计算接口适用于建模为其他学科数理方程的物理模型或定解条件;所述区域计算函数可以调用其他学科数理方程解算构件。
在本实施例中,可以参考如图3所示的本文实施例插件计算接口的结构示意图,针对于不同数值模拟对象的物理过程的多个物理建模插件单元103以及多个工程模板插件单元104对应的插件计算接口108,通过所述插件计算接口108的输入场1082接收针对于不同数值模拟对象物理过程的多个物理建模插件单元103以及多个工程模板插件单元104输入的数值数据;并通过输出场1081将这些数值数据输出给数值离散解算单元106;通过接口类型的指定输出场1081和输入场1082定义接口的具体形式;从而可以将物理模型和工程模板隔离开发,并且将物理模型和工程模板与数值离散计算方法的开发隔离,使得数理方程解算构件中工程(业务)建模、物理(科学)建模、数值(离散)算法和大规模并行计算四个类别的开发相互隔离,从而降低研发的复杂度。
作为本文实施例的一个方面,还包括数值离散解算接口109连接于数值离散解算单元106,该数值离散解算接口109包括,
输入接口1091,用于接收任意外部数据场;
输出接口1092,用于向所述数理方程解算构件接口101输出相关物理场的数值解。
在本实施例中,可以参考图4所示为本文实施例数值离散解算接口的结构示意图,数值离散解算接口109对接数理方程解算构件接口101和数值离散解算单元106之间,接收和返回数值数据。输入时,从数理方程解算构件接口101接收输入的数值数据,数值数据可以是任意外部数据场,且个数可调;输出时,向所述数理方程解算构件接口101输出相关物理场数值解。输入的外部数据场和输出的数值解均遵循统一的数据结构规范,储存于数据分布储存单元。
当根据自适应适配单元的选配信息确定了相应的数值离散解算单元106后,在根据数理方程定解问题的控制方程数值离散算法,结合数值数据以及数值数据计算方法进行数值并行计算中,相关物理场数值解依赖于其初边值和关联场的数值数据。其中,相关物理场的初边值通过前述插件计算接口,委托给工程模板插件单元进行计算;同理,相关物理场的数值数据通过上述插件计算接口,委托给物理建模插件单元进行计算。
作为本文实施例的一个方面,还包括自适应适配接口110连接于自适应适配单元105,该自适应适配接口110包括,
输入接口1101,用于接收数理方程定解问题物理模型的问题特征参数数据;
输出接口1102,用于根据所述问题特征参数数据输出适配于所述问题特征参数数据的数值离散参数数据,其中,所述数值离散参数数据包括针对于该数值离散解算单元106的标识符以及相应数值算法配置参数。
在本实施例中,可以采用键值对的方式根据物理模型的问题特征参数数据匹配到相应的数值离散解算单元标识符,其中,标识符可以包括唯一标识数值算法的字符串,例如数字串、字符串等,其中字符串可以例如为数值离散解算单元中数值算法的名称。
作为本文实施例的一个方面,所述数理方程解算构件接口101进一步包括,
方程配置接口1011,用于基于所述数理方程定解问题的问题特征参数数据,将实例化的所述工程物理插件单元注册到所述数值离散解算单元;
其中,接收所述物理建模插件单元103以及工程模板插件单元104的相关物理场以及问题特征参数数据,将所述问题特征参数数据发送给所述自适应适配单元105,并接收所述自适应适配单元105输出的数值离散参数数据,根据所述数值离散参数数据将实例化的所述物理建模插件单元103以及工程模板插件单元104的数值数据计算方法注册到相应的数值离散解算单元106;
方程解算接口1012,用于基于所述数理方程定解问题接收任意外部数据场的数值数据,向所述数值离散解算单元106提供数值计算所依赖的数值数据,并接收所述数值离散解算单元106返回的数值解。
在本实施例中,方程配置接口1011可以通过上述的插件计算接口108接收物理建模插件单元103、工程模板插件单元104和所述数理方程定解问题特征参数数据,将针对数值模拟对象涉及物理过程的物理模型将物理建模插件单元103、工程模板插件单元104注册到相应的数值离散解算单元106,形成完整的解算流程,其中,自适应适配单元105通过自适应适配接口110获取所述数理方程定解问题特征参数数据,并接收与物理模型数理方程求解对应的数值离散解算单元的选择和配置信息。其中,注册是指将物理建模插件单元103提供的相关物理场数值数据的计算方法以及工程模板插件单元104提供的相关物理场初边值数据的计算方法的内存指针发送给相应的数值离散解算单元106,其中初边值是指初值条件和边界条件。
方程解算接口1012与数值离散解算接口109一致,为数值离散解算单元106提供任意外部数据场数值数据,接收数值离散解算单元106返回的数理方程数值解。
通过上述本文实施例的数理方程解算构件可以将现有数值模拟中四个类别的软件模块开发解耦,在开发工程建模、物理建模、数值算法和大规模并行计算时可以同时分团队的独立开发,然后通过本文上述的数理方程解算构件中的软件单元和接口的配合就可以实现多学科协同进行软件设计,提升数理方程解算构件的开发速度并且将开发复杂度降至线性程度。
步骤501,生成数理方程解算构件接口。
所述生成的数理方程解算构件接口用于根据数理方程定解问题,接收外部输入的数值数据和数值数据计算方法,将所述数值数据以及数值数据计算方法传输给数值离散解算单元,并将所述数值离散解算单元进行数值计算后得到的数值解输出。
步骤502,生成数据分布存储单元。
所述生成的数据分布存储单元,在进程的私有内存空间存储外部输入的数值数据(主要包括外部数据场)和数值离散解算单元数值计算产生的内部数值数据(主要包括相关物理场的数值数据)。
步骤503,生成自适应适配单元。
所述生成的自适应适配单元,根据数理方程定解问题的问题特征参数数据,自适应地选配相应的数值离散解算单元。
步骤504,生成多个适配于不同问题特征参数数据的数值离散解算单元。
所述生成的数值离散解算单元,根据控制方程的某种数值离散算法,所述自适应适配单元提供的选配信息确定相应的数值离散解算单元,并利用所述确定的数值离散解算单元根据所述数理方程解算构件接口提供的数值数据以及数值数据计算方法进行数值并行计算。
步骤505,生成并行计算构件单元。
所述生成的并行计算构件单元,用于将所述数值离散解算单元进行数值并行计算所依赖的其他进程的数值数据存储于本地进程。
在本步骤中,可以单独开发生成并行计算构件单元,实现数值算法在多个进程中的并行计算,当本地进程在进行数值计算时需要与其他进程进行数据通信和负载均衡等并行计算,可以在该并行计算构件单元设计实现并行计算,实现数值算法与并行计算的独立研发。特别是针对高性能计算机而言,数值模拟过程中数理方程解算构件中的数值离散解算单元中的数值算法可以映射到所述高性能计算机中实现超大规模的数值模拟计算,从而进一步提高数值模拟的数值计算效率。其中,高性能计算机是指具有“六层嵌套并行”或“异构众核加速”等典型特征的计算机,其中,前者指“结点间分布存储(DM)—结点内多CPU间分布共享存储(DSM)—CPU内多核间对称多处理共享存储(SMP)—CPU核内多级高速缓存(Cache)—CPU核内多功能部件指令级并行(ILP)—CPU核内长向量加速(SIMD)”,后者指“异构众核加速”,即每个结点配置图形加速微处理器GPU或众核协处理器MIC,在提升浮点计算速度的同时降低功耗。
作为本文实施例的一个方面,在上述步骤中,在解耦开发时,还根据工程应用的数理方程定解问题生成工程物理插件单元,根据所述数理方程定解问题的物理模型和定解条件,通过所述数理方程解算构件接口向所述数值离散解算单元提供相关数值数据计算方法。
在上述生成工程物理插件单元的步骤中,具体生成时,生成物理建模插件单元,用于根据数理方程定解问题的物理模型,向所述数值离散解算单元提供相关物理场数值数据的计算方法。
生成工程模板插件单元,用于根据数理方程定解问题的定解条件,向所述数值离散解算单元提供相关物理场初边值数据的计算方法。
作为本文实施例的一个方面,还在数理方程解算构件接口中生成对应于所述工程物理插件单元的插件计算接口,其中,包括输出场,用于从所述工程物理插件单元向所述数值离散解算单元输出相关物理场的数值数据;输入场,从所述数值离散解算单元向所述工程物理插件单元输入任意依赖场的数值数据;其中,所述依赖场指所述工程物理插件单元计算所述相关物理场时所依赖的物理场;接口类型,用于指示所述输出场和所述输入场的数值数据的具体形式。
所述数值数据的具体形式包括单点型计算接口和区域型计算接口。
对于单点型计算接口,生成单点计算函数,该单点计算函数根据输入的单点物理场数值数据,计算返回该点上的相关物理场数值数据;对于区域型计算接口,生成区域计算函数,该函数通过调用其他数理方程解算构件,计算返回相关物理场的数值数据(储存于数据分布储存单元)。
在本步骤中,根据数理方程对物理模型的输出需求规定输出的相关物理场数值数据;所述任意场为不限定的输入场,输入的任意场可以由用户在生成物理建模插件单元和工程模板插件单元时按物理模型指定;不限制具体形式的类型,由用户生成物理建模插件单元和工程模板插件单元时按照物理模型指定。
基于前述的插件计算接口和数值离散解算接口可以实现解耦研发,数值离散解算单元按照一定的数值离散算法,对给定的数理方程进行离散求解,获得基本场的数值解;在数值离散算法中,基本场的数值解依赖于其初边值和关联场的数值数据。其中,基本场的初边值通过前述步骤生成的插件计算接口,委托给工程模板插件单元进行计算;同理,关联场的数值数据通过上述步骤生成的插件计算接口,委托给物理建模插件单元进行计算。
关联场的物理模型多样,其计算可能依赖控制方程相关物理场,还可能依赖部分外部数据场(未在控制方程中定义的物理场);为此数值离散解算单元在调用物理建模插件单元之前,先解析物理建模插件单元的输入场,确定输入场,再通过插件计算接口按需传给所述物理建模插件单元。其中,对于依赖的外部数据场,数值离散解算单元通过检索数值离散解算接口中接收的输入场获得其数值数据。从而,数值离散解算单元可以与任意物理建模插件单元对接。
对于从数值离散解算接口中获取的外部数据场,其数值数据的离散位置可能不在计算需要的空间点上,为此数值离散解算单元对外部数据场按需进行离散插值计算后,再通过插件计算接口传递给物理建模插件单元;另外,关联场的物理模型计算还可能依赖场或者外部数据场的导数场,数值离散解算单元根据一定的数值离散算法计算获得这些场导数值后,再通过插件计算接口传递给物理建模插件单元。从而,确保任意物理建模插件单元无需数值离散编程。
同理,基本场初边值模型的数据依赖多样,数值离散解算单元采用相同的方法,实现与任意工程模板插件单元(初边值模型)的对接。
通过上述方法规定物理建模插件单元、工程模板插件单元、数值离散解算构件等3类单元的接口,可以独立地开发物理建模插件单元、工程模板插件单元和数值离散解算单元,并确保这些单元可以组装在一起,构成可解算应用个性数理方程定解问题的数理方程解算构件。同时,自适应适配单元确保组装到一起的数理方程解算构件具有置信度。
所述解耦研发,还包括:对于数值离散算法并行实现时需要的数据通信和负载平衡等并行计算,可以参考专利号为201410662947.9、发明名称为一种并行计算构件、方法及相应并行软件开发方法与系统的中国发明专利,委托给并行计算构件单元,实现数值算法与并行计算的独立研发。
作为本文实施例的一个方面,在生成所述数理方程解算构件接口的步骤中,还进一步生成方程配置接口,用于基于所述数理方程定解问题的问题特征参数数据,将实例化的所述工程物理插件单元注册到所述数值离散解算单元;方程解算接口,用于基于所述数理方程定解问题接收任意外部数据场的数值数据,传递给所述数值离散解算单元,并接收所述数值离散解算单元返回的数值解。
作为本文实施例的一个方面,生成多个适配于不同所述数理方程定解问题的问题特征参数数据的数值离散解算单元中进一步包括,
将所述问题特征参数数据与所述数值离散解算单元形成匹配关系;
将所述匹配关系存储于自适应适配单元。
在本步骤中,可以采用键值对的方式根据物理模型的问题特征参数数据匹配到相应的数值算法标识符,其中,标识符可以包括唯一标识数值算法的字符串,例如数字串、字符串等,其中字符串可以例如为数值算法的名称。将键值对存储于自适应适配单元。
作为本文实施例的一个方面,在根据数理方程定解问题的问题特征参数数据,自适应地选配相应的数值离散解算单元中进一步包括,
接收物理模型的问题特征参数数据;
根据所述问题特征参数数据输出适配于所述问题特征参数数据的数值离散参数数据,其中,所述数值离散参数数据包括针对于该物理模型的数值离散解算单元标识符以及相应数值算法配置参数。
在本步骤中,自适应适配单元根据问题特征参数数据选择与该问题特征参数数据匹配的数值离散解算单元,其中,所述自适应适配单元中存储有分别代表问题特征参数数据与数值离散解算单元的键值对,当接收到的问题特征参数数据与键值对中的问题特征参数数据相同,则可以获得键值对中数值离散解算单元,从而可以将数值离散解算单元数值计算所需的算法参数发送给该数值离散解算单元。
通过上述本文实施例中的方法,可以将现有数值模拟中四个类别的软件模块开发解耦,在开发工程建模、物理建模、数值算法和大规模并行计算时可以同时分团队的独立开发,然后通过本文上述的数理方程解算构件中的软件单元和接口的配合就可以实现多学科协同进行软件设计,提升数理方程解算构件的开发速度并且将开发复杂度降至线性程度。
如图6所示为本文实施例一种基于数理方程解算构件的数值模拟并行软件开发方法的流程图,在本图中描述了针对数值模拟中的每个物理过程应用上述图1-图4相应的数理方程解算构件,具体包括,
步骤601,根据工程应用数值模拟对象涉及的物理过程,确定每个物理过程对应的数理方程定解问题,设计以定解问题为单位的计算流程。
步骤602,根据所述数理方程定解问题的控制方程、物理模型以及定解条件,实例化数理方程解算构件。
进一步参考附图7所示为本文实施例生成实例化数理方程解算构件的流程图,在本图中描述了根据工程建模得到实例化的数理方程解算构件的方法,具体包括,
步骤701,针对所述定解问题的控制方程,选择待实例化的数理方程解算构件。
在本步骤中,某一个数理方程解算构件可以对应于多个定解问题或者只对应于某一个定解问题。
步骤702,根据所述定解问题,确定问题特征参数数据。
在本步骤中,定解问题需要根据特征分类,不同特征的定解问题需要采用不同的数值离散算法,才能得到高精度的数值解。
步骤703,基于插件计算接口,结合所述数理方程定解问题生成相应的工程物理插件单元。
在本步骤中,具体可以根据所述定解问题的物理模型,生成相应的物理建模插件单元。
其中,根据物理模型从物理模型库中选取相应的物理建模插件单元;若相应的物理建模插件单元不存在,则实例化定解问题所需的物理模型,生成新的物理建模插件单元并存储于物理模型库。
并且,根据所述定解问题的定解条件,确定相应的工程模板插件单元。
在本步骤中,根据定解条件,从工程模板库中选取相应的工程模板插件单元;若相应的工程模板插件单元不存在,则实例化定解问题所需的定解条件,生成新的工程模板插件单元并存储于工程模板库。
步骤704,将所述问题特征参数数据、物理建模插件单元以及工程模板插件单元注册到所述待实例化的数理方程解算构件。
在本步骤中,数理方程解算构件接口中的方程配置接口将上述步骤得到的问题特征参数数据发送给自适应适配单元,接收所述自适应适配单元根据所述问题特征参数数据选择的数值离散解算单元以及相关的配置信息;数理方程解算构件接口中的方程解算接口将物理建模插件单元提供的数值算法以及工程模板插件单元提供的初边值计算方法的内存地址发送给所述选择出的数值离散解算单元,并将所述配置信息和数值计算所需的数值数据发送给该数值离散解算单元,从而完成数理方程解算构件的实例化。
步骤603,调度多个实例化的数理方程解算构件之间的数值数据的传递,完成由多个实例化数理方程解算构件组成的数值模拟并行软件。
在本步骤中,根据以数理方程定解问题为单位的计算流程,依次调用相应数理方程解算构件接口中的方程解算接口,通过方程解算接口确定输入和输出的数据分布储存单元,完成方程解算构件间的数据传递和流程组装,形成数值模拟并行软件。
如图8所示为本文实施例一种基于数理方程解算构件的数值模拟并行软件开发系统的结构图,在本图中描述了实现上述图6和图7方法的系统结构,具体包括,
数理方程解算构件库801,其中包括多个对应于不同控制方程的数理方程解算构件,其中每个数理方程解算构件中都包括至少一个数值离散解算单元以及一个自适应适配单元;
插件库802,其中包括针对于不同物理模型以及不同定解条件的插件单元;
并行计算框架803,用于向在数值模拟对象的数值计算中涉及的多个数理方程解算构件提供并行计算支持。
作为本文实施例的一个方面,所述数理方程解算构件库801包含一系列学科普适的数理方程解算构件,每个数理方程解算构件包括若干数值离散解算单元和一个自适应适配单元,可为工程建模快速生成实例化的数理方程解算构件。
作为本文实施例的一个方面,所述插件库802进一步包括,
物理模型库8021,其中包括针对于不同物理模型的多个物理建模插件单元;
工程模板库8022,其中包括这对于不同定解条件的多个工程模板插件单元。
作为本文实施例的一个方面,所述物理模型库8021,包含一系列可复用的状态方程、本构方程和物性方程等物理建模插件单元,可在特定的工程学科内可复用。
作为本文实施例的一个方面,所述工程模板库8022,包含一系列工程业务模板插件单元,在特定的工程业务范围内可复用。
作为本文实施例的一个方面,所述并行计算框架803,包含数据分布储存单元和并行计算构件,用于提供高可扩展的并行算法,并提供统一的数据结构规范,实现数理方程解算构件间的无缝数据传递。本文实施例中的并行计算框架803可以参考专利号为201410662947.9、发明名称为一种并行计算构件、方法及相应并行软件开发方法与系统的中国发明专利,在此不再赘述。
基于上述的并行系统,工程建模领域用户可以实现如下五个方面的功能和性能。
第一,在无需了解数值离散和并行计算实现的前提下,只需串行编程实现工程建模代码和物理建模代码,就可以快速实现数理方程数值解算功能。具体地,数值模拟时,计算域和物理场传递给数理方程解算构件后,自动被数值离散解算单元离散,生成离散网格和离散网格上的数据场,并分布存储在各个进程的私有内存空间;数据分布存储单元为数理方程解算构件管理存储在进程私有空间的数据场;数值离散解算单元针对梳理方程中的微分或积分算子执行数值离散计算,并耦合应用问题的物理建模插件单元和定解条件的工程模板插件单元计算数理方程相关物理场,获得方程数值解;数理方程解算构件接口对外仅输入和输出计算参数和分布存储的数据场。从而,数理方程解算构件屏蔽了数值离散计算所需的计算域离散、物理场离散和方程微分或积分算子离散,以及并行计算所需的数据场分布存储和数据并行通信。
第二,在无需用户配置数值算法的前提下,自动根据问题特征参数数据获得高可置信的数值算法并计算得到数值解。同一数理方程,存在多种不同的数值算法。不同类型的数值算法,适用的问题特征参数不同。自适应适配单元集成了数值算法的适应域,并根据物理模型的问题特征,自动选用适配的数值算法和数值离散解算单元,获得高可置信的求解精度。
第三,在无需用户了解并行计算的前提下,自动获得更高可扩展的计算性能。针对数理方程解算构件的数据分布储存单元和数值离散解算单元,利用并行计算构件单元和数据分布储存单元,实现自动并行计算。并行计算构件单元和数据分布储存单元,由专业的高性能计算专家结合高性能计算机体系结构的高性能特征进行优化设计与实现,从而具有更高的计算效率,更适应于大规模并行计算。并且,当计算机体系结构变化时,数理方程解算构件无需变化,从而可以自动适应计算机体系结构的演化。
第四,通过接收不同类型的物理建模和定解条件,可以快速适应工程应用的需求变化。当数值模拟对象的物理模型或定解条件发生变化,可以选择相应的物理建模插件单元或工程模板插件单元,但是插件计算接口不变,数据分布存储单元、数值离散解算单元、自适应适配单元可以复用。
第五,通过本文实施例的数理方程解算构件,工程建模、物理建模、数值算法和大规模并行计算可以解耦研发,解耦研发成果可以快速集成和应用。具体地,数理方程解算构件、物理建模插件单元、工程模板插件单元均可以由不同的个人或团队独立完成;即使在数理方程解算构件的内部,数理方程解算构件接口、数值离散解算单元、自适应适配单元、数据分布存储单元也可以独立地设计和实现。
如图9所示为本文实施例不可压流体N-S数理方程解算构件生成方法的流程图,在本图中描述了以不可压流体N-S数理方程为例的数理方程解算构件的生成过程,具体包括,
步骤901,根据不可压流体N-S数理方程,生成数理方程解算构件中物理建模插件单元、工程模板插件单元、数值离散解算单元、并行计算构件单元4类单元的接口。
在本步骤中,进一步可以如图10所示为本文实施例针对N-S数理方程的数理方程解算构件接口的结构示意图,通过下述步骤生成数理方程解算构件接口的结构,
步骤1001,根据不可压流体N-S数理方程,确定N-S数理方程的相关物理场、待定物理模型和待定定解条件,确定N-S数理方程解算构件接口结构。
不可压流体N-S数理方程的控制方程如公式(1)所示:
上述控制方程中,
上述N-S数理方程适用于常见不可压近似下的单相流分析。基于上述控制方程,并结合工程建模和物理建模,可实现复杂流动现象、燃烧问题、传热问题的分析。
根据上述数理方程,生成N-S数理方程解算构件接口的构成结构,如图10所示,包括:
5个N-S插件计算接口,分别用于支持状态方程、粘度建模、源项建模、初值条件、边界条件等5个插件单元的定制,支撑这些插件单元与N-S数值离散解算单元的解耦研发;
N-S数值离散解算接口,用于规定N-S数值离散解算单元与N-S方程解算构件接口之间的统一调用规范,支撑数值离散解算单元的解耦研发;
N-S自适应适配接口,用于规定N-S自适应适配单元与N-S方程解算构件接口之间的统一调用规范,支撑自适应适配单元的定制开发;
并行计算构件单元,用于屏蔽并行编程,支撑数值离散解算单元与并行计算构件单元两类软件模块的解耦研发与独立演化;
数据分布存储数据,支持不同学科数理方程解算构件间的无缝数据传输。
步骤1002,分别为状态方程、粘度建模、源场建模、初值条件、边界条件等5个插件单元生成接口,规定各插件单元与N-S数值解算单元之间的调用规范,构成如图11所示为本文实施例的各插件单元与N-S数值解算单元之间的调用数据流模型。
一个实施例中,参数所具的名称是物理场的全局唯一标签,从而使得数值离散解算单元和物理建模插件单元可以在任意输入的参数表中正确区分并传递各个物理场。
例如,在描述数值模拟对象的N-S数理方程例中,首先在N-S数理方程解算构件中为其所有的物理场、、、、、分别生成全局唯一的标签;然后,生成粘度建模插件单元的插件计算接口,以粘度场的场标签为输出场具名;其他插件单元的插件计算接口以此类推。
上述插件单元的插件计算接口具有广泛的普适性。用户可以声明任意相关物理场和任意外部数据场的数值数据为其输入。
以粘度模型中的k-ε湍流建模插件单元为例,其粘度场的计算依赖于方程相关物理场和三个方程未定义的外部数据场,分别为材料分子粘度以及外部湍流标量场k、ε,因此生成k-ε湍流建模插件单元时,首先生成3个外部数据场标签,然后为插件计算接口声明一个含有5个输入参数和1个输出参数的参数表,并以相关物理场、和外部数据场、k、ε的场标签分别为这些输入参数具名;最后生成粘度数值离散解算单元,根据输入的、、、k、ε计算返回粘度场的数值解。
步骤1003,生成N-S数值离散解算接口,接收任意外部数据场为输入,例如用于粘度模型的k、ε两个外部数据场,并输出相关物理场、的数值解;其中每个输入和输出的外部数据场既有储存其数值数据的数据分布储存单元,还含有标识其身份的场标签。
步骤1004,生成N-S自适应适配单元的自适应适配接口,包括:
输入数据,采用键值对数据库的方式,接收物理模型的问题特征参数数据;
输出数据,采用键值对数据库的方式,输出适配于物理模型的数值离散参数数据,包括数值离散解算方法名称和计算方法参数。
步骤902,实施物理建模插件单元、工程模板插件单元、数值离散解算单元以及并行计算构件单元的解耦研发,生成多个数值离散解算单元,适应不同的数值模拟对象。
按如下通用方法实现数值离散解算单元与其他三类单元的解耦研发,包括:
从数理离散解算单元数值离散解算接口接收外部数据场的数据,并传递给预处理单元执行预处理计算,然后调用数理离散解算单元执行计算,并返回数值解给数理方程解算构件接口;
生成预处理模块,执行以下流程:离散计算域,生成离散网格;离散方程相关物理场,生成数据场,并调用工程模板插件单元为相关物理场(基本场)赋初值;为每个接入的插件单元完成必要的外部数据场插值计算和外部数据场数值微分计算,确保每个被插件单元需要的外部数据场或外部数据场的导数场在待计算的离散位置上都有数值数据;
生成解算模块,用于根据学科数理方程的某类通用数值离散解算算法,对方程中的微积分算子进行离散,依次计算和更新方程相关物理场和相关物理场微积分算子的数值数据,最终获得数值解;在涉及物理建模和定解条件的流程节点中,遍历待计算相关物理场的离散点,并根据所注册插件单元的输入参数表,从数据分布储存单元中按需取出当前离散点上的所有依赖场的数值数据,作为输入传递给所述插值单元,获得所述插件单元计算返回的相关物理场数值数据;
生成并行计算构件单元和数据分布储存单元;其中,数据分布存储单元,用于为数值离散解算单元,在进程的私有内存空间存储内部场和从接口接收的外部数据场的数值数据;并行计算构件单元,用于从其他进程的私有内存空间的数据场中复制解算单元和预处理单元依赖的网格单元及网格单元上的物理量值,存储到本地进程,满足解算单元和预处理单元的数据依赖需求。
步骤903,生成自适应适配单元,包括:
确定对数值离散算法选型有重要影响的问题特征,为每种问题特征确定其关键字以及取值范围形成问题特征参数数据,供用户选择使用;
从自适应适配接口接收数值模拟对象的问题特征参数数据,并根据该问题特征参数数据,确定一定离散精度的数值算法,返回该算法名称及相应的计算参数配置等数据,返回给自适应适配接口。其中,在本实施例中根据所述问题特征参数数据选择使用图10中的N-S数值离散解算单元A或者N-S数值离散解算单元B。
以本实施例中的N-S自适应适配单元为例,从自适应适配接口可接收如下问题特征参数数据,进行数值离散算法选型:
“随时间变化”特征参数,可选取“稳态”或“非稳态”或“非稳态长时间”三种情况;自适应适配单元将根据该特征参数,自适应选取速度-压力耦合求解算法:如果用户设置该参数为“稳态”,选用“SIMPLE”算法;如果用户设置该参数为“非稳态”,选用“PISO”算法;如果用户设置该参数为“非稳态长时间”,选用“PIMPLE”算法;
“流场时间变化程度”特征参数, 可选取“激烈”或“一般”两种情况;自适应适配单元将根据该特征参数,选取速度-压力耦合求解算法中的时间离散格式:如果用户设置该参数为“一般”,选用一阶“Implicit Euler”格式;如果用户设置该参数为“激烈”,选用二阶“Crank Nicolson”格式;
“流场空间变化程度”特征参数,可选取“激烈”或“一般”两种情况;自适应适配单元将根据该特征参数,结合以下专家知识和经验,选取速度-压力耦合求解算法中的对流项离散格式:若用户设置该参数为“一般”,选用空间“一阶迎风”离散格式,如果用户设置该参数为“激烈”,选用“中心差分”格式;
以键值对的形式记录上述所选用的算法名称以时间离散格式和对流项离散格式,返回给自适应适配接口。
用户可以基于该自适应适配接口,为工程建模研发专用的自适应适配单元。甚至还可以引入兼顾计算效率或其他因素的算法选择策略,实现多样化的解算器适配需求。
步骤904,生成N-S数理方程的数理方程解算构件接口,封装N-S数值离散解算单元和N-S自适应适配单元,支持应用领域用户在无需数值离散的情况下,实现N-S数理方程定解问题的定制与高置信求解。
本步骤中,进一步包括生成N-S数理方程的方程配置接口,包括:
接收工程应用的物理建模插件单元、工程模板插件单元和问题特征参数数据;
将问题特征参数数据传递给N-S自适应适配单元,接收N-S自适应适配单元返回的数值离散参数数据;
根据数值离散参数数据中的算法名称以及计算参数配置,加载并配置相应的N-S数值离散解算单元;
将所接收的所有插件单元注册到数值离散解算单元,形成实例化的解算数值模拟对象物理模型定解问题的计算流程。
生成N-S数理方程的方程解算接口,包括:
接收任意输入的外部数据场,传递给前述加载的N-S数值离散解算单元,并返回该N-S数值离散解算单元数值计算后返回的方程数值解。
如图12所示为本文实施例圆柱绕流不可压流体的数理方程解算构件的数值模拟并行软件开发方法流程图,具体包括,
步骤1201,根据圆柱绕流数值模拟对象,确定待分析的物理过程数理方程定解问题,以及以数理方程定解问题为单位的计算流程。
以圆柱绕流数值模拟对象为例,该数值模拟对象主要涉及不可压近似下的流动分析,通过分析得到计算域中的分布和分布,以获得圆柱表面的静压系数;圆柱绕流问题仅涉及N-S数理方程求解,每个时间步需要执行N-S数理方程求解、圆柱表面静压系数分析两个步骤。
步骤1202,针对不可压近似下的流动分析,并确定定解条件,选取不可压N-S数理方程解算构件进行求解。
在本步骤中进一步包括:
确定圆柱绕流数值模拟对象的全局特征和局部特征:通过分析圆柱扰流问题特征,确定物理过程的全局特征参数为:流动速度较低,满足不可压近似条件;局部特征参数为:复杂湍流流动;
选取合适的数理方程解算构件:所述圆柱绕流数值模拟对象满足不可压近似特征,符合不可压N-S数理方程解算构件的适用范围,从数理方程解算构件库选出不可压N-S数理方程解算构件。
选取或开发合适的物理建模插件单元:
所述的圆柱扰流问题雷诺数较高,属于复杂湍流流动,可用k-ε湍流模型或SSTk-ω湍流模型进行粘度建模。如果目前物理模型库中已存在k-ε湍流建模插件或SSTk-ω湍流建模插件,可从物理模型库中选取相应物理建模插件单元,生成粘度建模插件;如果物理模型库中不存在这两类湍流建模插件单元,则基于相应的插件计算接口,开发湍流模型,生成粘度物理建模插件单元,并集成于物理模型库供选用;
所述的空气介质圆柱扰流问题,重力影响较小,不考虑重力源项,无需选择源项建模插件单元;
选取或开发合适的工程模板插件单元:
所述的圆柱扰流问题涉及Inlet边界、无滑移Wall边界、Outlet边界。如果目前工程模板库中已存在上述三类边界条件处理插件,则从中选取相应插件进行设置参数配置,生成边界条件插件;否则,基于相应的工程建模插件单元的接口规范,依次开发三类边界条件处理插件,进行参数配置,生成边界条件插件,并集成于工程建模插件库供选用;
所述的圆柱扰流问题需要针对全场进行速度场、压力场的初始化。如果目前工程模板库中已存在均匀场初始化插件,则从中选取相应插件进行初值条件配置,生成初值条件的工程模板插件单元;否则,基于相应的工程建模插件单元的插件计算接口,开发均匀场初始化工程模板插件单元,进行参数配置,生成初值条件的工程模板插件单元,并集成于工程建模插件库供选用;
将上述生成的特征参数数据、k-ε湍流建模插件单元、三类边界条件的工程模板插件单元、初值条件的工程模板插件单元注册给不可压N-S数理方程解算构件,生成满足圆柱扰流数值模拟对象的高置信数理方程解算构件;
步骤1203,按照所述计算流程,在每个时间步调用不可压N-S数理方程解算构件接口的方程解算接口,在解算接口中以湍流标量场k、ε为输入,速度场和压力场为输出,完成该问题的流程组装,并基于和进行后处理分析,输出圆柱表面的静压分布系数;最终形成满足圆柱扰流问题分析的并行数值模拟软件。
通过上述本文实施例的方法,可以实现工程建模、物理建模、数值算法和大规模并行计算等四类软件模块的解耦研发,将多学科协同自主研发复杂度从降低到线性复杂度O(L)+O(M)+O(N)+O(J),从而可以为多学科协同提供有效的软件设计方法支撑,也可以为多学科协同奠定坚实的软件实现技术基础。
同时,还可以显著提升数值模拟并行软件的研发效率,工程建模人员可以无需了解数值算法,只需串行编程实现工程建模代码和物理建模代码,就可以快速研发适配于现代超级计算机的数值模拟并行软件。
本文实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
根据数理方程对物理模型输出的需求,独立生成物理建模插件单元和工程模板插件单元;
独立生成多个适配于不同问题特征参数数据的数值离散解算单元;
根据所述物理模型的问题特征参数数据选择适配的数值离散解算单元;
通过数理方程解算构件接口将数据分布存储单元、物理建模插件单元、工程模板插件单元的数据传输给所述数值离散解算单元进行数值计算。
本文实施例提供的计算机设备还可以实现如图5所在实施例的所有方法。
对应于图5所在实施例的所有方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图5所在实施例的所有方法。
本文实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,基于上述几何网格数据结构,所述处理器执行所述计算机程序时实现如下步骤:
根据数值模拟对象涉及的物理过程,生成每个物理过程相应的物理模型;
根据所述物理模型,生成实例化的数理方程解算构件;
调整多个实例化的数理方程解算构件之间的数值数据的传递,完成由多个实例化数理方程解算构件组成的数值模拟并行软件。
本文实施例提供的计算机设备还可以实现如图7所在实施例的所有方法。
对应于图7所在实施例的所有方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图7所在实施例的所有方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
Claims (17)
1.一种数理方程解算构件,其特征在于包括,
数理方程解算构件接口,数据分布存储单元,自适应适配单元,数值离散解算单元,并行计算构件单元;
所述数理方程解算构件接口,连接所述数据分布存储单元、自适应适配单元以及数值离散解算单元,用于基于数理方程定解问题,接收外部输入的数值数据和数值数据计算方法,将所述数值数据和数值数据计算方法传输给所述数值离散解算单元,并将所述数值离散解算单元进行数值计算后得到的数值解输出;
所述数据分布存储单元,用于在进程的私有内存空间存储外部数据场和内部数据场;其中,外部数据场指通过数理方程解算构件接口从外部接收的物理场数值数据,内部数据场指数值离散解算单元在数值求解过程中产生的物理场数值数据;
所述自适应适配单元,用于根据数理方程定解问题的问题特征参数数据,自适应地选配适配的数值离散解算单元;
所述数值离散解算单元,用于根据数理方程定解问题的控制方程数值离散算法,结合所述自适应适配单元提供的选配信息以及所述数理方程解算构件接口提供的数值数据以及数值数据计算方法进行数值并行计算;
所述并行计算构件单元,用于将所述数值离散解算单元进行数值并行计算所依赖的其他进程的数值数据存储于本地进程。
2.根据权利要求1所述的数理方程解算构件,其特征在于,还包括工程物理插件单元,根据所述数理方程定解问题的物理模型和定解条件,通过所述数理方程解算构件接口向所述数值离散解算单元提供相关物理场的数值数据计算方法。
3.根据权利要求2所述的数理方程解算构件,其特征在于,所述工程物理插件单元进一步包括,
物理建模插件单元,用于根据数理方程定解问题的物理模型,向所述数值离散解算单元提供相关物理场数值数据的计算方法;
工程模板插件单元,用于根据数理方程定解问题的定解条件,向所述数值离散解算单元提供相关物理场初边值数据的计算方法。
4.根据权利要求2所述的数理方程解算构件,其特征在于,所述数理方程解算构件接口进一步包括,
方程配置接口,用于基于所述数理方程定解问题的问题特征参数数据,将实例化的所述工程物理插件单元注册到所述适配的数值离散解算单元;
方程解算接口,用于基于所述数理方程定解问题接收任意外部数据场的数值数据,传递给所述数值离散解算单元,并接收所述数值离散解算单元返回的数值解。
5.根据权利要求2所述的数理方程解算构件,其特征在于,所述数理方程解算构件接口还包括插件计算接口,该插件计算接口包括,
输出场,用于从所述工程物理插件单元向所述数值离散解算单元输出相关物理场的数值解;
输入场,从所述数值离散解算单元向所述工程物理插件单元输入任意依赖场的数值数据;其中,所述依赖场指所述工程物理插件单元计算所述相关物理场时所依赖的物理场;
接口类型,用于指示所述输出场和所述输入场的数值数据的具体形式。
6.根据权利要求1所述的数理方程解算构件,其特征在于,所述数理方程解算构件接口还包括数值离散解算接口,该数值离散解算接口包括,
输入接口,用于接收任意外部数据场的数值数据;
输出接口,用于输出数值解。
7.根据权利要求1所述的数理方程解算构件,其特征在于,所述数理方程解算构件接口还包括自适应适配接口,该自适应适配接口包括,
输入接口,用于接收所述问题特征参数数据;
输出接口,用于根据所述问题特征参数数据输出适配于所述问题特征参数数据的数值离散参数数据,其中,所述数值离散参数数据包括数值离散解算单元的标识符以及相应数值算法配置参数。
8.一种生成如上述权利要求1-7任意一项所述数理方程解算构件的方法,其特征在于,
生成数理方程解算构件接口,根据数理方程定解问题,接收外部输入的数值数据和数值数据计算方法,将所述数值数据以及数值数据计算方法传输给数值离散解算单元,并将所述数值离散解算单元进行数值计算后得到的数值解输出;
生成所述数据分布存储单元,在进程的私有内存空间存储外部数据场和内部数据场;
生成多个数值离散解算单元,每个数值离散解算单元针对数理方程的控制方程提供一种数值离散算法,并结合所述数理方程解算构件接口提供的数值数据和数值数据计算方法进行数值并行计算;
生成并行计算构件单元,用于将所述数值离散解算单元进行数值并行计算所依赖的其他进程的数值数据存储于本地进程;
生成自适应适配单元,根据数理方程定解问题的问题特征参数数据,自适应地选配适配的数值离散解算单元。
9.根据权利要求8所述的方法,其特征在于,生成工程物理插件单元,根据所述数理方程定解问题的物理模型和定解条件,通过所述数理方程解算构件接口向所述数值离散解算单元提供相关物理场的数值数据计算方法。
10.根据权利要求9所述的方法,其特征在于,生成所述工程物理插件单元中具体包括,
生成物理建模插件单元,用于根据数理方程定解问题的物理模型,向所述数值离散解算单元提供相关物理场数值数据的计算方法;
生成工程模板插件单元,用于根据数理方程定解问题的定解条件,向所述数值离散解算单元提供相关物理场初边值数据的计算方法。
11.一种基于上述权利要求1-7任意一项所述的数理方程解算构件的数值模拟并行软件开发方法,其特征在于包括,
根据工程应用数值模拟对象涉及的物理过程,确定每个物理过程对应的数理方程定解问题;
根据所述数理方程定解问题的控制方程、物理模型以及定解条件,实例化数理方程解算构件;
调度多个实例化的数理方程解算构件之间的数值数据的传递,完成由多个实例化数理方程解算构件组成的数值模拟并行软件。
12.根据权利要求11所述的方法,其特征在于,根据所述数理方程定解问题的控制方程、物理模型以及定解条件,实例化数理方程解算构件进一步包括,
根据所述数理方程定解问题所对应的控制方程,选择待实例化的数理方程解算构件;
根据所述数理方程定解问题,确定其问题特征参数数据;
基于插件计算接口,结合所述数理方程定解问题生成相应的工程物理插件单元;
将所述问题特征参数数据、工程物理插件单元注册到所述待实例化的数理方程解算构件。
13.根据权利要求12所述的方法,其特征在于,所述基于插件计算接口,结合所述数理方程定解问题生成相应的工程物理插件单元进一步包括,
基于所述插件计算接口,结合所述数理方程定解问题的物理模型,生成相应的物理建模插件单元;
基于所述插件计算接口,结合所述数理方程定解问题的定解条件,生成相应的工程模板插件单元。
14.一种基于上述权利要求1-7任意一项所述的数理方程解算构件的数值模拟并行软件开发系统,其特征在于包括,
数理方程解算构件库,其中包括多个对应于不同控制方程的数理方程解算构件;
插件库,其中包括针对于不同物理模型以及不同定解条件的插件单元;
并行计算框架,用于向在工程应用数值模拟对象的数值计算中所涉及的多个数理方程解算构件提供并行计算支持。
15.根据权利要求14所述的系统,其特征在于,所述插件库包括,
物理模型库,其中包括针对于不同物理模型的多个物理建模插件单元;
工程模板库,其中包括针对于不同定解条件的多个工程模板插件单元。
16.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求8-13中任意一项的方法。
17.一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述权利要求8-13中任意一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011070229.4A CN111984916B (zh) | 2020-10-09 | 2020-10-09 | 一种数理方程解算构件及并行软件研发方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011070229.4A CN111984916B (zh) | 2020-10-09 | 2020-10-09 | 一种数理方程解算构件及并行软件研发方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984916A CN111984916A (zh) | 2020-11-24 |
CN111984916B true CN111984916B (zh) | 2021-01-12 |
Family
ID=73450356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011070229.4A Active CN111984916B (zh) | 2020-10-09 | 2020-10-09 | 一种数理方程解算构件及并行软件研发方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984916B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760116A (zh) * | 2011-04-29 | 2012-10-31 | 中国科学院过程工程研究所 | 一种基于硬球模型的并行计算方法 |
CN104375806A (zh) * | 2014-11-19 | 2015-02-25 | 北京应用物理与计算数学研究所 | 一种并行计算构件、方法及相应并行软件开发方法与系统 |
CN104572295A (zh) * | 2014-12-12 | 2015-04-29 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机体系结构的结构网格数据管理方法 |
CN109144511A (zh) * | 2018-08-16 | 2019-01-04 | 北京应用物理与计算数学研究所 | 数值模拟图形用户界面自动生成方法及系统 |
CN110502718A (zh) * | 2019-07-10 | 2019-11-26 | 中国电力科学研究院有限公司 | 一种电力信息系统高性能公式计算实现方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193390A1 (en) * | 2003-03-31 | 2004-09-30 | Drennan Patrick G. | Method and apparatus for rapid evaluation of component mismatch in integrated circuit performance |
WO2006098034A1 (ja) * | 2005-03-17 | 2006-09-21 | Fujitsu Limited | シミュレーション装置,シミュレーション方法,シミュレーション用プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 |
CN111079071A (zh) * | 2016-08-16 | 2020-04-28 | 完美鲲鹏(北京)动漫科技有限公司 | 一种应用于类人形骨架的反向动力学解算方法及装置 |
CN110959157B (zh) * | 2018-05-01 | 2024-03-12 | 谷歌有限责任公司 | 加速大规模相似性计算 |
CN109902404B (zh) * | 2019-03-06 | 2023-04-25 | 中国工程物理研究院总体工程研究所 | 不同阻尼形式的结构时程响应积分的统一递推计算方法 |
-
2020
- 2020-10-09 CN CN202011070229.4A patent/CN111984916B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760116A (zh) * | 2011-04-29 | 2012-10-31 | 中国科学院过程工程研究所 | 一种基于硬球模型的并行计算方法 |
CN104375806A (zh) * | 2014-11-19 | 2015-02-25 | 北京应用物理与计算数学研究所 | 一种并行计算构件、方法及相应并行软件开发方法与系统 |
CN104572295A (zh) * | 2014-12-12 | 2015-04-29 | 北京应用物理与计算数学研究所 | 匹配于高性能计算机体系结构的结构网格数据管理方法 |
CN109144511A (zh) * | 2018-08-16 | 2019-01-04 | 北京应用物理与计算数学研究所 | 数值模拟图形用户界面自动生成方法及系统 |
CN110502718A (zh) * | 2019-07-10 | 2019-11-26 | 中国电力科学研究院有限公司 | 一种电力信息系统高性能公式计算实现方法及系统 |
Non-Patent Citations (1)
Title |
---|
数值模拟领域并行编程模型的要素与实例研究;莫则尧 等;《中国科学: 信息科学》;20150211;第45卷(第3期);385-397 * |
Also Published As
Publication number | Publication date |
---|---|
CN111984916A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Seegyoung Seol et al. | Efficient distributed mesh data structure for parallel automated adaptive analysis | |
CN110383247A (zh) | 由计算机执行的方法、计算机可读介质与异构计算系统 | |
Bosilca | Dense linear algebra on distributed heterogeneous hardware with a symbolic dag approach | |
WO2015170333A2 (en) | Manifold system and synthesis of a manifold system from input models | |
Jalving et al. | A graph-based modeling abstraction for optimization: Concepts and implementation in plasmo. jl | |
Mudalige et al. | A plug-and-play model for evaluating wavefront computations on parallel architectures | |
Li et al. | A generic cloud platform for engineering optimization based on OpenStack | |
Niño et al. | An HPC hybrid parallel approach to the experimental analysis of Fermat’s theorem extension to arbitrary dimensions on heterogeneous computer systems | |
Henneking et al. | hp3D user manual | |
JP5822414B2 (ja) | ソーシャルネットワークインターフェイスを使用した汎用シミュレーションシステム | |
CN111984916B (zh) | 一种数理方程解算构件及并行软件研发方法与系统 | |
Panadero et al. | P3s: A methodology to analyze and predict application scalability | |
Franklin et al. | A general matrix iterative model for dynamic load balancing | |
Dieterle et al. | Iterating Skeletons: Structured Parallelism by Composition | |
Fehling | Algorithms for massively parallel generic hp-adaptive finite element methods | |
Malakonakis et al. | HLS algorithmic explorations for HPC execution on reconfigurable hardware-ECOSCALE | |
Tran et al. | A distributed data mining framework accelerated with graphics processing units | |
Tinetti et al. | Legacy code and parallel computing: updating and parallelizing a numerical model | |
Chandar et al. | CU++: an object oriented framework for computational fluid dynamics applications using graphics processing units | |
Weinbub et al. | ViennaX: a parallel plugin execution framework for scientific computing | |
McKean et al. | Use of model‐based architecture attributes to construct a component‐level trade space | |
Zykov et al. | Application of information processes applicative modelling to virtual machines auto configuration | |
Alefragis et al. | Mapping and scheduling hard real time applications on multicore systems-the argo approach | |
Zhang et al. | Xpressspace: a programming framework for coupling partitioned global address space simulation codes | |
Huang et al. | Software Pipeline–Based Partitioning Method with Trade‐Off between Workload Balance and Communication Optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |