CN116225722B - 流场变量的通信方法、装置、终端设备及存储介质 - Google Patents
流场变量的通信方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN116225722B CN116225722B CN202310505506.7A CN202310505506A CN116225722B CN 116225722 B CN116225722 B CN 116225722B CN 202310505506 A CN202310505506 A CN 202310505506A CN 116225722 B CN116225722 B CN 116225722B
- Authority
- CN
- China
- Prior art keywords
- data
- grid
- flow field
- communication
- field variable
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 195
- 238000004891 communication Methods 0.000 title claims abstract description 167
- 238000000034 method Methods 0.000 title claims abstract description 120
- 230000008569 process Effects 0.000 claims abstract description 71
- 238000004364 calculation method Methods 0.000 claims abstract description 45
- 238000000638 solvent extraction Methods 0.000 claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000003491 array Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000001351 cycling effect Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 7
- 230000006835 compression Effects 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000012530 fluid Substances 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- 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
- G06F30/28—Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/08—Fluids
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Fluid Mechanics (AREA)
- Computer Graphics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种流场变量的通信方法、装置、终端设备及存储介质,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格。在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
Description
技术领域
本申请属于流体力学技术领域,尤其涉及一种流场变量的通信方法、装置、终端设备及存储介质。
背景技术
计算流体力学(Computational Fluid Dynamics,简称为CFD),是一门利用计算机,数值求解流动控制NS方程的交叉学科。在工业产品研发过程中,通过借助CFD数值模拟,可大幅降低研发费用,缩短设计周期,提高产品的精细化设计水平,为国防工业和国民经济装备建设发展和数字化转型提供有力支撑。
随着CFD和计算机技术的发展,CFD模拟的流动问题也越来越复杂,计算网格规模也随之增大。针对大规模的计算网格,通常采用并行计算,实现流场的快速计算。并行效率是衡量并行计算性能的重要指标,当计算量、计算能力和进程数等条件相同时,并行效率越低并行计算所需时间越长,从而花费的计算资源也越多。通常情况下,计算规模和进程数越大,并行效率越低。在CFD的工程应用中,当进程数达到万核量级时,主流应用软件的并行效率下降严重,存在着大量计算资源浪费的问题。
CFD并行计算中,进程之间存在着大量的通信过程,频繁的通信过程是导致并行效率下降的重要因素。在CFD迭代计算的每个迭代步中,进程之间均有多个流场变量需要通信,计算的问题和采用的模型越复杂,通信的流场变量数量也就越多。在传统的通信方法中,每个流场变量都需要进行一次通信过程,通信的次数等于流场变量的数量,即通信的流场变量数量越多,通信次数也越多。通信次数的增多将会导致并行效率的大幅降低,特别是计算规模越大,这一问题也会越显著。除此之外,通信次数的增多也会导致并行计算鲁棒性的下降甚至无法启动计算等问题,如何能够快速高效得传输多个流场变量是目前急需解决的问题。
发明内容
本申请意在提供一种流场变量的通信方法、装置、终端设备和存储介质,以解决现有技术中存在的不足,本申请要解决的技术问题通过以下技术方案来实现。
第一个方面,本申请实施例提供一种流场变量的通信方法,所述方法包括:
获取初始计算网格,并对所述初始计算网格进行分区,得到多个网格子区域,所述网格子区域至少包括第一网格子区域和第二网格子区域,且所述第一网格子区域和所述第二网格子区域相邻;
创建与所述第一网格子区域对应的第一虚拟网格,以及与所述第二网格子区域对应的第二虚拟网格;
获取所述第一网格子区域的一个或多个流场变量数据;
对所述一个或多个所述流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,所述流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;
将所述第一通信数据容器通过消息传递模式发送至的所述第二虚拟网格。
可选地,所述流场变量数据至少包括流场变量类型、名称和数组维度;其中,所述流场变量类型至少包括整型数据类型、浮点型数据类型或布尔型数据类型中的一种;所述名称至少包括字符串,所述数组维度至少包括二维以及二维以上数组。
可选地,所述获取所述第一网格子区域的一个或多个流场变量数据,包括:
获取所述流场变量数据在所述第一虚拟网格中的内存地址;
依次循环所述第一网格子区域中所有的交界面,并获取交界面对应的实网格单元编号;
依次将所述第一网格子区域内的各个网格单元的流场变量数据对所述第一虚拟网格中的数据进行更新。
可选地,所述对所述一个或多个所述流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中,包括:
为所述第一通信数据容器设置内存空间,并将内存指针移动至所述内存空间首地址;
计算各个流场变量数据对应的第一字节数;
对于所述第一网格子区域内的各个交界面,计算每个交界面在所述第一通信数据容器中的第一面编号;
根据所述第一字节数和所述第一面编号,将所述流场变量数据转换成一维数组的数据;
将所述一维数组的数据压缩至所述第一通信数据容器。
可选地,所述将所述第一通信数据容器通过消息传递模式发送至的所述第二虚拟网格,包括:
根据所述第一通信数据容器的数据长度和进程编号,采用消息传递模式将一维数组的数据放至所述第二虚拟网格,其中,所述数据长度为需要发送数据的总长度,所述进程编号为所述第一网格子区域的进程编号和相邻网格子区域的进程编号。
可选地,所述方法还包括:
接收所述第二网格子区域对应的第二虚拟网格发送的第二通信数据容器对应的数据;
将所述第二通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将所述多个多维的流场变量数据对所述第一虚拟网格中的原始的流场变量数据进行更新。
可选地,所述将所述第一通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将所述多个多维的流场变量数据对所述第一虚拟网格中的原始的流场变量数据进行更新,包括:
将接收到的第二通信数据容器的内存指针移动至内存空间首地址;
对所述第二通信数据容器中的数据进行解压处理,并计算解压后的各个流场变量的第二字节数;
对于第二网格子区域内的各个交界面,计算每个交界面在所述第二通信数据容器中的第二面编号;
根据所述第二字节数和所述第二面编号,将所述流场变量数据逐一更新到所述第一虚拟网格中。
第二个方面,本申请实施例提供一种流场变量的通信装置,所述装置包括:
第一获取模块,用于获取初始计算网格,并对所述初始计算网格进行分区,得到多个网格子区域,所述网格子区域至少包括第一网格子区域和第二网格子区域,且所述第一网格子区域和所述第二网格子区域相邻;
创建模块,用于创建与所述第一网格子区域对应的第一虚拟网格,以及与所述第二网格子区域对应的第二虚拟网格;
第二获取模块,用于获取所述第一网格子区域的一个或多个流场变量数据;
压缩模块,用于对所述一个或多个所述流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,所述流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;
发送模块,用于将所述第一通信数据容器通过消息传递模式发送至的所述第二虚拟网格。
可选地,所述流场变量数据至少包括流场变量类型、名称和数组维度;其中,所述流场变量类型至少包括整型数据类型、浮点型数据类型或布尔型数据类型中的一种;所述名称至少包括字符串,所述数组维度至少包括二维以及二维以上数组。
可选地,所述第二获取模块用于:
获取所述流场变量数据在所述第一虚拟网格中的内存地址;
依次循环所述第一网格子区域中所有的交界面,并获取交界面对应的实网格单元编号;
依次将所述第一网格子区域内的各个网格单元的流场变量数据对所述第一虚拟网格中的数据进行更新。
可选地,所述压缩模块用于:
为所述第一通信数据容器设置内存空间,并将内存指针移动至所述内存空间首地址;
计算各个流场变量数据对应的第一字节数;
对于所述第一网格子区域内的各个交界面,计算每个交界面在所述第一通信数据容器中的第一面编号;
根据所述第一字节数和所述第一面编号,将所述流场变量数据转换成一维数组的数据;
将所述一维数组的数据压缩至所述第一通信数据容器。
可选地,所述发送模块用于:
根据所述第一通信数据容器的数据长度和进程编号,采用消息传递模式将一维数组的数据放至所述第二虚拟网格,其中,所述数据长度为需要发送数据的总长度,所述进程编号为所述第一网格子区域的进程编号和相邻网格子区域的进程编号。
可选地,所述装置还包括接收模块,所述接收模块用于:
接收所述第二网格子区域对应的第二虚拟网格发送的第二通信数据容器对应的数据;
将所述第二通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将所述多个多维的流场变量数据对所述第一虚拟网格中的原始的流场变量数据进行更新。
可选地,所述接收模块用于:
将接收到的第二通信数据容器的内存指针移动至内存空间首地址;
对所述第二通信数据容器中的数据进行解压处理,并计算解压后的各个流场变量的第二字节数;
对于第二网格子区域内的各个交界面,计算每个交界面在所述第二通信数据容器中的第二面编号;
根据所述第二字节数和所述第二面编号,将所述流场变量数据逐一更新到所述第一虚拟网格中。
第三个方面,本申请实施例提供一种终端设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的流场变量的通信方法。
第四个方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的流场变量的通信方法。
本申请实施例包括以下优点:
本申请实施例提供的流场变量的通信方法、装置、终端设备和存储介质,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中一种流场变量的通信方法的流程图;
图2为本申请一实施例中网格分区和虚网格构造过程;
图3为本申请一实施例中网格子区域之间的一次通信过程;
图4为本申请一实施例中一个迭代步中所有流场变量的通信过程;
图5为本申请一实施例中一个迭代步中的所有流场变量的集中通信过程;
图6为本申请一实施例中一次迭代中的完整通信过程;
图7是本申请的一种流场变量的通信装置实施例的结构框图;
图8是本申请的一种终端设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
NS方程:Navier-Stokes方程的简称,用于描述流体力学的控制方程;
流场变量:流动中的压力、速度、密度、温度等状态量;
CFD:Computational Fluid Dynamics的简称,用于求解NS方程获得流场变量,通过数值离散方法,将连续的NS方程离散为Ax=B形式的线性方程组,并通过方程组求解技术求解得到流场变量。
计算网格:将连续的流场离散为有限个离散单元(三角形、四面体等),这些单元以及它们之间的几何拓扑关系,称为计算网格;
网格子区域:原始的计算网格为了适应多进程并行计算,将其剖分成多个独立区域,每个区域成为一个网格子区域。
交界面:网格在剖分成多个子区域之后,每个子区域中包含的和其它子区域相连的面称为交界面。
迭代计算:是数值计算中的一类典型方法,应用于方程求根,方程组求解,矩阵求特征值等方面。
迭代步:迭代计算中的一次重复过程。
进程:是计算机中的程序关于某数据集合上的一次运动活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
发送缓冲区:为用于进程之间所需要发送的数据临时存储的一块内存空间。
接收缓冲区:为用于进程之间所需要接收的数据临时存储的一块内存空间。
虚网格:每个子区域中用于存储相邻子区域中网格数据的单元。
实网格:和虚网格相对应,为真实参与计算的网格。
通信数据容器:专门用于通信的一种数据容器。
消息传递模式(MPI):是一个跨语言的通讯协议,用于编写并行计算机程序。
本申请一实施例提供一种流场变量的通信方法,用于流场变量的并发传输。本实施例的执行主体为流场变量的通信装置,设置在终端设备上,例如,终端设备至少包括计算机终端等。
参照图1,示出了本申请的一种流场变量的通信方法实施例的步骤流程图,该方法具体可以包括如下步骤:
S101、获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;
具体地,首先将初始计算网格进行分区,分区后将产生多个网格子区域,每个进程负责一个子区域;然后每个子区域构造出虚拟网格用于存储相邻子区域网格单元的数据;最后是迭代计算直至收敛。网格分区和虚网格构造的具体过程如图2所示。
S102、创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;
具体地,并行计算的每个迭代步中均存在多次通信过程,通信过程是影响并行效率的重要因素。通信过程的具体过程为:通过不同子区域网格之间的数据传输过程,为分区后交界面对应的虚拟网格赋值,从而实现各子区域的独立计算过程。一次通信的示意过程如图3所示,子区域1将交界面左侧单元的值发送给子区域2,并赋值给子区域2中的虚网格中;同理,子区域2中将交界面对应的实网格单元的值发送给子区域1,并赋值给子区域1中的虚网格中。
CFD计算的每个迭代步中,存在多个流场变量需要通信,每个变量的通信即为一次通信过程,即图3中所示的一次通信过程。具体地,一个迭代步中需要通信的流场变量包含原始变量“q”、温度“t”、原始变量的三个方向梯度“dqdx、dqdy、dqdz”、限制器系数“limiter”等等。计算的问题越复杂,采用的模型越复杂,需要通信的流场变量的数量也就越多,通信的次数也就越多。一个迭代步中需要通信的流场变量具体如图4所示。
S103、获取第一网格子区域的一个或多个流场变量数据;
具体地,终端设备获取第一网格子区域内的一个或多个流场变量数据,例如,流场变量数据包含原始变量“q”、温度“t”、原始变量的三个方向梯度“dqdx、dqdy、dqdz”、限制器系数“limiter”等等 。
S104、对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;
从图5中可以看出一个迭代步中,通信的次数和需要通信的流场变量的数量相等,这种通信方式会导致严重的通信延迟,并大大降低并行效率。本发明中提出的集中通信方法首先将需要通信的流场变量压缩至通信数据容器中,然后将压缩后的通信数据容器发送至其它子区域,同时从其它子区域接收通信数据容器,解压后的数据用于迭代计算过程。集中通信的具体示意过程如图5所示。
S105、将第一通信数据容器通过消息传递模式发送至的第二虚拟网格。
具体地,终端设备计算MPI(消息传递模式)发送所需要的信息,如通信数据容器中的数据长度和进程编号。数据长度指需要发送数据的总长度,进程编号指的是本子区域所在的进程编号和相邻子区域所在进程编号;使用MPI中MPI_Send语句将所有数据进行发送。使用MPI中MPI_Recv语句从相邻子区域接收到其发送至本子区域的通信数据容器。
本申请实施例提供的流场变量的通信方法,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
本申请又一实施例对上述实施例提供的流场变量的通信方法做进一步补充说明。
可选地,流场变量数据至少包括流场变量类型、名称和数组维度;其中,流场变量类型至少包括整型数据类型、浮点型数据类型或布尔型数据类型中的一种;名称至少包括字符串,数组维度至少包括二维以及二维以上数组。
可选地,获取第一网格子区域的一个或多个流场变量数据,包括:
获取流场变量数据在第一虚拟网格中的内存地址;
依次循环第一网格子区域中所有的交界面,并获取交界面对应的实网格单元编号;
依次将第一网格子区域内的各个网格单元的流场变量数据对第一虚拟网格中的数据进行更新。
可选地,对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中,包括:
为第一通信数据容器设置内存空间,并将内存指针移动至内存空间首地址;
计算各个流场变量数据对应的第一字节数;
对于第一网格子区域内的各个交界面,计算每个交界面在第一通信数据容器中的第一面编号;
根据第一字节数和第一面编号,将流场变量数据转换成一维数组的数据;
将一维数组的数据压缩至第一通信数据容器。
可选地,将第一通信数据容器通过消息传递模式发送至的第二虚拟网格,包括:
根据第一通信数据容器的数据长度和进程编号,采用消息传递模式将一维数组的数据放至第二虚拟网格,其中,数据长度为需要发送数据的总长度,进程编号为第一网格子区域的进程编号和相邻网格子区域的进程编号。
可选地,方法还包括:
接收第二网格子区域对应的第二虚拟网格发送的第二通信数据容器对应的数据;
将第二通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将多个多维的流场变量数据对第一虚拟网格中的原始的流场变量数据进行更新。
可选地,将第一通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将多个多维的流场变量数据对第一虚拟网格中的原始的流场变量数据进行更新,包括:
将接收到的第二通信数据容器的内存指针移动至内存空间首地址;
对第二通信数据容器中的数据进行解压处理,并计算解压后的各个流场变量的第二字节数;
对于第二网格子区域内的各个交界面,计算每个交界面在第二通信数据容器中的第二面编号;
根据第二字节数和第二面编号,将流场变量数据逐一更新到第一虚拟网格中。
集中通信方法详细的示意图如图6所示,图6中的MPI_Send语句将所有数据进行发送,使用MPI中MPI_Recv语句从相邻子区域接收到其发送至本子区域的通信数据容器;图6中的Zone1为子区域1,Zone2为子区域2,从子区域1向子区域2发送流场变量,例如,“q”,“dqdx”,“limiter”和其他的流场变量(即图6中的Others);集中通信方法的基本原理如上述介绍,具体实现过程中完整的集中通信方法的步骤包括7个步骤:注册需要通信的流场变量、更新发送缓冲区数据、压缩至数据容器、进程间发送和接收数据容器、从数据容器中解压数据、虚拟网格赋值,释放缓存区内存。
集中通信方法的具体步骤包括:
步骤1:注册需要通信的流场变量。通信过程中的初始化操作,主要是为计算过程中需要通信的流场变量开辟相应的内存空间;
包括:
步骤11:定义所需要通信的流场变量的类型、名字和数组维度。
流场变量类型是指如整型、浮点型或布尔型数据等数据类型;流场变量名字是指原始变量“q”、“t”,原始变量梯度量“dqdx”,“dtdx”,“limiter”等字符串;变量维度指针所需要开辟的数组的维度,开辟的数组为二维数组,第一维是所包含数据的维度,比如原始变量“q”包含密度、压力和三个方向的速度共5个变量,第二维是本子区域(zone)交界面的总面数。
步骤12:按照步骤11中的定义,为发送缓冲区开辟内存空间。发送缓冲区用于存储即将发送给其它子区域的数据。
步骤13:按照步骤11中的定义,为接收缓冲区开辟内存空间。接收缓冲区用于存储从其它子区域接收到的数据。
步骤2:更新发送缓存区中的数据。迭代计算过程中,根据最新计算得到的流场变量,修改发送缓冲区中的流场变量数据。
包括:
步骤21:获取需要通信的流场变量在发送缓冲区中对应的内存地址;
步骤22:依次循环本子区域中所有的交界面,并获取交界面对应的实网格单元编号。
步骤23:用实网格单元的流场变量值更新发送缓冲区中的数据。
步骤3:将发送缓冲区的数据压缩至通信数据容器。发送缓冲区中存储着所有要发送的数据,然而这些数据是以多个多维数组的形式进行存储,压缩至通信数据容器的过程实现了将多个多维数组转换为一个长度较大的一维数组形式。步骤3是将发送缓冲区的数据压缩至通信数据容器中,发送缓冲区中包含了所有需要传输的流场变量,如“q”、“t”等等。发送缓冲区中需要通信的变量存储形式为多个二维数组的形式,基于通信数据容器可以将发送缓冲区中的所有数据转换为一个一维数组的形式。
具体地,步骤3包括:
步骤31:为通信数据容器开辟内存空间,并将其内存指针移动至内存空间首地址。
步骤32:循环所有需要压缩的流场变量,并计算其所需传输数据的字节数。
步骤33:依据步骤32计算的字节数,并将需要通信的数据复制到通信数据容器中。
具体地,传统方法是直接将发送缓冲区中的数据进行发送,本方法首先将所有需要发送的变量压缩至通信数据容器,然后进程之间发送的通信数据容器,接收到通信数据容器后,解压并更新接收缓冲区中的数据,实现了将多个二维数组转换为一个大的一维数组的过程。
步骤33中具体的压缩过程包括:
步骤331:循环所有交界面,并计算每个交界面在发送缓冲区中对应的面编号。
步骤332:根据步骤32中计算得到字节数,将发送缓冲区的数据转换为一维数组的形式。
步骤333:将一维数组中的数据压缩至通信数据容器中。
步骤4:将通信数据容器使用消息传递模式(MPI)发送至其他进程。
包括:
步骤41:计算MPI发送所需要的信息,如通信数据容器中的数据长度和进程编号。数据长度指需要发送数据的总长度,进程编号指的是本子区域所在的进程编号和相邻子区域所在进程编号;
步骤43:使用MPI中MPI_Isend语句将所有数据进行发送。
步骤44:使用MPI中MPI_Irecv语句从相邻子区域接收到其发送至本子区域的通信数据容器。
步骤5:从其他进程接收数据并更新接收缓冲区的数据。步骤4实现了进程间数据的通信过程,每个进程既要向其它进程发送数据,同时也会从其它进程接收数据。每个进程接收到数据之后,首先将接收的数据从一维形式转换为多个二维数组的形式,然后用其更新接收缓冲区的数据。
步骤5为对从其它子区域接收到的数据的操作过程。每个子区域会向其它子区域发送数据,也会从其它子区域接收数据,接收到的数据将用于更新接收缓冲区中的数据。
具体地,步骤5包括:
步骤51:将接收到的通信数据容器的内存指针移动至内存空间首地址。
步骤52:循环所有需要解压的流场变量,并计算每个流场变量接收的字节数。
步骤53:从通信数据容器中读取到此变量的数据,循环所有交界面,将读取所得到的数据依次复制到接收缓冲区中。
步骤53为解压过程,包括:
步骤531:从通信数据容器中读取步骤52中计算得到字节数大小的数据,并存储为一维数组的形式。
步骤532:循环所有交界面,并计算每个交界面在接收缓冲区中对应的面编号。
步骤533:依次将步骤331中读取到的一维数组中的数据逐个面更新到接收缓冲区中。
步骤6:根据接收缓冲区的数据,更新虚拟网格单元的数据。虚拟网格单元中的数据是直接参与迭代计算,需要根据缓冲区的数据更新虚拟网格单元中的数据。
包括:
步骤61:获取需要通信的流场变量在接收缓冲区中对应的内存地址;
步骤62:依次循环本子区域中所有的交界面,并获取交界面对应的需网格单元编号。
步骤63:用接收缓冲区中的数据更新虚网格单元的流场变量值。
步骤7:释放需要通信的流场变量的内存空间。将发送/接收缓冲区中的通信的流场变量的内存空间释放。
包括:
步骤71:释放发送缓冲区的内存空间。
步骤72:释放接收缓冲区的内存空间。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
本申请实施例提供的流场变量的通信方法,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
本申请另一实施例提供一种流场变量的通信装置,用于执行上述实施例提供的流场变量的通信方法。
参照图7,示出了本申请的一种流场变量的通信装置实施例的结构框图,该装置具体可以包括如下模块:第一获取模块701、创建模块702、第二获取模块703、压缩模块704和发送模块705,其中:
第一获取模块701用于获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;
创建模块702用于创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;
第二获取模块703用于获取第一网格子区域的一个或多个流场变量数据;
压缩模块704用于对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;
发送模块705用于将第一通信数据容器通过消息传递模式发送至的第二虚拟网格。
本申请实施例提供的流场变量的通信装置,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
本申请又一实施例对上述实施例提供的流场变量的通信装置做进一步补充说明。
可选地,流场变量数据至少包括流场变量类型、名称和数组维度;其中,流场变量类型至少包括整型数据类型、浮点型数据类型或布尔型数据类型中的一种;名称至少包括字符串,数组维度至少包括二维以及二维以上数组。
可选地,第二获取模块用于:
获取流场变量数据在第一虚拟网格中的内存地址;
依次循环第一网格子区域中所有的交界面,并获取交界面对应的实网格单元编号;
依次将第一网格子区域内的各个网格单元的流场变量数据对第一虚拟网格中的数据进行更新。
可选地,压缩模块用于:
为第一通信数据容器设置内存空间,并将内存指针移动至内存空间首地址;
计算各个流场变量数据对应的第一字节数;
对于第一网格子区域内的各个交界面,计算每个交界面在第一通信数据容器中的第一面编号;
根据第一字节数和第一面编号,将流场变量数据转换成一维数组的数据;
将一维数组的数据压缩至第一通信数据容器。
可选地,发送模块用于:
根据第一通信数据容器的数据长度和进程编号,采用消息传递模式将一维数组的数据放至第二虚拟网格,其中,数据长度为需要发送数据的总长度,进程编号为第一网格子区域的进程编号和相邻网格子区域的进程编号。
可选地,装置还包括接收模块,接收模块用于:
接收第二网格子区域对应的第二虚拟网格发送的第二通信数据容器对应的数据;
将第二通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将多个多维的流场变量数据对第一虚拟网格中的原始的流场变量数据进行更新。
可选地,接收模块用于:
将接收到的第二通信数据容器的内存指针移动至内存空间首地址;
对第二通信数据容器中的数据进行解压处理,并计算解压后的各个流场变量的第二字节数;
对于第二网格子区域内的各个交界面,计算每个交界面在第二通信数据容器中的第二面编号;
根据第二字节数和第二面编号,将流场变量数据逐一更新到第一虚拟网格中。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的流场变量的通信装置,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
本申请再一实施例提供一种终端设备,用于执行上述实施例提供的流场变量的通信方法。
图8是本申请的一种终端设备的结构示意图,如图8所示,该终端设备包括:至少一个处理器801和存储器802;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的流场变量的通信方法。
本实施例提供的终端设备,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
本申请又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的流场变量的通信方法。
根据本实施例的计算机可读存储介质,通过获取初始计算网格,并对初始计算网格进行分区,得到多个网格子区域,网格子区域至少包括第一网格子区域和第二网格子区域,且第一网格子区域和第二网格子区域相邻;创建与第一网格子区域对应的第一虚拟网格,以及与第二网格子区域对应的第二虚拟网格;获取第一网格子区域的一个或多个流场变量数据;对一个或多个流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;将第一通信数据容器通过消息传递模式发送至的第二虚拟网格在CFD迭代计算过程中,通过建立通信数据容器,将多个流场变量数据压缩后保存在通信数据容器中,然后发送至其他的线程中,这样,可以将一个迭代步中的多次通信过程减少为一次通信过程,从而实现了并行效率的大幅提升。
应该指出,上述详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语均具有与本申请所属技术领域的普通技术人员的通常理解所相同的含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本申请的实施方式能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位,如旋转90度或处于其他方位,并且对这里所使用的空间相对描述作出相应解释。
在上面详细的说明中,参考了附图,附图形成本文的一部分。在附图中,类似的符号典型地确定类似的部件,除非上下文以其他方式指明。在详细的说明书、附图及权利要求书中所描述的图示说明的实施方案不意味是限制性的。在不脱离本文所呈现的主题的精神或范围下,其他实施方案可以被使用,并且可以作其他改变。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.流场变量的通信方法,其特征在于,所述方法包括:
获取初始计算网格,并对所述初始计算网格进行分区,得到多个网格子区域,所述网格子区域至少包括第一网格子区域和第二网格子区域,且所述第一网格子区域和所述第二网格子区域相邻;创建与所述第一网格子区域对应的第一虚拟网格,以及与所述第二网格子区域对应的第二虚拟网格;所述虚拟网格为每个子区域中用于存储相邻子区域中网格数据的单元;
获取所述第一网格子区域的一个或多个流场变量数据;
对一个或多个所述流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,所述流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;
将所述第一通信数据容器通过消息传递模式发送至的所述第二虚拟网格;
所述方法还包括:
接收所述第二网格子区域对应的第二虚拟网格发送的第二通信数据容器对应的数据;
将所述第二通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将所述多个多维的流场变量数据对所述第一虚拟网格中的原始的流场变量数据进行更新;
其中:
所述获取所述第一网格子区域的一个或多个流场变量数据,包括:
获取所述流场变量数据在所述第一虚拟网格中的内存地址;
依次循环所述第一网格子区域中所有的交界面,并获取交界面对应的实网格单元编号;
依次将所述第一网格子区域内的各个网格单元的流场变量数据对所述第一虚拟网格中的数据进行更新。
2.根据权利要求1所述的流场变量的通信方法,其特征在于,所述流场变量数据至少包括流场变量类型、名称和数组维度;其中,所述流场变量类型至少包括整型数据类型、浮点型数据类型或布尔型数据类型中的一种;所述名称至少包括字符串,所述数组维度至少包括二维以及二维以上数组。
3.根据权利要求2所述的流场变量的通信方法,其特征在于,所述对所述一个或多个所述流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中,包括:
为所述第一通信数据容器设置内存空间,并将内存指针移动至所述内存空间首地址;
计算各个流场变量数据对应的第一字节数;
对于所述第一网格子区域内的各个交界面,计算每个交界面在所述第一通信数据容器中的第一面编号;
根据所述第一字节数和所述第一面编号,将所述流场变量数据转换成一维数组的数据;
将所述一维数组的数据压缩至所述第一通信数据容器。
4.根据权利要求3所述的流场变量的通信方法,其特征在于,所述将所述第一通信数据容器通过消息传递模式发送至的所述第二虚拟网格,包括:
根据所述第一通信数据容器的数据长度和进程编号,采用消息传递模式将一维数组的数据放至所述第二虚拟网格,其中,所述数据长度为需要发送数据的总长度,所述进程编号为所述第一网格子区域的进程编号和相邻网格子区域的进程编号。
5.根据权利要求1所述的流场变量的通信方法,其特征在于,所述将所述第二通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将所述多个多维的流场变量数据对所述第一虚拟网格中的原始的流场变量数据进行更新,包括:
将接收到的第二通信数据容器的内存指针移动至内存空间首地址;
对所述第二通信数据容器中的数据进行解压处理,并计算解压后的各个流场变量的第二字节数;
对于第二网格子区域内的各个交界面,计算每个交界面在所述第二通信数据容器中的第二面编号;
根据所述第二字节数和所述第二面编号,将所述流场变量数据逐一更新到所述第一虚拟网格中。
6.一种流场变量的通信装置,其特征在于,所述装置包括:
第一获取模块,用于获取初始计算网格,并对所述初始计算网格进行分区,得到多个网格子区域,所述网格子区域至少包括第一网格子区域和第二网格子区域,且所述第一网格子区域和所述第二网格子区域相邻;
创建模块,用于创建与所述第一网格子区域对应的第一虚拟网格,以及与所述第二网格子区域对应的第二虚拟网格;所述虚拟网格为每个子区域中用于存储相邻子区域中网格数据的单元;
第二获取模块,用于获取所述第一网格子区域的一个或多个流场变量数据;
压缩模块,用于对一个或多个所述流场变量数据进行压缩,并将压缩后的数据存储到第一通信数据容器中;其中,所述流场变量数据为多个多维数组数据,压缩后的数据为一维数组数据;
发送模块,用于将所述第一通信数据容器通过消息传递模式发送至的所述第二虚拟网格;
所述装置还包括接收模块,所述接收模块用于:接收所述第二网格子区域对应的第二虚拟网格发送的第二通信数据容器对应的数据;
将所述第二通信数据容器中的数据转换成多个多维数据的数据,得到多个多维的流场变量数据,并将所述多个多维的流场变量数据对所述第一虚拟网格中的原始的流场变量数据进行更新;
其中:
所述第二获取模块用于:
获取所述流场变量数据在所述第一虚拟网格中的内存地址;
依次循环所述第一网格子区域中所有的交界面,并获取交界面对应的实网格单元编号;
依次将所述第一网格子区域内的各个网格单元的流场变量数据对所述第一虚拟网格中的数据进行更新。
7.一种终端设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-5中任一项所述的流场变量的通信方法。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-5中任一项所述的流场变量的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310505506.7A CN116225722B (zh) | 2023-05-08 | 2023-05-08 | 流场变量的通信方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310505506.7A CN116225722B (zh) | 2023-05-08 | 2023-05-08 | 流场变量的通信方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116225722A CN116225722A (zh) | 2023-06-06 |
CN116225722B true CN116225722B (zh) | 2023-07-14 |
Family
ID=86584644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310505506.7A Active CN116225722B (zh) | 2023-05-08 | 2023-05-08 | 流场变量的通信方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225722B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522827B (zh) * | 2023-07-04 | 2023-10-20 | 北京凌云智擎软件有限公司 | 一种气动热环境计算的流动变量重构方法、设备及装置 |
CN117609169B (zh) * | 2024-01-24 | 2024-03-26 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种基于单个文件的并行流场原位无损压缩方法及系统 |
CN118940680B (zh) * | 2024-10-14 | 2024-12-17 | 北京凌云智擎软件有限公司 | 一种网格流场的处理方法、装置、设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733532B2 (en) * | 2016-01-27 | 2020-08-04 | Bonsai AI, Inc. | Multiple user interfaces of an artificial intelligence system to accommodate different types of users solving different types of problems with artificial intelligence |
CN109088776B (zh) * | 2018-09-12 | 2020-07-28 | 西安交通大学 | 一种基于超级计算机的并行cfd计算与通信重叠优化方法 |
US11481329B1 (en) * | 2019-07-15 | 2022-10-25 | Reservoir Labs, Inc. | Optimizing memory bandwidth in spatial architectures |
CN114490011B (zh) * | 2020-11-12 | 2024-06-18 | 上海交通大学 | N体模拟在异构架构的并行加速实现方法 |
CN113254241B (zh) * | 2021-06-25 | 2021-09-21 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种应用于cfd高性能计算的数据跨进程传输方法 |
CN113392472B (zh) * | 2021-08-17 | 2021-11-09 | 北京航空航天大学 | 一种飞行器气动特性模拟的OpenMP并行扰动域更新方法 |
CN113900808B (zh) * | 2021-10-09 | 2024-09-20 | 合肥工业大学 | 一种基于任意多面体非结构网格的mpi并行数据结构 |
CN115080225A (zh) * | 2022-03-07 | 2022-09-20 | 中山大学 | 一种单源最短路径计算方法与系统 |
CN115659727A (zh) * | 2022-10-12 | 2023-01-31 | 重庆大学 | 带螺旋复杂结构的网格划分法 |
CN115827235A (zh) * | 2022-12-12 | 2023-03-21 | 招银云创信息技术有限公司 | 分布式系统的控制方法和存储介质 |
-
2023
- 2023-05-08 CN CN202310505506.7A patent/CN116225722B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116225722A (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116225722B (zh) | 流场变量的通信方法、装置、终端设备及存储介质 | |
CN109145255B (zh) | 一种稀疏矩阵lu分解行更新的异构并行计算方法 | |
US9612750B2 (en) | Autonomous memory subsystem architecture | |
CN115016951B (zh) | 流场数值模拟方法、装置、计算机设备和存储介质 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN101937425B (zh) | 基于gpu众核平台的矩阵并行转置方法 | |
CN113177335A (zh) | 快中子反应堆全堆芯结构大规模网格自动生成方法及系统 | |
CN116258042A (zh) | 一种基于ddm的大规模传热异构并行仿真方法 | |
CN115952385B (zh) | 用于大规模稀疏方程组求解的并行超节点排序方法及系统 | |
Mudalige et al. | A plug-and-play model for evaluating wavefront computations on parallel architectures | |
CN114511094B (zh) | 一种量子算法的优化方法、装置、存储介质与电子装置 | |
CN116167304B (zh) | 基于神威架构的油藏数值模拟gmres优化方法及系统 | |
CN118210624A (zh) | 基于cuda的gpu并行有限单元法 | |
Kumar et al. | Spatially-aware parallel I/O for particle data | |
CN110209631A (zh) | 大数据处理方法及其处理系统 | |
CN113157806B (zh) | 网格数据分布式存储服务系统、方法、装置、设备及介质 | |
Yu et al. | GPU-based JFNG method for power system transient dynamic simulation | |
Poyraz et al. | Application-specific I/O optimizations on petascale supercomputers | |
Cohen et al. | Statistical analysis of message passing programs to guide computer design | |
CN112559435A (zh) | 基于片上分块的大规模三维矩阵转置的众核并行优化方法 | |
CN119271366A (zh) | 一种用于计算流体力学仿真中的gpu计算方法 | |
Yellapragada | Analysis of communication and computation overlap in accelerated programs | |
Mackay et al. | A study of I/O in a parallel finite element groundwater transport code | |
Martín Álvarez et al. | Efficient data redistribution for malleable applications | |
Wu et al. | MPI derived datatypes and data communication analysis in meteorological applications |
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 |