CN118152155A - 一种耦合界面数据并行通信的快速构建方法、设备及介质 - Google Patents
一种耦合界面数据并行通信的快速构建方法、设备及介质 Download PDFInfo
- Publication number
- CN118152155A CN118152155A CN202410588176.7A CN202410588176A CN118152155A CN 118152155 A CN118152155 A CN 118152155A CN 202410588176 A CN202410588176 A CN 202410588176A CN 118152155 A CN118152155 A CN 118152155A
- Authority
- CN
- China
- Prior art keywords
- solver
- data
- communication
- coupling
- envelope
- 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.)
- Granted
Links
- 230000008878 coupling Effects 0.000 title claims abstract description 171
- 238000010168 coupling process Methods 0.000 title claims abstract description 171
- 238000005859 coupling reaction Methods 0.000 title claims abstract description 171
- 230000006854 communication Effects 0.000 title claims abstract description 113
- 238000004891 communication Methods 0.000 title claims abstract description 108
- 238000010276 construction Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 224
- 230000008569 process Effects 0.000 claims abstract description 198
- 238000013507 mapping Methods 0.000 claims abstract description 40
- 238000013506 data mapping Methods 0.000 claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种耦合界面数据并行通信的快速构建方法、设备及介质,首先,求解器的所有进程围绕其耦合面网格计算包络框;第二,求解器A根据数据映射方案扩大其耦合面包络框,并发送到求解器B的每个进程;第三,在求解器B端进行包络框重合度检测,记录有交集的求解器A的包络框;第四,在求解器B端建立通信映射;最后,根据通信映射关系,构建求解器B耦合面发送的通信数据,以及求解器A耦合面发送的通信数据。本发明根据数据映射方案,构建并行计算进程之间的通信映射关系,构建求解器耦合面传递的通信数据。通过减少求解器A与求解器B通信的次数、通信量和减少并行通信初始化的步骤,从而提高并行通信构建的效率。
Description
技术领域
本发明涉及多学科耦合数值模拟领域,具体而言,涉及一种耦合界面数据并行通信的快速构建方法、设备及介质。
背景技术
多学科耦合数值模拟是指联合多个学科求解器对复杂物理现象或者工程问题进行数值模拟。为实现耦合模拟,求解域耦合面的数据和网格需要在不同求解器之间实现实时传递,传递的数据主要包括位移、压力、速度等。
多学科耦合模拟并行计算的数据传递方法可以分为串行通信和并行通信两种。串行通信是指求解器A、求解器B在通信过程中,求解器B的主进程负责收集各个从进程的物理量,再将完整的物理量发送到求解器A的各进程。这种方法对主进程的内存要求较高,主进程需要存储求解器B完整的物理量,并且主进程需要将求解器B完整的物理量发送到求解器A的每个进程,通信开销大。为了提高多学科耦合数值模拟中数据通信的效率,可以采用去中心化的设计,实现求解器之间的并行通信。并行通信是指在通信过程,耦合数据直接在求解器的进程之间传递而不依赖主进程,即求解器B的各个进程的数据直接传递给求解器A的各个进程。
为实现并行通信,需要根据各个求解器耦合面的分区和分布,建立求解器之间直接通信的渠道和内容,即明确求解器A的哪些计算节点需要和求解器B哪些计算节点进行通信,以及通信的内容。在现有的并行通信构建方法中,一般采用两级初始化的方法建立通信映射关系,在第一级初始化中找到潜在的通信伙伴进程,在第二级初始化中明确具体的数据通信列表。该方法中,需要进行四次数据通信,分别是交换求解器进程的耦合面网格的边界、交换潜在的通信伙伴进程、交换求解器进程的完整耦合面网格、发送通信映射。因此存在步骤较多,数据通信量较大的问题。
发明内容
有鉴于此,本发明提供一种耦合界面数据并行通信的快速构建方法、设备及介质,以解决上述问题。
为解决以上技术问题,本发明提供了
一种耦合界面数据并行通信的快速构建方法,包括:
获取用于耦合的两个求解器,定义其中一个为求解器A,另一个为求解器B,其分别适配有程序,用于存储被提取的数据;
提取两个求解器的进程耦合面网格边界,并分别构建进程耦合面的包络框;
按照预设数据映射,扩大求解器A的耦合面包络框;
将求解器A的所有包络框发送到求解器B的每个进程中,并对求解器B的进程与求解器A的所有包络框进行重合度检测;
在求解器B端建立与求解器A的通信映射,并通过求解器B基于该映射向求解器A发送通信数据;
求解器A接受求解器B传输的数据后,向求解器B发送数据;
求解器B接受数据后,将其进行存储,完成映射验证。
作为一种可选方式,提取两个求解器的进程耦合面网格边界,并分别构建进程耦合面的包络框包括:
每个计算进程遍历所包含的耦合面节点,确定耦合面网格在三个坐标方向的最大值与最小值;其中,构建进程耦合面的包络框时,还设置有纠偏系数,纠偏系数用于消除数值误差导致的包络框范围与耦合面网格边界的交叉。
作为一种可选方式,将求解器A的所有包络框发送到求解器B的每个进程中包括:
求解器A的主进程收集所有从进程的包络框后,求解器A的主进程将收集到的包络框传递给求解器B的主进程;之后,求解器B的主进程将求解器A的包络框发送到求解器B的每个进程。
作为一种可选方式,对求解器B的进程与求解器A的所有包络框进行重合度检测,包括:
求解器B的每个进程分别生成耦合面包络框,记作BBi;再采用BBi的每个角点遍历求解器A的所有包络框;然后,判断角点PC是否在求解器A的包络框内,如果存在一个角点在求解器A的某一包络框Aj内,则认定Bi的耦合面与Aj的耦合面存在交集,将与Bi所有存在交集的求解器A的包络框存储在包络框集合中。
作为一种可选方式,在求解器B端建立与求解器A的通信映射,包括前置步骤:
求解器B的所有进程遍历所存储的包络框集合,并利用包络框过滤求解器B所包含的耦合面网格,得到所有位于包络框内节点集合;
通过求解器B基于该映射向求解器A发送通信数据,包括:
求解器B的每个进程Bi遍历通信映射remoteMap,获取用于标识求解器A的目标进程和节点序号,将求解器B的进程号、节点数量与序号对应的节点坐标和节点值作为通信数据,利用MPI的点对点通信模式将通信数据从求解器B端传递到求解器A中对应的进程。
作为一种可选方式,求解器A接受求解器B传输的数据,包括:
求解器A的每个进程收集求解器B进程上发送的数据,求解器B进程上发送的数据包括求解器B的进程号、节点数量、节点坐标和节点值,求解器A将收集的数据组合为新的耦合面;然后,求解器A每个进程利用该进程耦合面与新耦合面节点坐标之间的关系建立数据映射矩阵;最后,根据映射矩阵,完成求解器B耦合面值向求解器A耦合面传递。
作为一种可选方式,向求解器B发送数据,包括:
根据已建立的数据映射矩阵的逆矩阵,将求解器A每个进程上耦合面的值传递到新的耦合面;
再利用接收到的求解器B进程号和节点数量将新耦合面进行分解得到第一数据关系;再根据第一数据关系,利用MPI的点对点通信将新耦合面上映射所得的值传递到求解器B对应的进程上。
作为一种可选方式,求解器B接受数据包括:
求解器B的各个进程接收求解器A各个进程发送的值,将其存储为的第二数据关系;再根据已建立的通信映射,将接收到的求解器A各进程耦合面的值还原为求解器B该进程的耦合面的值。
另一个方面,本发明还提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
另一个方面,本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
本发明的有益效果为:
本发明根据数据映射方案,在初始化阶段构建并行计算进程之间的通信映射关系,利用通信映射关系构建求解器耦合面传递的通信数据。不仅能够减少并行通信构建的步骤,还能减少构建过程中的数据通信量,从而极大的提高并行通信构建的效率。
附图说明
图1为本发明实施例提供的耦合界面数据并行通信的快速构建方法流程示意图;
图2为本发明实施例提供的求解器A与求解器B的耦合面网格示意图;
图3为本发明实施例提供的耦合面网格在各维度的坐标范围示意图;
图4为本发明实施例提供的进程耦合面的包络框示意图;
图5为本发明实施例提供的扩大求解器A的耦合面包络框示意图;
图6为本发明实施例提供的发送求解器A的所有包络框到求解器B的每个进程过程示意图;
图7为本发明实施例提供的求解器B进程与求解器A进程的包络框重合度检测B1进程示意图;
图8为本发明实施例提供的求解器B进程与求解器A进程的包络框重合度检测B2进程示意图;
图9为本发明实施例提供的求解器B进程与求解器A进程的包络框重合度检测B3进程示意图;
图10为本发明实施例提供的求解器B端建立通信映射B1进程示意图;
图11为本发明实施例提供的求解器B端建立通信映射B2进程示意图;
图12为本发明实施例提供的求解器B端建立通信映射B3进程示意图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合具体实施方式对本发明作进一步的详细说明。
实施例1
请参阅图1,本实施例提供了一种耦合界面数据并行通信的快速构建方法,包括:
获取用于耦合的两个求解器,定义其中一个为求解器A,另一个为求解器B,其分别适配有程序,用于存储被提取的数据;
提取两个求解器的进程耦合面网格边界,并分别构建进程耦合面的包络框;
按照预设数据映射,扩大求解器A的耦合面包络框;
将求解器A的所有包络框发送到求解器B的每个进程中,并对求解器B的进程与求解器A的所有包络框进行重合度检测;
在求解器B端建立与求解器A的通信映射,并通过求解器B基于该映射向求解器A发送通信数据;
求解器A接受求解器B传输的数据后,向求解器B发送数据;
求解器B接受数据后,将其进行存储,完成映射验证。
作为一种可选方式,提取两个求解器的进程耦合面网格边界,并分别构建进程耦合面的包络框包括:
进行并行计算,每个计算进程遍历所包含的耦合面节点,找出耦合面网格在三个坐标方向X、Y、Z的最大值和最小值X min、X max、Y min、Y max、Z min、Z max。
然后,根据耦合面在三个坐标方向X、Y、Z的最大值和最小值X min、X max、Y min、Y max、Z min、Z max,计算dX=ε(X max-X min)、dY=ε(Y max-Y min)、dZ=ε(Z max-Z min),ε为大于零的系数,主要用于纠偏消除数值误差可能带来的将节点划分在包络框外面的问题,ε可以根据具体问题选择,通常取值在0.01附近。然后,构建包络框bounding_box=[X min-dX, Y min-dY, Z min-dZ,X max+dX, Y max+dY, Z max+dZ]。
扩大求解器A的耦合面包络框过程为,根据数据映射方案,适当的扩大求解器A进程上耦合面的包络框。落实到本实施例中,数据映射可以选用紧支径向基函数,则用r扩大a的包络框,r表示紧支径向基函数的紧支半径,扩大后的包络框为bounding_box=[X min-dX-r, Y min-dY-r, Z min-dZ-r, X max+dX+r, Y max+dY+r, Z max+dZ+r]。
作为一种可选方式,将求解器A的所有包络框发送到求解器B的每个进程中包括:
首先,求解器A的主进程(进程号通常为0)收集所有从进程的包络框;然后,求解器A的主进程将收集到的包络框传递给求解器B的主进程;最后,求解器B的主进程将求解器A的包络框发送到求解器B的每个进程。
作为一种可选方式,对求解器B的进程与求解器A的所有包络框进行重合度检测,包括:
首先,求解器B的每个进程Bi采用步骤一所述的方法生成耦合面包络框,记作BBi;再采用BBi的每个角点遍历求解器A的所有包络框;然后,判断角点PC是否在求解器A的包络框内,如果存在一个角点在求解器A的某一包络框(AAj)内,那么我们认为Bi的耦合面与Aj的耦合面存在交集。将与Bi所有存在交集的求解器A的包络框存储在包络框集合bounding_box_list中。
作为一种可选方式,在求解器B端建立与求解器A的通信映射,包括前置步骤:
求解器B所有进程遍历所存储的包络框集合bounding_box_list,并利用包络框过滤求解器B所包含的耦合面网格,得到所有位于包络框内节点集合[m,n]1,[m,n]2…, [m,n]q(q为bounding_box_list集合中包络框的数量)。其次,求解器B每个进程建立形如remoteMap={rank1:[m,n]1;rankq:[m,n]q}的通信映射,rank表示求解器A的包络框进程号,m,n等表示搜索到的求解器B耦合面节点序号。其中,步骤六所述过滤方法可以采用R树空间搜索等方法。
通过求解器B基于该映射向求解器A发送通信数据,包括:
求解器B的每个进程Bi遍历通信映射remoteMap,将rank作为求解器A的目标进程,[m,n]作为节点序号,求解器B的进程号(rank)、节点数量、序号对应的节点坐标和节点值作为通信数据,利用MPI的点对点通信模式将通信数据从求解器B端传递到求解器A中对应的进程。
作为一种可选方式,求解器A接受求解器B传输的数据,包括:
求解器A的每个进程收集求解器B进程上发送的数据,包括求解器B的进程号(rank)、节点数量、节点坐标和节点值,并组合为新的耦合面。然后,求解器A每个进程利用该进程耦合面与新耦合面节点坐标之间的关系建立数据映射矩阵。最后,根据数据映射矩阵,实现求解器B耦合面值向求解器A耦合面传递。
作为一种可选方式,向求解器B发送数据,包括:
根据上述数据映射矩阵的逆矩阵,将求解器A每个进程上耦合面的值传递到新的耦合面。然后,利用接收到的求解器B进程号和节点数量将新耦合面分解为形如sendmap={rank1:[1:m], rank2:[m+1:n],… }的第一数据关系,其中m和n等表示新耦合面中节点的序号。最后,根据该数据关系,利用MPI的点对点通信将新耦合面上映射所得的值传递到求解器B对应的进程上。
作为一种可选方式,求解器B接受数据包括:
求解器B的各个进程接收求解器A各个进程发送的值,存储为receivemap={rank1:[1:m], rank2:[m+1:n],… }的第二数据关系。然后,结合上述通信映射的remoteMap={rank1:[m,n]1;rankq:[m,n]q}关系,将接收到的求解器A各进程耦合面的值还原为求解器B该进程的耦合面的值。并将其进行存储,完成映射验证
这样,基于上述方案,本实施例根据数据映射方案,在初始化阶段构建并行计算进程之间的通信映射关系,利用通信映射关系构建求解器耦合面传递的通信数据。首先,求解器的所有进程围绕其耦合面网格计算包络框,包络框由耦合面网格在X、Y和Z方向的坐标范围定义;然后,根据数据映射方案扩大求解器A的耦合面包络框;发送求解器A的所有包络框到求解器B的每个进程;求解器B的每个进程将其包络框都与接收到求解器A的包络框进行重合度检测,并记录有交集的求解器A的包络框;在求解器B端建立通信映射;最后,根据通信映射关系,构建求解器B耦合面发送的通信数据,以及求解器A耦合面发送的通信数据。不仅能够减少并行通信构建的步骤,还能减少构建过程中的数据通信量,从而极大的提高并行通信构建的效率。
另一方面,本实施例还提供了一种电子设备,电子设备可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。电子设备还可以是移动式或静止式的服务器。
作为一种可选方式,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现:
获取用于耦合的两个求解器,定义其中一个为求解器A,另一个为求解器B,其分别适配有程序,用于存储被提取的数据;
提取两个求解器的进程耦合面网格边界,并分别构建进程耦合面的包络框;
按照预设数据映射,扩大求解器A的耦合面包络框;
将求解器A的所有包络框发送到求解器B的每个进程中,并对求解器B的进程与求解器A的所有包络框进行重合度检测;
在求解器B端建立与求解器A的通信映射,并通过求解器B基于该映射向求解器A发送通信数据;
求解器A接受求解器B传输的数据后,向求解器B发送数据;
求解器B接受数据后,将其进行存储,完成映射验证。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的耦合界面数据并行通信的快速构建方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述用于耦合界面数据并行通信的快速构建方法的技术方案的描述。
另一方面,本实施例还提供了一种计算机可读存储介质,作为一种可选方式,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现:
获取用于耦合的两个求解器,定义其中一个为求解器A,另一个为求解器B,其分别适配有程序,用于存储被提取的数据;
提取两个求解器的进程耦合面网格边界,并分别构建进程耦合面的包络框;
按照预设数据映射,扩大求解器A的耦合面包络框;
将求解器A的所有包络框发送到求解器B的每个进程中,并对求解器B的进程与求解器A的所有包络框进行重合度检测;
在求解器B端建立与求解器A的通信映射,并通过求解器B基于该映射向求解器A发送通信数据;
求解器A接受求解器B传输的数据后,向求解器B发送数据;
求解器B接受数据后,将其进行存储,完成映射验证。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的耦合界面数据并行通信的快速构建方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述耦合界面数据并行通信的快速构建方法的技术方案的描述。
本申请一实施例还提供一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述耦合界面数据并行通信的快速构建方法的步骤。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的 范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
实施例2
请参阅图2-图12,本实施例将结合实施例1与本实施例2中的附图,对本实施例中的技术方案进行清楚、完整地描述。显然,本实施例所描述的实现方式仅仅是本发明一部分实施例,而不是全部的实施例。基于本实施例与上述实施例1所述的方案,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例通过步骤分解的方式进行说明,包括求解器A和求解器B,求解器A中存在耦合面网格的进程有A1和A2,求解器B中存在耦合面网格的进程有B1和B2,所有耦合面网格单元均为四边形单元,网格模型如图2所示。本实施例的实现步骤包括:
步骤一:确定图2中每个进程上的耦合面网格的边界。每个计算进程中,循环遍历耦合面网格的所有节点,采用对比交换的方式计算出所有节点在两个坐标方向X、Y的最大值和最小值X min、X max、Y min、Y max,即对于任一网格节点,对比现有的X min、X max、Y min、Y max值与网格节点的坐标X、Y的大小,然后根据对比结果更新X min、X max、Y min、Y max值,直至全部网格节点完成遍历。图2中的耦合面网格最后更新得到的X min、X max、Y min、Y max如图3所示,A1中为-2.0、2.0、0.0、3.0,A2中为-2.0、2.0、-3.0、0.0,B1中为-2.0、2.0、1.0、3.0,B2中为-2.0、2.0、-1.0、1.0,B3中为-2.0、2.0、-3.0、-1.0。
步骤二:构建进程耦合面的包络框。首先,根据耦合面在两个坐标方向X、Y的最大值和最小值X min、X max、Y min、Y max,计算dX=ε(X max-X min)、dY=ε(Y max-Y min),这里ε取值为0.01。然后,计算bounding_box=[X min-dX, Y min-dY, X max+dX, Y max+dY],构建的包络框如图4所示,A1和B的所有包络框为实线矩形框,A2的包络框为虚实线矩形框,在A1中bounding_box=[-2.04, -0.03, 2.04, 3.03],在A2中bounding_box=[-2.04, -3.03, 2.04, 0.03],在B1中bounding_box=[-2.04, 0.98, 2.04, 3.02],在B2中bounding_box=[-2.04, -1.02,2.04, 1.02],在B3中bounding_box=[-2.04, -3.02, 2.04, -0.98]。
步骤三:扩大求解器A的耦合面包络框。根据数据映射方案,适当的扩大求解器A进程上耦合面的包络框。例如图5中,基于紧支径向基函数的紧支半径r=0.5,扩大求解器A的耦合面包络框,A1中扩大后的包络框为bounding_box=[-2.54, -0.53, 2.54, 3.53],A2中扩大后的包络框为bounding_box=[-2.54, -3.53, 2.54, 0.53]。
步骤四:发送求解器A的所有包络框到求解器B的每个进程,如图6所示。首先,求解器A的主进程(进程号通常为0)收集进程A1和A2的包络框;然后,求解器A的主进程将收集到的包络框发送给求解器B的主进程;最后,求解器B的主进程发送a的包络框到进程B1和B2。
步骤五:求解器B进程与求解器A进程的包络框重合度检测。首先,在求解器B的每个进程Bi中计算其耦合面包络框角点,角点分别为Pc1(X min-dX, Y max+dY)、Pc2(X max+dX, Y max+dY)、Pc3(X min-dX, Y min-dY)和Pc4(X max+dX, Y min-dY);在B1中角点为Pc1(-2.04, 3.02)、Pc2(2.04, 3.02)、Pc3(-2.04, 0.98)和Pc4(2.04, 0.98),在B2中角点为Pc1(-2.04, 1.02)、Pc2(2.04, 1.02)、Pc3(-2.04, -1.02)和Pc4(2.04, -1.02),在B2中角点为Pc1(-2.04, -0.98)、Pc2(2.04, -0.98)、Pc3(-2.04, -3.02)和Pc4(2.04, -3.02)。
然后,再遍历Bi接收到的求解器A的所有包络框,正在遍历的a的包络框为Aj。判断角点PC是否在Aj内,在B1中,角点Pc1(-2.04, 3.02)在A1的耦合面包络框AA1内,则B1的耦合面与A1的耦合面存在交集,角点Pc2、Pc3和Pc4不再判断;没有角点在A2的耦合面包络框AA2内。在B2中,角点Pc1(-2.04, 1.02)在A1的耦合面包络框AA1内;角点Pc3(-2.04, -1.02)在A2的耦合面包络框AA2内。在B3中,没有角点在A1的耦合面包络框AA1内;角点Pc1(-2.04, -0.98)在A2的耦合面包络框AA2内。最终包络框重合度检测的结果如图7-图9所示。
因此,A1是B1的潜在通信进程,B1的bounding_box_list=[A1];A1和A2均是B2的潜在通信进程,B2的bounding_box_list=[A1,A2];A2是B3的潜在通信进程,B3的bounding_box_list=[A2]。
步骤六:求解器B端建立通信映射。首先,求解器B所有进程遍历所存储的包络框集合bounding_box_list,正在遍历的包络框为Aj。然后,利用包络框过滤求解器B所包含的耦合面网格,求解器B的每个进程Bi中先建立R树的空间索引,将进程Bi的耦合面网格的节点坐标作为条目插入到索引中,再执行空间索引的查询方法,Aj作为查询窗口,得到查询窗口中的索引条目,即节点序号。最后,在求解器B的每个进程中建立通信映射,如图10-12所示,黑色实心的节点表示在包络框Aj内的耦合面网格节点,在B1中节点1-15在包络框AA1内,B1的remoteMap={A1:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]};B2中节点1-10在包络框AA1内,节点6-15在包络框AA2内,对节点6-10采用随机分配到进程A1和A2,B2的remoteMap={A1:[1,2,3,4,5,6,7,8],A2:[9,10,11,12,13,14,15]};B3中节点1-15在包络框AA2内,B3的remoteMap={A2:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]}。
步骤七:求解器B耦合面发送通信数据。求解器B的每个进程Bi遍历通信映射remoteMap,将rank作为求解器A的目标进程,[m,n]作为节点序号,求解器B的进程号(rank)、节点数量、序号对应的节点坐标和节点值作为通信数据,利用MPI的点对点通信模式将通信数据从求解器B端传递到求解器A中对应的进程,以进程B1为例,将B1的进程号、节点数量15、序号为1-15的节点坐标和节点值传递到A1。
步骤八:求解器A耦合面接收求解器B耦合面数据。首先,求解器A的每个进程收集求解器B进程上发送的数据,包括求解器B的进程号(rank)、节点数量、节点坐标和节点值,并组合为新的耦合面。然后,求解器A每个进程利用该进程耦合面与新耦合面节点坐标之间的关系建立数据映射矩阵。最后,根据映射矩阵,实现求解器B耦合面值向求解器A耦合面传递。
步骤九:求解器A耦合面发送通信数据。首先,根据步骤八映射矩阵的逆矩阵,将求解器A每个进程上耦合面的值传递到新的耦合面。然后,利用接收到的求解器B进程号和节点数量将新耦合面分解为形如sendmap={rank1:[1:m], rank2:[m+1:n],… }的数据关系,其中m和n等表示新耦合面中节点的序号。最后,根据该数据关系,利用MPI的点对点通信将新耦合面上映射所得的值传递到求解器B对应的进程上。
步骤十:求解器B各进程接收通信数据。首先,求解器B的各个进程接收求解器A各个进程发送的值,存储为receivemap={rank1:[1,m],rank2:[m+1,n],...}的数据关系。然后,结合步骤六中的remoteMap关系,将接收到的求解器A各进程耦合面的值还原为求解器B该进程的耦合面的值。
以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种耦合界面数据并行通信的快速构建方法,其特征在于,包括:
获取用于耦合的两个求解器,定义其中一个为求解器A,另一个为求解器B,其分别适配有程序,用于存储被提取的数据;
提取两个求解器的进程耦合面网格边界,并分别构建所述进程耦合面的包络框;
按照预设数据映射,扩大求解器A的耦合面包络框;
将求解器A的所有包络框发送到求解器B的每个进程中,并对求解器B的进程与求解器A的所有包络框进行重合度检测;
在求解器B端建立与求解器A的通信映射,并通过求解器B基于该映射向求解器A发送通信数据;
求解器A接受求解器B传输的数据后,向求解器B发送数据;
求解器B接受数据后,将其进行存储,完成映射验证。
2.根据权利要求1所述的一种耦合界面数据并行通信的快速构建方法,其特征在于,所述提取两个求解器的进程耦合面网格边界,并分别构建所述进程耦合面的包络框包括:
每个计算进程遍历所包含的耦合面节点,确定耦合面网格在三个坐标方向的最大值与最小值;其中,构建所述进程耦合面的包络框时,还设置有纠偏系数,所述纠偏系数用于消除数值误差导致的包络框范围与耦合面网格边界的交叉。
3.根据权利要求2所述的一种耦合界面数据并行通信的快速构建方法,其特征在于,所述将求解器A的所有包络框发送到求解器B的每个进程中包括:
求解器A的主进程收集所有从进程的包络框后,求解器A的主进程将收集到的包络框传递给求解器B的主进程;之后,求解器B的主进程将求解器A的包络框发送到求解器B的每个进程。
4.根据权利要求3所述的一种耦合界面数据并行通信的快速构建方法,其特征在于,所述对求解器B的进程与求解器A的所有包络框进行重合度检测,包括:
求解器B的每个进程分别生成耦合面包络框,记作BBi;再采用BBi的每个角点遍历求解器A的所有包络框;然后,判断角点PC是否在求解器A的包络框内,如果存在一个角点在求解器A的某一包络框AAj内,则认定Bi的耦合面与Aj的耦合面存在交集,将与Bi所有存在交集的求解器A的包络框存储在包络框集合中。
5.根据权利要求4所述的一种耦合界面数据并行通信的快速构建方法,其特征在于,所述在求解器B端建立与求解器A的通信映射,包括前置步骤:
求解器B的所有进程遍历所存储的包络框集合,并利用包络框过滤求解器B所包含的耦合面网格,得到所有位于包络框内节点集合;
所述通过求解器B基于该映射向求解器A发送通信数据,包括:
求解器B的每个进程Bi遍历通信映射remoteMap,获取用于标识求解器A的目标进程和节点序号,将求解器B的进程号、节点数量与序号对应的节点坐标和节点值作为通信数据,利用MPI的点对点通信模式将通信数据从求解器B端传递到求解器A中对应的进程。
6.根据权利要求5所述的一种耦合界面数据并行通信的快速构建方法,其特征在于,所述求解器A接受求解器B传输的数据,包括:
求解器A的每个进程收集求解器B进程上发送的数据,所述求解器B进程上发送的数据包括求解器B的进程号、节点数量、节点坐标和节点值,求解器A将收集的数据组合为新的耦合面;然后,求解器A每个进程利用该进程耦合面与新耦合面节点坐标之间的关系建立数据映射矩阵;最后,根据映射矩阵,完成求解器B耦合面值向求解器A耦合面传递。
7.根据权利要求6所述的一种耦合界面数据并行通信的快速构建方法,其特征在于,所述向求解器B发送数据,包括:
根据已建立的数据映射矩阵的逆矩阵,将求解器A每个进程上耦合面的值传递到新的耦合面;
再利用接收到的求解器B进程号和节点数量将新耦合面进行分解得到第一数据关系;再根据所述第一数据关系,利用MPI的点对点通信将新耦合面上映射所得的值传递到求解器B对应的进程上。
8.根据权利要求7所述的一种耦合界面数据并行通信的快速构建方法,其特征在于,所述求解器B接受数据包括:
求解器B的各个进程接收求解器A各个进程发送的值,将其存储为的第二数据关系;再根据已建立的通信映射,将接收到的求解器A各进程耦合面的值还原为求解器B该进程的耦合面的值。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410588176.7A CN118152155B (zh) | 2024-05-13 | 2024-05-13 | 一种耦合界面数据并行通信的快速构建方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410588176.7A CN118152155B (zh) | 2024-05-13 | 2024-05-13 | 一种耦合界面数据并行通信的快速构建方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118152155A true CN118152155A (zh) | 2024-06-07 |
CN118152155B CN118152155B (zh) | 2024-08-09 |
Family
ID=91290621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410588176.7A Active CN118152155B (zh) | 2024-05-13 | 2024-05-13 | 一种耦合界面数据并行通信的快速构建方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118152155B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104136942A (zh) * | 2012-02-14 | 2014-11-05 | 沙特阿拉伯石油公司 | 用于大规模并行储层仿真的千兆单元的线性求解方法和装置 |
US20200175217A1 (en) * | 2018-11-30 | 2020-06-04 | Saudi Arabian Oil Company | Parallel processor data processing system with reduced latency |
CN115794447A (zh) * | 2023-02-07 | 2023-03-14 | 青岛哈尔滨工程大学创新发展中心 | 一种用于多物理场耦合的网格数据传递方法 |
-
2024
- 2024-05-13 CN CN202410588176.7A patent/CN118152155B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104136942A (zh) * | 2012-02-14 | 2014-11-05 | 沙特阿拉伯石油公司 | 用于大规模并行储层仿真的千兆单元的线性求解方法和装置 |
US20200175217A1 (en) * | 2018-11-30 | 2020-06-04 | Saudi Arabian Oil Company | Parallel processor data processing system with reduced latency |
CN115794447A (zh) * | 2023-02-07 | 2023-03-14 | 青岛哈尔滨工程大学创新发展中心 | 一种用于多物理场耦合的网格数据传递方法 |
Non-Patent Citations (2)
Title |
---|
ANTHONY P. CRAIG 等: "CPL6: The New Extensible, High Performance Parallel Coupler for the Community Climate System Model", 《INTERNATIONAL JOURNAL OF HIGH PERFORMANCE COMPUTING APPLICATIONS》, vol. 19, no. 3, 1 August 2005 (2005-08-01), pages 309 - 327 * |
汪青松 等: "DSMC/PIC耦合模拟的大规模高效混合并行计算研究", 《计算机科学》, 15 November 2013 (2013-11-15), pages 1 - 9 * |
Also Published As
Publication number | Publication date |
---|---|
CN118152155B (zh) | 2024-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242282B (zh) | 基于端边云协同的深度学习模型训练加速方法 | |
TWI735545B (zh) | 一種模型的訓練方法和裝置 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN112100450A (zh) | 一种图计算数据分割方法、终端设备及存储介质 | |
CN102521332B (zh) | 基于强模拟的图模式匹配方法、装置及系统 | |
CN104408183B (zh) | 数据系统的数据导入方法和装置 | |
CN103049561B (zh) | 一种数据压缩方法、存储引擎及存储系统 | |
CN115099175A (zh) | 一种时序网表的获取方法、装置、电子设备和存储介质 | |
CN118152155B (zh) | 一种耦合界面数据并行通信的快速构建方法、设备及介质 | |
CN117714543A (zh) | 一种基于缓存实现平台间数据共享的方法 | |
CN110266834B (zh) | 基于互联网协议地址的地区查找方法及装置 | |
CN111124883B (zh) | 一种基于树形表格的测试用例库引入方法、系统及设备 | |
CN111475492A (zh) | 数据处理方法以及装置 | |
CN112181302A (zh) | 一种数据多级存储和访问方法及系统 | |
CN116911552A (zh) | 机器人任务规划方法、系统、设备、存储介质和程序产品 | |
CN103312743A (zh) | 一种数据同步装置和方法 | |
CN115357425A (zh) | 编码配置转换方法、纠删码的编码方法及装置、系统 | |
CN103957012A (zh) | 一种dfa矩阵的压缩方法及装置 | |
CN112597200A (zh) | 批量与流式结合的数据处理方法及装置 | |
CN110569663A (zh) | 一种教育数据共享的方法、装置、系统和存储介质 | |
CN118364033B (zh) | 一种数据库集群间的数据处理方法、装置及相关设备 | |
CN109918374A (zh) | 海量数据存储的方法及终端设备 | |
CN114826278B (zh) | 基于布尔矩阵分解的图数据压缩方法 | |
CN113824802B (zh) | 一种去中心化分布式训练拓扑结构、训练系统及方法 | |
CN112123750B (zh) | 晶格的三维打印方法、装置、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |