[发明专利]一种基于子图构建的磁盘图处理方法及系统有效
申请号: | 201810838033.1 | 申请日: | 2018-07-26 |
公开(公告)号: | CN109254725B | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 王芳;徐湘灏;冯丹;程永利;张永选 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 构建 磁盘 处理 方法 系统 | ||
本发明公开了一种基于子图构建的磁盘图处理方法及系统,包括:将图数据组织为双向边块结构;开始迭代图计算;加载图数据到内存中;通过高效的子图构建方法构建以顶点为中心的内存子图;对子图进行更新;将更新的图数据写回磁盘;判断是否达到收敛条件;结束迭代图计算。本发明提出的基于子图构建的磁盘图处理方法通过将子图构建过程中需要访问的顶点和边连续地组织在一起,确保在子图构建过程中内存访问局部性得到充分利用,很好地解决了现在磁盘图处理系统中的高子图构建开销问题,显著的提升了系统的整体性能。
技术领域
本发明属于计算机大数据处理技术领域,更具体地,涉及一种基于子图构建的磁盘图处理方法及系统。
背景技术
在当前大数据背景下,呈现出越来越多的对大规模图数据进行分析、处理及挖掘的应用需求。近年来,基于磁盘的图处理系统由于其成本低、可扩展性强等特点得到了广泛的关注,例如卡内基梅隆大学的GraphChi、洛桑联邦理工学院的X-Stream、清华大学的GridGraph等。这些磁盘图处理将图数据分为若干个子图,并且每次从磁盘中加载和处理一个子图。另外,这些系统大多采用以顶点为中心的计算模型,在处理每个子图之前,需要在内存中构建以顶点为中心的子图数据结构。这个子图构建过程要求系统为子图中的每个顶点添加入射边和出射边。然而,由于边的源顶点或目的顶点不连续的存储在内存中,构建子图的过程通常会带来很大的开销。例如,GraphChi在执行PageRank图算法时,其子图构建时间占到整个运行时间的60%,导致高子图构建开销的主要原因是子图构建过程导致了大量的内存随机读写。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于子图构建的磁盘图处理方法及系统,由此解决现有磁盘图处理系统中的高子图构建开销较大的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于子图构建的磁盘图处理方法,包括:
将输入图的顶点划分为P个不相交的顶点区间,对于每个顶点区间,分别创建一个入射边块结构和一个出射边块结构,以利用所述入射边块结构存储对应顶点区间中顶点的入射边,利用所述出射边块结构存储对应顶点区间中顶点的出射边,然后对所述输入图中的边进行遍历,根据每条边的源顶点和目的顶点,将边写入相应的入射边块和出射边块,其中,P的取值需要确保每一个入射块或出射块的大小小于内存的容量;
设定各顶点的初始化值并选定活跃顶点后,按照划分的顶点区间,加载当前顶点区间的顶点及当前顶点区间的入射边块和出射边块到内存中得到目标图数据;
将所述目标图数据中的每条入射边写入该入射边目的顶点的入射边队列,将每条出射边写入该出射边源顶点的出射边队列,构建以顶点为中心的内存子图;
所述内存子图中的每个顶点并发地从各自的入射边读取数据,并根据读取的数据对顶点值进行更新,然后将被更新的顶点写回磁盘。
优选地,在所述入射边块结构中的边按边的目的顶点进行排序,在所述出射边块结构中的边按边的源顶点进行排序。
优选地,所述活跃顶点为顶点值在上一轮迭代中被更新的顶点。
优选地,所述将所述目标图数据中的每条入射边写入该入射边目的顶点的入射边队列,将每条出射边写入该出射边源顶点的出射边队列,构建以顶点为中心的内存子图,包括:
对于所述目标图数据中的每条入射边,首先访问该入射边的目的顶点的内存地址,然后将该入射边添加到其目的顶点的入射边队列;
对于所述目标图数据中的每条出射边,首先访问该出射边的源顶点的内存地址,然后将该出射边添加到其源顶点的出射边队列。
优选地,所述将被更新的顶点写回磁盘之后,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810838033.1/2.html,转载请声明来源钻瓜专利网。