[发明专利]一种基于子图构建的磁盘图处理方法及系统有效
申请号: | 201810838033.1 | 申请日: | 2018-07-26 |
公开(公告)号: | CN109254725B | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 王芳;徐湘灏;冯丹;程永利;张永选 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 构建 磁盘 处理 方法 系统 | ||
1.一种基于子图构建的磁盘图处理方法,其特征在于,包括:
(1)将输入图的顶点划分为P个不相交的顶点区间,对于每个顶点区间,分别创建一个入射边块结构和一个出射边块结构,以利用所述入射边块结构存储对应顶点区间中顶点的入射边,利用所述出射边块结构存储对应顶点区间中顶点的出射边,然后对所述输入图中的边进行遍历,根据每条边的源顶点和目的顶点,将边写入相应的入射边块和出射边块,其中,P的取值需要确保每一个入射块或出射块的大小小于内存的容量;
(2)设定各顶点的初始化值并选定活跃顶点,开始进行迭代处理;
(3)按照划分的顶点区间,加载当前顶点区间的顶点及当前顶点区间的入射边块和出射边块到内存中得到目标图数据;
(4)将所述目标图数据中的每条入射边写入该入射边目的顶点的入射边队列,将每条出射边写入该出射边源顶点的出射边队列,构建以顶点为中心的内存子图;
(5)所述内存子图中的每个顶点并发地从各自的入射边读取数据,并根据读取的数据对顶点值进行更新;
(6)将被更新的顶点写回磁盘,确保整体计算结果的一致性;
(7)判断是否达到收敛条件,如果达到,执行步骤(8),否则进入下一次迭代,执行步骤(3);
(8)结束迭代图计算,输出计算结果。
2.根据权利要求1所述的方法,其特征在于,在所述入射边块结构中的边按边的目的顶点进行排序,在所述出射边块结构中的边按边的源顶点进行排序。
3.根据权利要求1所述的方法,其特征在于,所述活跃顶点为顶点值在上一轮迭代中被更新的顶点。
4.根据权利要求2所述的方法,其特征在于,所述将所述目标图数据中的每条入射边写入该入射边目的顶点的入射边队列,将每条出射边写入该出射边源顶点的出射边队列,构建以顶点为中心的内存子图,包括:
对于所述目标图数据中的每条入射边,首先访问该入射边的目的顶点的内存地址,然后将该入射边添加到其目的顶点的入射边队列;
对于所述目标图数据中的每条出射边,首先访问该出射边的源顶点的内存地址,然后将该出射边添加到其源顶点的出射边队列。
5.一种基于子图构建的磁盘图处理系统,其特征在于,包括:
双向边块结构构建模块,用于将输入图的顶点划分为P个不相交的顶点区间,对于每个顶点区间,分别创建一个入射边块结构和一个出射边块结构,以利用所述入射边块结构存储对应顶点区间中顶点的入射边,利用所述出射边块结构存储对应顶点区间中顶点的出射边,然后对所述输入图中的边进行遍历,根据每条边的源顶点和目的顶点,将边写入相应的入射边块和出射边块,其中,P的取值需要确保每一个入射块或出射块的大小小于内存的容量;
加载模块,用于设定各顶点的初始化值并选定活跃顶点后,按照划分的顶点区间,加载当前顶点区间的顶点及当前顶点区间的入射边块和出射边块到内存中得到目标图数据;
内存子图构建模块,用于将所述目标图数据中的每条入射边写入该入射边目的顶点的入射边队列,将每条出射边写入该出射边源顶点的出射边队列,构建以顶点为中心的内存子图;
子图更新模块,用于将所述内存子图中的每个顶点并发地从各自的入射边读取数据,并根据读取的数据对顶点值进行更新,然后将被更新的顶点写回磁盘,确保整体计算结果的一致性,判断是否达到预设收敛条件,若没有达到所述预设收敛条件,则执行所述加载当前顶点区间的顶点及当前顶点区间的入射边块和出射边块到内存中得到目标图数据,若达到所述预设收敛条件,则结束迭代图计算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810838033.1/1.html,转载请声明来源钻瓜专利网。