一种CFD并行计算方法技术

技术编号:21246670 阅读:15 留言:0更新日期:2019-06-01 07:10
本发明专利技术公开一种CFD并行计算方法,通过创建计算节点和管理节点,各计算节点打开接收端口、发送数据信息以及接收其他计算节点发送的数据信息,直至所有计算节点接收完数据信息;管理节点打开接收端口并接收计算节点发送的数据信息,对数据信息进行统计,得到统计信息;根据统计信息判断管理节点是否接收所有计算节点发送的信息,能够并行进行任务的自动分配,提高求解速度,一个求解步骤仅打包通信一次,降低了通信频率;使用了先开启接收,再处理,最后发送的流程,逻辑上避免死锁的出现;加权剖分方法仅需少量改动就将原串行求解改为新的并行求解,且计算节点间的通信为去中心化的点对点通信,能够降低通信量并缩短了通信时间。

A Parallel Computing Method for CFD

The invention discloses a CFD parallel computing method. By creating computing nodes and management nodes, each computing node opens the receiving port, sends data information and receives data information sent by other computing nodes until all computing nodes have received data information; the management node opens the receiving port and receives data information sent by computing nodes, and statistics data information. Statistical information is obtained; according to statistical information, it is judged whether the management node receives the information sent by all the computing nodes, which can automatically assign tasks in parallel and improve the solving speed. One solving step only packages the communication once, and reduces the communication frequency; the process of opening reception first, then processing, and finally sending is used to logically avoid deadlock; With only a few modifications, the original serial solution is changed to a new parallel solution, and the communication between computing nodes is decentralized point-to-point communication, which can reduce the traffic and shorten the communication time.

【技术实现步骤摘要】
一种CFD并行计算方法
本专利技术涉及CFD计算领域,特别是涉及一种CFD并行计算方法。
技术介绍
使用CFD计算可以从离散化角度,更精确的模拟物理现象发生时的诸多细节特征。但是CFD计算是一种CPU密集型任务,同时也是内存密集型任务;且面对日趋增长的精度要求所带来的网管量的增加,CFD求解计算所耗费的时间可达数周甚至数月。关于CFD并行计算,现有方法通常依赖如下两类技术:1)OpenMP:由编译器支持,仅需少量代码改动,即可实现并行,适于单机多核并行;2)MPI:一个通信协议,需要求解器代码编写时显式调用,可用于多机多核并行。但是,这两种主流方案都存在一定的问题。对OpenMP而言,由于CFD程序的高度耦合性,并不太适于如图像处理这样简单的并行化;且对于大型计算案例,其内存占用将超过单机内存极限,因此无法处理大型计算案例。而对于MPI,其作为通用的并行通信库,确实能够解决CFD的并行,但其开发调试都颇具难度不宜实现,且有时可因为数据处理关系不合理而导致死锁,这对专注于求解代码开发而编程能力欠佳的CFD从业人员而言是很严重的问题。总之,现有CFD并行,依赖特定技术如OpenMP或MPI,或不适于CFD并行使用,或通讯不方便实现,容易出现死锁,且针对CFD程序的并行化,计算任务的分配,计算节点的组织与管理,节点间的通讯等问题并未有简单易用方案,导致CFD并行求解效率低下。
技术实现思路
本专利技术的目的是提供一种CFD并行计算方法,能够提高CFD并行求解的效率。为实现上述目的,本专利技术提供了如下方案:一种CFD并行计算方法,包括:任意选择一个流场为研究对象;对所述研究对象进行建模,得到网格模型,所述网格模型包括一个或多个网格块文件;运行CFD并行程序,并在所述CFD并行程序中创建管理节点;根据所述管理节点和所述网格块文件,构建网格拓扑结构;获取计算任务;根据所述计算任务对所述网格拓扑结构进行加权剖分,得到局部网格及数据交换通讯索引;根据所述局部网格及数据交换通讯索引,创建计算节点;所述计算节点接收所述管理节点发送的初始化数据,并对所述初始化数据进行预处理;各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息;所述管理节点打开接收端口并接收所述计算节点发送的数据信息,对所述数据信息进行统计,得到统计信息;根据所述统计信息判断所述管理节点是否接收所有所述计算节点发送的信息;若是,则各所述计算节点将自身的计算信息发送至所述管理节点;所述管理节点对所述计算节点发送的计算信息进行合并处理,得到合并信息;根据所述合并信息,确定所述流场的参数;若否,则返回各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息。可选的,所述对所述研究对象进行建模,得到网格模型,所述网格模型包括一个或多个网格块文件,具体包括:对所述研究对象进行建模,得到网格模型,所述所述网格模型包含一个或多个网格块文件,各所述网格块文件中的信息记为一个网格块,所述网格块中包含若干个网格单元。可选的,所述根据所述管理节点和所述网格块文件,构建网格拓扑结构,具体包括:所述管理节点从所述网格块文件中读取网格信息;根据所述网格信息,构建网格拓扑结构。可选的,所述根据所述计算任务对所述网格拓扑结构进行加权剖分,得到局部网格及数据交换通讯索引,具体包括:根据所述计算任务对所述网格拓扑结构通过METIS算法进行加权剖分,得到局部网格及数据交换通讯索引。可选的,所述根据所述合并信息,确定所述流场的参数,具体包括:根据所述合并信息,确定所述流场的参数,所述参数为压强、压力、温度或速度。可选的,所述各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息,具体包括:各所述计算节点打开接收端口,接收来自其他所述计算节点提供的发送单元数据信息;各所述计算节点将通信实体单元信息发送至对应的计算节点,并将所述计算节点的统计信息发送至管理节点;各所述计算节点接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息。可选的,在所述管理节点打开接收端口并接收所述计算节点发送的数据信息,对所述数据信息进行统计,得到统计信息之前,还包括:所述管理节点发送控制指令。可选的,在所述管理节点对所述计算节点发送的计算信息进行合并处理,得到合并信息之后,还包括:所述管理节点关闭所述计算节点接收端口。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:本专利技术提供一种CFD并行计算方法,通过创建计算节点和管理节点,各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息;所述管理节点打开接收端口并接收所述计算节点发送的数据信息,对所述数据信息进行统计,得到统计信息;根据所述统计信息判断所述管理节点是否接收所有所述计算节点发送的信息,能够并行对任务进行自动分配,无需人工干预,提高求解速度,并且一个求解步骤仅打包通信一次,降低了通信频率;且使用了先开启接收,再处理,最后发送的流程,逻辑上避免了死锁的出现;本专利技术中的加权剖分方法仅需少量改动就将原串行求解改为新的并行求解,且计算节点间的通信为去中心化的点对点通信,能够降低通信量并缩短通信时间。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例CFD并行计算方法流程图;图2为本专利技术实施例并行分块对比图;图3为本专利技术实施例通信网络示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的目的是提供一种CFD并行计算方法,能够提高CFD并行求解的效率。为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。图1为本专利技术实施例CFD并行计算方法流程图。如图1所示,一种CFD并行计算方法,包括:步骤101:任意选择一个流场为研究对象;步骤102:对所述研究对象进行建模,得到网格模型,所述网格模型包括一个或多个网格块文件;步骤103:运行CFD并行程序,并在所述CFD并行程序中创建管理节点;步骤104:根据所述管理节点和所述网格块文件,构建网格拓扑结构;步骤105:获取计算任务;步骤106:根据所述计算任务对所述网格拓扑结构进行加权剖分,得到局部网格及数据交换通讯索引;步骤107:根据所述局部网格及数据交换通讯索引,创建计算节点;步骤108:所述计算节点接收所述管理节点发送的初始化数据,并对所述初始化数据进行预处理;步骤109:各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数本文档来自技高网...

【技术保护点】
1.一种CFD并行计算方法,其特征在于,包括:任意选择一个流场为研究对象;对所述研究对象进行建模,得到网格模型,所述网格模型包括一个或多个网格块文件;运行CFD并行程序,并在所述CFD并行程序中创建管理节点;根据所述管理节点和所述网格块文件,构建网格拓扑结构;获取计算任务;根据所述计算任务对所述网格拓扑结构进行加权剖分,得到局部网格及数据交换通讯索引;根据所述局部网格及数据交换通讯索引,创建计算节点;所述计算节点接收所述管理节点发送的初始化数据,并对所述初始化数据进行预处理;各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息;所述管理节点打开接收端口并接收所述计算节点发送的数据信息,对所述数据信息进行统计,得到统计信息;根据所述统计信息判断所述管理节点是否接收所有所述计算节点发送的信息;若是,则各所述计算节点将自身的计算信息发送至所述管理节点;所述管理节点对所述计算节点发送的计算信息进行合并处理,得到合并信息;根据所述合并信息,确定所述流场的参数;若否,则返回各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息。...

【技术特征摘要】
1.一种CFD并行计算方法,其特征在于,包括:任意选择一个流场为研究对象;对所述研究对象进行建模,得到网格模型,所述网格模型包括一个或多个网格块文件;运行CFD并行程序,并在所述CFD并行程序中创建管理节点;根据所述管理节点和所述网格块文件,构建网格拓扑结构;获取计算任务;根据所述计算任务对所述网格拓扑结构进行加权剖分,得到局部网格及数据交换通讯索引;根据所述局部网格及数据交换通讯索引,创建计算节点;所述计算节点接收所述管理节点发送的初始化数据,并对所述初始化数据进行预处理;各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息;所述管理节点打开接收端口并接收所述计算节点发送的数据信息,对所述数据信息进行统计,得到统计信息;根据所述统计信息判断所述管理节点是否接收所有所述计算节点发送的信息;若是,则各所述计算节点将自身的计算信息发送至所述管理节点;所述管理节点对所述计算节点发送的计算信息进行合并处理,得到合并信息;根据所述合并信息,确定所述流场的参数;若否,则返回各所述计算节点打开接收端口、发送数据信息以及接收其他所述计算节点发送的数据信息,直至所有所述计算节点接收完数据信息。2.根据权利要求1所述的CFD并行计算方法,其特征在于,所述对所述研究对象进行建模,得到网格模型,所述网格模型包括一个或多个网格块文件,具体包括:对所述研究对象进行建模,得到网格模型,所述网格模型包含一个或多个网格块文件,各所述网格块文件中的信息记为一个网格块,所述网格块中包含若干个网格单元。3.根据权利要求1所述的CFD并行计算方法,其特...

【专利技术属性】
技术研发人员:胡志远史勇杰徐国华杨玉成路思佳
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1