CN116303219A - 一种网格文件的获取方法、装置及电子设备 - Google Patents

一种网格文件的获取方法、装置及电子设备 Download PDF

Info

Publication number
CN116303219A
CN116303219A CN202310284470.4A CN202310284470A CN116303219A CN 116303219 A CN116303219 A CN 116303219A CN 202310284470 A CN202310284470 A CN 202310284470A CN 116303219 A CN116303219 A CN 116303219A
Authority
CN
China
Prior art keywords
node
target
nodes
sub
initial
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.)
Pending
Application number
CN202310284470.4A
Other languages
English (en)
Inventor
李龙翔
刘羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310284470.4A priority Critical patent/CN116303219A/zh
Publication of CN116303219A publication Critical patent/CN116303219A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种网格文件的获取方法、装置及电子设备,所述方法包括:获取目标计算区域的非结构化网格;对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉;获取每个子并行区域中的节点连接度;基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号;基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件。本发明属于高性能集成计算领域,通过本发明提供的方法,可以有效提升缓存命中比率,优化稀疏矩阵迭代速度,提升CFD应用在集群中执行速度。

Description

一种网格文件的获取方法、装置及电子设备
技术领域
本发明属于高性能集成计算领域,具体涉及一种网格文件的获取方法、装置及电子设备。
背景技术
受不同行业计算需求急速扩展,以及商业CPU和高速互连网络设备的发展,HPC(High-Performance-Computing,高性能计算)集群在最近20年得到前所未有的发展。高性能计算集群通过聚合大量微处理器单元,具有优秀的扩展性和极高的性价比,可以实现复杂问题的快速求解。作为科技创新的重要手段,高性能集群广泛应用于核爆模拟、天气预报、工程计算等众多领域,是当代科技竞争的战略制高点。根据摩尔定律,每年高性能集群平台的计算能力都呈指数增长,但是在实际运行过程中,应用程序的实际性能堪忧。根据NERSC(National-Energy-Research-Scientific-Computing-Center,国家能源研究科学计算中心)研究显示,在历年戈登·贝尔获奖应用案例中,大规模科学应用运行峰值性能与运行平台理论性能占比,从90年的40%-50%降低到现在的5%-10%。可见,即使是经过大量优化的大型高性能计算应用程序,所能使用到的峰值性能都远远低于HPC集群的理论最高性能。因此提高HPC在集群运行性能、充分利用集群计算性能,越来越成为HPC技术中亟需解决的重要问题。
发明内容
鉴于上述问题,本发明实施例提供了一种网格文件的获取方法,以便克服上述问题或者至少部分地解决上述问题。
本发明实施例第一方面,提供了一种网格文件的获取方法,所述方法包括:
获取目标计算区域的非结构化网格;其中,所述非结构化网格中包括多个节点,每个节点对应一个初始编号,所述每个节点至少与一个节点相邻连接;
对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉;
获取每个子并行区域中的节点连接度;其中,所述节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量;
基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号;
基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件;
其中,所述网格文件应用于处理器读取所述目标计算区域中节点存储的数据的过程中。
可选地,所述对所述非结构化网格进行划分,得到多个子并行区域,包括:
获取多个所述节点各自对应的节点权重与节点互联信息;其中,所述节点互联信息用于表征每个节点与其它节点的连接关系;
基于所述节点权重与所述节点互联信息,获取所述非结构网格对应的初始计算无向图文件;
对所述初始计算无向图文件进行划分,得到多个所述子并行区域。
可选地,所述对所述初始计算无向图文件进行划分,得到多个所述子并行区域,包括:
确定对所述初始计算无向图文件进行划分的目标划分参数;
基于所述目标划分参数,对所述初始计算无向图文件进行划分,得到多个子并行区域无向图文件;
基于多个所述子并行区域无向图文件,确定多个所述子并行区域。
可选地,所述基于多个所述子并行区域无向图文件,确定多个所述子并行区域,包括:
获取多个子并行区域无向图之间的节点互联边界权重;其中,所述节点互联边界权重用于表征每个子并行区域,与其它子并行区域之间存在互联关系的节点通信量大小;
对所述节点互联边界权重进行更新;
基于更新后的多个所述子并行区域无向图文件,确定多个所述子并行区域。
可选地,所述确定对所述初始计算无向图文件进行划分的目标划分参数,包括:
获取所述初始计算无向图文件的离散格式;其中,所述离散格式包括:有限差分、有限体积及有限元;
当所述离散格式为有限差分时,将节点划分参数确定为目标划分参数;
当所述离散格式为有限体积或有限元时,将单元划分参数确定为目标划分参数。
可选地,所述基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号,包括:
基于所述节点连接度的大小,得到各个所述节点的目标排序结果;
基于所述目标排序结果,对各个所述节点的初始编号进行重排,得到各个所述节点的目标编号。
可选地,所述基于所述节点连接度的大小,得到各个所述节点的目标排序结果,包括:
按照所述节点连接度从小到大的顺序以及初始编号递增的顺序,依次将各个所述节点的初始编号添加至目标队列,直到添加完各个所述节点的初始编号;
基于所述目标队列中各个所述节点的初始编号添加顺序,得到各个所述节点的逆向添加顺序;
将所述逆向添加顺序确定为所述目标排序结果。
可选地,所述按照所述节点连接度从小到大的顺序以及初始编号递增的顺序,依次将各个所述节点的初始编号添加至目标队列,直到添加完各个所述节点的初始编号,包括:
按照所述节点连接度从小到大的顺序,将连接度最小的第一目标节点的初始编号添加至目标队列;其中,一个目标队列用于存储一个子并行区域内的全部节点的初始编号;
以所述第一目标节点为起始连接点,确定各个所述节点中除所述第一目标节点外的第二目标节点,以及所述第二目标节点与所述第一目标节点之间的连接关系;
按照所述第二目标节点与所述第一目标节点之间的连接关系,以及所述第二目标节点的初始编号的大小,依次将各个所述第二目标节点的初始编号添加至所述目标队列。
本发明实施例第二方面,提供了一种网格文件的获取装置,所述装置包括:
第一获取模块,用于获取目标计算区域的非结构化网格;其中,所述非结构化网格中包括多个节点,每个节点对应一个初始编号,所述每个节点至少与一个节点相邻连接;
划分模块,用于对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉;
第二获取模块,用于获取每个子并行区域中的节点连接度;其中,所述节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量;
重排模块,用于基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号;
生成模块,用于基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件;
其中,所述网格文件应用于处理器读取所述目标计算区域中节点存储的数据的过程中。
本发明实施例第三方面,提供了一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面所述的网格文件的获取方法。
通过本发明实施例提供的一种网格文件的获取方法,首先通过获取目标计算区域的非结构化网格;并对非结构化网格进行划分,得到多个子并行区域;可以实现利用多个子并行区域实现数据的并行计算,提高对非结构化网格的运算速度,然后获取每个子并行区域中的节点连接度,节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量;然后根据节点连接度,对各个节点的初始编号进行重排,得到各个节点的重排以后的目标编号,并以此解决对非结构化网格进行划分以后,初始编号不连续的问题,最后基于多个子并行区域,以及每个子并行区域中各个节点对应的初始编号和目标编号,生成目标计算区域的网格文件,网格文件用于为处理器读取目标计算区域中节点存储的数据。通过此方法获取的网格文件,在处理器读取非结构化网格中的数据时,可以集中网格中单元或节点中数据在内存中储存分布,有效提升缓存命中比率,优化稀疏矩阵迭代速度,提升CFD应用在集群中执行速度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种近20年主流CPU和内存延迟变化的示意图;
图2是本发明实施例提供的一种结构化网格与非结构化网格的示意图;
图3是本发明实施例提供的一种网格文件的获取方法的步骤流程图;
图4是本发明实施例提供的一种初始无向图及对应的CSV格式文件的示意图;
图5是本发明实施例提供的一种针对图4划分并行区域结果的示意图;
图6是本发明实施例提供的一种网格文件的获取装置的示意图;
图7是本发明实施例提供的一种电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图更详细地描述本发明的示例性的实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
近些年来,随着摩尔定律逐渐失效,像Intel、AMD等主流厂商开始广泛使用多核架构来提供更高计算性能。尽管CPU性能不断提升,但是访存系统性能在近些年几乎维持不变,特别是内存访问延迟等指标与CPU周期时间之间差距反而在不断增加。
参照图1,图1是本发明实施例提供的一种近20年主流CPU和内存延迟变化的示意图;图中显示了最近25年CPU周期和访存延迟指标变化情况。在最近25年,CPU执行周期数在以每年2%到2.5%的速度在不断提升,但是内存延迟减少速度每年不超过1%,随着CPU性能不断提升,使得越来越多的软件性能瓶颈从计算过程转移到数据访存过程,特别是对于计算性能有极致需求的CFD(Computational-Fluid-Dynamic,计算流体力学)应用,CFD计算应用通常采用当前最先进的超算集群来完成一系列复杂流体的运动过程模拟,对于集群整体性能有极高的需求。
参照图2,图2是本发明实施例提供的一种结构化网格与非结构化网格的示意图;在CFD应用中,计算网格包括结构化网格和非结构化网格两种,结构化网格优势在于数据结构简单,并且网格生成速度和质量都较为良好,缺点是只适用于规则区域的模拟,无法模拟复杂几何区域情况。与结构化网格相反,非结构化网格数据结构复杂,并且占用内存较多,但是可以对复杂的几何区域进行模拟,由于非结构化网格具有能够模拟复杂几何外形等优点,在基于有限元和有限体积法的商业或开源CFD软件中得到了广泛应用,在实际的应用中,主流是以非结构化网格为主,由于计算过程中,网格节点存储顺序与编号相关。在现代服务器平台计算过程中,由于网格节点编号不连续会导致大量缓存不命中情况,使得处理器数据读写逐渐成为结构化网格计算过程中主要瓶颈,针对上述问题,本发明提供了一种网格文件的获取方法,解决非结构化网格节点编号不连续导致大量缓存不命中的问题。
实施例一
参照图3,图3是本发明实施例提供的一种网格文件的获取方法的步骤流程图;如图所示,该方法的步骤包括:
步骤S301:获取目标计算区域的非结构化网格;其中,所述非结构化网格中包括多个节点,每个节点对应一个初始编号,所述每个节点至少与一个节点相邻连接。
在本实施例中,获取目标计算区域的非结构化网格,非结构化网格中有多个节点,每个节点里面存储目标计算区域内的数据,供处理器读取,由于每个节点存储的数据不同,每个节点都会对应一个初始的编号,用于区分存储不同数据的节点,为了能够读取非结构化网格中所有节点的数据,非结构化网格中的每个节点,至少与一个节点相邻连接,处理器在读取非结构化网格数据时,一般是按照节点的编号顺序进行读取,进而读取非结构化网格中的包含的所有节点存储的数据。
步骤S302:对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉。
在本实施例中,由于非结构化网格应用于高性能集群CFD应用程序计算,非结构化网格中所包含的节点与其存储的数据也是一个很庞大的量,例如非结构化中的网格节点数量为1000个,用户想要获取非结构化网格中的排序为995初始编号的节点数据,按照初始节点排序,需要完成前面的994个初始编号的读取,才会读取至995初始编号的节点数据,会消耗大量时间来读取非结构化网格中的数据,进而降低处理器读取非结构化网格中的数据效率,因此在读取非结构化网格中存储的数据之前,需要对非结构化网格进行划分,得到多个子并行区域,可以对多个子并行区域进行同时读取,节省处理器读取数据的时间,提高对非结构化网格中数据的读取效率。
步骤S303:获取每个子并行区域中的节点连接度;其中,所述节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量。
在本实施例中,获取每个子并行区域的节点连接度,节点连接度是每个子并行区域中各个节点连接相邻节点的数量。示例地,以节点3表示该节点的初始编号为3,与节点3标识与节点3连接的节点有节点5、节点6及节点7,那么节点3的连接度就是3。
步骤S304:基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号。
在本实施例中,根据节点的连接度,对每个子并行区域中所包含的个节点的初始编号进行重排,将一个子并行区域内的节点编号重新排为节点相近的编号,将重排后的节点编号,确定为各个节点的目标编号。
示例地,以一个并行区域中所包含的节点进行举例,假设该并行区域中包含的节点100、节点4、节点70,其中,节点100、节点4、节点70分别对应的节点连接度为2、1、1,根据节点的连接度对节点100、节点4、节点70的初始编号100、4、70进行重排序,那么重排后的各个节点的目标编号为2、3、1,解决了相邻节点编号不连续的问题。
步骤S305:基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件;其中,所述网格文件应用于处理器读取所述目标计算区域中节点存储的数据的过程中。
在本实施例中,根据多个子并行区域,以及每个子并行区域中各个节点对应的初始编号与目标编号,生成目标计算区域的网格文件,在对非结构化网格中存储的数据读取之前,获取目标计算区域的网格文件,网格文件用于为处理器读取所述目标计算区域中的节点或单元提供的数据,此处需要注意的是,首先按照目标编号的顺序,同时读取多个子并行区域中节点存储的数据,读取完成以后,再按照各个节点目标编号与初始编号的映射关系,将按照目标编号读取的节点存储的数据,网格节点的不连续问题。按照目标编号与初始编号的映射关系,获取非结构化网格中存储的数据,进而读取目标计算区域中节点存储的数据。
通过对目标计算区域的网格文件进行读取,获取非结构化网格中的存储数据的过程中,有效提升缓存命中比率,优化稀疏矩阵迭代速度,提升CFD应用在集群中执行速度。
在一种实施例中,所述对所述非结构化网格进行划分,得到多个子并行区域,包括:获取多个所述节点各自对应的节点权重与节点互联信息;其中,所述节点互联信息用于表征每个节点与其它节点的连接关系;基于所述节点权重与所述节点互联信息,获取所述非结构网格对应的初始计算无向图文件;对所述初始计算无向图文件进行划分,得到多个所述子并行区域。
在本实施例中,利用数据结构管理软件METIS、Scotch,以图平衡方法对非结构化网格进行划分,得到多个子并行区域,数据结构管理软件只能识别数据格式的文件,因此需要对非结构化网格进行转化,转化为数据结构管理软件能够识别其中信息的无向图文件,首先识别非结构化网格中的节点权重与各个节点之间的互联关系,网格中的节点权重代表该节点出现的概率,节点互联信息表征每个节点与其它节点的连接关系,比如以节点3为例,节点3的连接关系有与节点3相连的其它节点数量,以及其它节点与节点3之间的通信次数或计算次数。
示例地,下面将结构一个具体的实施例来进行阐述:
参考图4,图4是本发明实施例提供的一种初始无向图及对应的CSV格式文件的示意图;图4左边的图是初始无向图,圆圈内的数字代表节点编号,方格内的数字代表节点编号对应的节点权重,两个节点编号连接线上的数字代表两个节点之间的通信次数,连接线也代表两个节点之间存在连接关系;图4右边的图是初始无向图及对应的CSV(Comma-Separated-Values,逗号分隔值)格式文件,可以理解为初始计算无向图文件,提取非结构化网格的节点权重与节点互联信息,构建初始计算无向图文件,将初始计算顶点V0及计算网格拓扑信息E0转换为无向图形式G0=(V0,E0),其中顶点V0代表节点编号及其对应的节点权重,网格拓扑信息E0代表各个节点之间的节点互联信息,就能构建初始计算无向图,在对初始计算无向图进行保存时,选择储存为CSV格式文件,就可以得到初始计算无向图文件,初始计算无向图文件中的第一行代表计算区域内节点和互联边个数;从第二行开始,第N+1行一个数字对应节点的节点权重,后面数字分别代表节点和其他节点互联情况及对应边互联通量大小,以第二行进行解释说明,第二行第一个数字代表节点1的节点权重,第二个数字代表与节点1连接的节点为节点5,第三个数字代表节点1与节点5之间的互联通信量为1,第四个数字代表与节点1连接的节点为节点3,第五个数字代表节点1与节点3之间的互联通信量为2,第六个数字代表与节点1连接的节点为节点2,第七个数字代表节点1与节点2之间的互联通信量为1,同理地,其他行的解释参照第二行的数字解释,在此不再赘述。
在一种实施例中,所述对所述初始计算无向图文件进行划分,得到多个所述子并行区域,包括:确定对所述初始计算无向图文件进行划分的目标划分参数;基于所述目标划分参数,对所述初始计算无向图文件进行划分,得到多个子并行区域无向图文件;基于多个所述子并行区域无向图文件,确定多个所述子并行区域。
在本实施例中,对初始计算无向图文件进行划分之间,需要确定目标划分参数,由于在处理器读取数据的时候,需要考虑负载均衡的情况,负载均衡是在用户访问数庞大时对访问用户进行点一个分流,当客户发送请求时,会对用户发送的请求数量进行分流,为了保证负载平衡并提高并行计算性能,还需要确定目标划分参数,目标划分参数按照节点权重进行划分,例如目标划分参数是两个并行子区域,节点权重分别占比为5/13与8/13,那么对初始计算无向图文件就会划分为两个子并行区域,两个子并行区域的节点权重占比为5/13与8/13,通过用户输入的划分参数进行划分,可以获得根据目标划分参数进行划分的两个子并行区域。参照图5,图5是本发明实施例提供的一种针对图4划分并行区域结果的示意图;在获取图4以后,输入目标划分参数,目标划分参数是两个并行子区域,节点权重分别占比为5/13与8/13,那么就会得到图5所示的两个子并行区域。
在一种实施例中,所述基于多个所述子并行区域无向图文件,确定多个所述子并行区域,包括:获取多个子并行区域无向图之间的节点互联边界权重;其中,所述节点互联边界权重用于表征每个子并行区域,与其它子并行区域之间存在互联关系的节点通信量大小;对所述节点互联边界权重进行更新;基于更新后的多个所述子并行区域无向图文件,确定多个所述子并行区域。
在本实施例中,结合图4与图5进行阐述,利用METIS和Scotch软件对图4进行划分,获取多个子并行区域无向图文件的过程中,还需要对获取的多个子并行区域无向图文件之间的节点互联边界权重进行修改,参照图5,划分了两个子并行区域,子并行区域一包含的节点为节点1、节点2及节点3,子并行区域二包含的节点为节点4、节点5、节点6及节点7,参照图4,节点3与节点5之间的互联通信量为3,由于在图5中,节点3与节点5已经处于不同的子并行区域,他们之间也就不存在连接关系,因此就会对节点3与节点5之间的节点互联边界权重进行更新,更新为0,同理的,其他类似的节点互联边界权重也要进行更新,在此不再赘述。
在一种实施例中,所述确定对所述初始计算无向图文件进行划分的目标划分参数,包括:获取所述初始计算无向图文件的离散格式;其中,所述离散格式包括:有限差分、有限体积及有限元;当所述离散格式为有限差分时,将节点划分参数确定为目标划分参数;当所述离散格式为有限体积或有限元时,将单元划分参数确定为目标划分参数。
在本实施例中,获取初始计算无向图文件的离散格式,由于在构成初始非结构化网格的方程格式有限差分、有限体积及有限元,因此,非结构化网格存储数据的方式有节点存储与单元存储,单元存储是节点构成不重叠的几何单元存储,如果是以单元的方式进行数据存储,那么在处理器对非结构化网格进行数据的读取时,是按照读取单元编号的方式进行读取,对初始计算无向图文件进行划分时,需要先确定初始计算无向图文件的离散格式,初始计算无向图文件的离散格式与非结构化网格对应,再根据离散格式对应的存储方式进行划分,根据离散格式确定目标划分参数,如果离散格式为有限差分时,就按照节点划分参数确定目标划分参数,离散格式为有限体积或有限元时,将单元划分参数确定为目标划分参数,本实施例主要用于说明本发明提供的获取网格文件的方式不仅可以用于对节点进行划分,也适用于单元划分,具体以实际非结构化网格存储数据的格式确定,此处不做限定。
在一种实施例中,所述基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号,包括:基于所述节点连接度的大小,得到各个所述节点的目标排序结果;基于所述目标排序结果,对各个所述节点的初始编号进行重排,得到各个所述节点的目标编号。
在本实施例中,以一个子并行区域为例,获取该区域内各个节点的连接度,根据各个节点的节点连接度的大小,获取一个子并行区域内各个节点的目标排序结果,并按照目标排序结果对一个子并行区域内所有节点的初始编号进行重排,得到所有节点的目标编号,通过此方式对多个并行区域内的各个节点进行编号重排,获取各个节点的目标编号。
在一种实施例中,所述基于所述节点连接度的大小,得到各个所述节点的目标排序结果,包括:按照所述节点连接度从小到大的顺序以及初始编号递增的顺序,依次将各个所述节点的初始编号添加至目标队列,直到添加完各个所述节点的初始编号;基于所述目标队列中各个所述节点的初始编号添加顺序,得到各个所述节点的逆向添加顺序;将所述逆向添加顺序确定为所述目标排序结果。
在本实施例中,由于一个并行区域中可能存在多个节点连接度相同的节点,因此还需要获取各个节点的初始编号,按照节点连接度从小到大的顺序,以及初始编号递增的顺序,依次将各个所述节点的初始编号添加至目标队列,直到添加完各个节点的初始编号;基于目标队列中各个节点的初始编号添加顺序,获取所述各个节点的逆向添加顺序;将逆向添加顺序确定为目标排序结果,节点重排可以采用CM算法进行逆向重排。
在一种实施例中,所述按照所述节点连接度从小到大的顺序以及初始编号递增的顺序,依次将各个所述节点的初始编号添加至目标队列,直到添加完各个所述节点的初始编号,包括:按照所述节点连接度从小到大的顺序,将连接度最小的第一目标节点的初始编号添加至目标队列;其中,一个目标队列用于存储一个子并行区域内的全部节点的初始编号;以所述第一目标节点为起始连接点,确定各个所述节点中除所述第一目标节点外的第二目标节点,以及所述第二目标节点与所述第一目标节点之间的连接关系;按照所述第二目标节点与所述第一目标节点之间的连接关系,以及所述第二目标节点的初始编号的大小,依次将各个所述第二目标节点的初始编号添加至所述目标队列。
在本实施例中,以一个子并行区域内的全部节点为例,按照所述节点连接度从小到大的顺序,将连接度最小的第一目标节点的初始编号添加至目标队列;以第一目标节点为起始连接点,确定各个所述节点中除第一目标节点外的第二目标节点,以及第二目标节点与第一目标节点之间的连接关系,第二目标节点与第一目标节点之间的连接关系为第二目标节点中的节点与第一目标节点直接连接或者间接连接的关系,按照第二目标节点与第一目标节点之间的连接关系,以及第二目标节点的初始编号的大小,依次将各个第二目标节点的初始编号加入到目标队列。
示例地,将结合图5中子并行区域二,对本发明实施例提供的节点编号重排的过程进行一个详细的阐述:
子并行区域二包含的节点为节点4、节点5、节点6及节点7,初始编号的按照从小到大的排序为4、5、6、7,获取节点4、节点5、节点6及节点7的节点连接度,对应的节点连接度分别为2、1、3、2,首先获取连接度最小的节点,节点5,即第一目标节点,将节点5方式目标队列中,再获取除节点5以外的直接连接或间接连接的第二目标节点,即节点4、节点6及节点7,首先获取与节点5直接连接的节点,即节点6,待节点5已经添加目标队列中后,再将节点6添加目标队列中,与此同时,对节点6进行分析,获取与节点6直接连接的节点,即节点4与节点7,此时有两个节点与节点6连接,根据初始编号从小到大的顺序,先将节点4添加目标队列中,再将节点7添加目标队列中,此是目标队列中已经包括了子并行区域二中所有的节点,此时获取添加至目标队列的节点顺序,即节点5、节点6、节点4、节点7,节点添加顺序的初始编号顺序为5、6、4、7,进行逆向排序,获取目标节点编号顺序,即4、3、2、1。节点4对应目标编号2、节点5对应目标编号4、节点6对应目标编号3、节点7对应目标编号1。
通过此方式重排获取的网格文件,那么在对子并行区域内的节点数据进行读取时,就会按照目标编号的顺序进行读取,在读取的过程中与第一个目标节点有关的节点数据都会缓存在处理器中,命中率就会提高,优化稀疏矩阵迭代速度,提高CFD应用在使用分布式内存的集群中计算性能。
实施例二
本发明实施例第二方面,提供了一种网格文件的获取装置,所述装置包括:第一获取模块,用于获取目标计算区域的非结构化网格;其中,所述非结构化网格中包括多个节点,每个节点对应一个初始编号,所述每个节点至少与一个节点相邻连接;划分模块,用于对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉;第二获取模块,用于获取每个子并行区域中的节点连接度;其中,所述节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量;重排模块,用于基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号;生成模块,用于基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件;其中,所述网格文件应用于处理器读取所述目标计算区域中节点存储的数据的过程中。
在本实施例中,参照图6,图6是本发明实施例提供的一种网格文件的获取装置的示意图;该装置包括第一获取模块601、划分模块602、第二获取模块603、重排模块604、生成模块605,
第一获取模块601,用于获取目标计算区域的非结构化网格;其中,所述非结构化网格中包括多个节点,每个节点对应一个初始编号,所述每个节点至少与一个节点相邻连接;
划分模块602,用于对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉;
第二获取模块603,用于获取每个子并行区域中的节点连接度;其中,所述节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量;
重排模块604,用于基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号;
生成模块605,用于基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件;其中,所述网格文件应用于处理器读取所述目标计算区域中节点存储的数据的过程中。
通过本装置生成的目标区域计算网格文件,在处理器读取非结构化网格中的数据时,可以集中网格中单元或节点中数据在内存中储存分布,有效提升缓存命中比率,优化稀疏矩阵迭代速度,提升CFD应用在集群中执行速度。
实施例三
本发明实施例第三方面,提供了一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面所述的网格文件的获取方法。
在本实施例中,参照图7,图7是本发明实施例提供的一种电子设备的示意图;如图7所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本申请实施例第一方面所述的网格文件的获取方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明实施例是参照根据本发明实施例的方法、装置及电子设备的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种网格文件的获取方法、装置及电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种网格文件的获取方法,其特征在于,所述方法包括:
获取目标计算区域的非结构化网格;其中,所述非结构化网格中包括多个节点,每个节点对应一个初始编号,所述每个节点至少与一个节点相邻连接;
对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉;
获取每个子并行区域中的节点连接度;其中,所述节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量;
基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号;
基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件;
其中,所述网格文件应用于处理器读取所述目标计算区域中节点存储的数据的过程中。
2.根据权利要求1所述的方法,其特征在于,所述对所述非结构化网格进行划分,得到多个子并行区域,包括:
获取多个所述节点各自对应的节点权重与节点互联信息;其中,所述节点互联信息用于表征每个节点与其它节点的连接关系;
基于所述节点权重与所述节点互联信息,获取所述非结构网格对应的初始计算无向图文件;
对所述初始计算无向图文件进行划分,得到多个所述子并行区域。
3.根据权利要求2所述的方法,其特征在于,所述对所述初始计算无向图文件进行划分,得到多个所述子并行区域,包括:
确定对所述初始计算无向图文件进行划分的目标划分参数;
基于所述目标划分参数,对所述初始计算无向图文件进行划分,得到多个子并行区域无向图文件;
基于多个所述子并行区域无向图文件,确定多个所述子并行区域。
4.根据权利要求3所述的方法,其特征在于,所述基于多个所述子并行区域无向图文件,确定多个所述子并行区域,包括:
获取多个所述子并行区域无向图之间的节点互联边界权重;其中,所述节点互联边界权重用于表征每个子并行区域,与其它子并行区域之间存在互联关系的节点通信量大小;
对所述节点互联边界权重进行更新;
基于更新后的多个所述子并行区域无向图文件,确定多个所述子并行区域。
5.根据权利要求3所述的方法,其特征在于,所述确定对所述初始计算无向图文件进行划分的目标划分参数,包括:
获取所述初始计算无向图文件的离散格式;其中,所述离散格式包括:有限差分、有限体积及有限元;
当所述离散格式为有限差分时,将节点划分参数确定为目标划分参数;
当所述离散格式为有限体积或有限元时,将单元划分参数确定为目标划分参数。
6.根据权利要求1所述的方法,其特征在于,所述基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号,包括:
基于所述节点连接度的大小,得到各个所述节点的目标排序结果;
基于所述目标排序结果,对各个所述节点的初始编号进行重排,得到各个所述节点的目标编号。
7.根据权利要求6所述的方法,其特征在于,所述基于所述节点连接度的大小,得到各个所述节点的目标排序结果,包括:
按照所述节点连接度从小到大的顺序以及初始编号递增的顺序,依次将各个所述节点的初始编号添加至目标队列,直到添加完各个所述节点的初始编号;
基于所述目标队列中各个所述节点的初始编号添加顺序,得到各个所述节点的逆向添加顺序;
将所述逆向添加顺序确定为所述目标排序结果。
8.根据权利要求7所述的方法,其特征在于,所述按照所述节点连接度从小到大的顺序以及初始编号递增的顺序,依次将各个所述节点的初始编号添加至目标队列,直到添加完各个所述节点的初始编号,包括:
按照所述节点连接度从小到大的顺序,将连接度最小的第一目标节点的初始编号添加至目标队列;其中,一个目标队列用于存储一个子并行区域内的全部节点的初始编号;
以所述第一目标节点为起始连接点,确定各个所述节点中除所述第一目标节点外的第二目标节点,以及所述第二目标节点与所述第一目标节点之间的连接关系;
按照所述第二目标节点与所述第一目标节点之间的连接关系,以及所述第二目标节点的初始编号的大小,依次将各个所述第二目标节点的初始编号添加至所述目标队列。
9.一种网格文件的获取装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标计算区域的非结构化网格;其中,所述非结构化网格中包括多个节点,每个节点对应一个初始编号,所述每个节点至少与一个节点相邻连接;
划分模块,用于对所述非结构化网格进行划分,得到多个子并行区域;其中,不同的子并行区域中所包含的节点无交叉;
第二获取模块,用于获取每个子并行区域中的节点连接度;其中,所述节点连接度为每个所述子并行区域中各个节点连接相邻节点的数量;
重排模块,用于基于所述节点连接度,对各个节点的初始编号进行重排,得到各个所述节点的目标编号;
生成模块,用于基于多个所述子并行区域,以及每个所述子并行区域中各个所述节点对应的所述初始编号和所述目标编号,生成所述目标计算区域的网格文件;
其中,所述网格文件应用于处理器读取所述目标计算区域中节点存储的数据的过程中。
10.一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的网格文件的获取方法。
CN202310284470.4A 2023-03-22 2023-03-22 一种网格文件的获取方法、装置及电子设备 Pending CN116303219A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310284470.4A CN116303219A (zh) 2023-03-22 2023-03-22 一种网格文件的获取方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310284470.4A CN116303219A (zh) 2023-03-22 2023-03-22 一种网格文件的获取方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN116303219A true CN116303219A (zh) 2023-06-23

Family

ID=86820389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310284470.4A Pending CN116303219A (zh) 2023-03-22 2023-03-22 一种网格文件的获取方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN116303219A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755636A (zh) * 2023-08-16 2023-09-15 中国空气动力研究与发展中心计算空气动力研究所 一种网格文件的并行读入方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755636A (zh) * 2023-08-16 2023-09-15 中国空气动力研究与发展中心计算空气动力研究所 一种网格文件的并行读入方法、装置、设备及存储介质
CN116755636B (zh) * 2023-08-16 2023-10-27 中国空气动力研究与发展中心计算空气动力研究所 一种网格文件的并行读入方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
Zhao et al. Parallel k-means clustering based on mapreduce
Betkaoui et al. A reconfigurable computing approach for efficient and scalable parallel graph exploration
Neelakandan et al. Large scale optimization to minimize network traffic using MapReduce in big data applications
Zhang et al. A GPU-accelerated adaptive kernel density estimation approach for efficient point pattern analysis on spatial big data
CN104765589B (zh) 基于mpi的网格并行预处理方法
Ribeiro et al. Parallel discovery of network motifs
WO2019056887A1 (zh) 对大规模可再生能源数据进行概率建模的方法
CN105468439A (zh) 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行算法
Wu et al. A deadline-aware estimation of distribution algorithm for resource scheduling in fog computing systems
Li et al. Intermediate data placement and cache replacement strategy under Spark platform
CN116303219A (zh) 一种网格文件的获取方法、装置及电子设备
CN103793525A (zh) 基于局部迭代的MapReduce模型的图结点的权威值计算方法
CN112948123A (zh) 一种基于Spark的网格水文模型分布式计算方法
CN111079078B (zh) 面向结构网格稀疏矩阵的下三角方程并行求解方法
CN101894123A (zh) 基于子图的链接相似度的快速近似计算系统和方法
CN112433853A (zh) 一种面向超级计算机数据并行应用的异构感知数据划分方法
CN115345285A (zh) 基于gpu的时序图神经网络训练方法、系统及电子设备
Ma et al. Multidimensional parallel dynamic programming algorithm based on spark for large-scale hydropower systems
Page et al. Scalability of hybrid spmv on intel xeon phi knights landing
CN113297537B (zh) 一种稀疏结构化三角方程组求解的高性能实现方法和装置
CN113010316B (zh) 一种基于云计算的多目标群智能算法并行优化方法
CN110415162B (zh) 大数据中面向异构融合处理器的自适应图划分方法
CN107529638B (zh) 线性求解器的加速方法、存储数据库及gpu系统
CN106330559A (zh) 基于MapReduce的复杂网络拓扑特征参数计算方法和系统
CN110704693A (zh) 分布式图计算系统和分布式图计算方法

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