The invention discloses a disk graph processing method and system based on subgraph construction, which includes: organizing graph data into bidirectional edge block structure; starting iterative graph calculation; loading graph data into memory; constructing vertex-centered memory subgraph by efficient subgraph construction method; updating subgraph; writing updated graph data back to disk; and judging whether convergence conditions are achieved. End the iteration graph calculation. By organizing the vertices and edges that need to be visited in the process of subgraph construction, the disk graph processing method proposed in the present invention ensures that the memory access locality is fully utilized in the process of subgraph construction, solves the problem of high subgraph construction overhead in the current disk graph processing system, and significantly improves the overall performance of the system.
【技术实现步骤摘要】
一种基于子图构建的磁盘图处理方法及系统
本专利技术属于计算机大数据处理
,更具体地,涉及一种基于子图构建的磁盘图处理方法及系统。
技术介绍
在当前大数据背景下,呈现出越来越多的对大规模图数据进行分析、处理及挖掘的应用需求。近年来,基于磁盘的图处理系统由于其成本低、可扩展性强等特点得到了广泛的关注,例如卡内基梅隆大学的GraphChi、洛桑联邦理工学院的X-Stream、清华大学的GridGraph等。这些磁盘图处理将图数据分为若干个子图,并且每次从磁盘中加载和处理一个子图。另外,这些系统大多采用以顶点为中心的计算模型,在处理每个子图之前,需要在内存中构建以顶点为中心的子图数据结构。这个子图构建过程要求系统为子图中的每个顶点添加入射边和出射边。然而,由于边的源顶点或目的顶点不连续的存储在内存中,构建子图的过程通常会带来很大的开销。例如,GraphChi在执行PageRank图算法时,其子图构建时间占到整个运行时间的60%,导致高子图构建开销的主要原因是子图构建过程导致了大量的内存随机读写。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于子 ...
【技术保护点】
1.一种基于子图构建的磁盘图处理方法,其特征在于,包括:将输入图的顶点划分为P个不相交的顶点区间,对于每个顶点区间,分别创建一个入射边块结构和一个出射边块结构,以利用所述入射边块结构存储对应顶点区间中顶点的入射边,利用所述出射边块结构存储对应顶点区间中顶点的出射边,然后对所述输入图中的边进行遍历,根据每条边的源顶点和目的顶点,将边写入相应的入射边块和出射边块,其中,P的取值需要确保每一个入射块或出射块的大小小于内存的容量;设定各顶点的初始化值并选定活跃顶点后,按照划分的顶点区间,加载当前顶点区间的顶点及当前顶点区间的入射边块和出射边块到内存中得到目标图数据;将所述目标图数据 ...
【技术特征摘要】
1.一种基于子图构建的磁盘图处理方法,其特征在于,包括:将输入图的顶点划分为P个不相交的顶点区间,对于每个顶点区间,分别创建一个入射边块结构和一个出射边块结构,以利用所述入射边块结构存储对应顶点区间中顶点的入射边,利用所述出射边块结构存储对应顶点区间中顶点的出射边,然后对所述输入图中的边进行遍历,根据每条边的源顶点和目的顶点,将边写入相应的入射边块和出射边块,其中,P的取值需要确保每一个入射块或出射块的大小小于内存的容量;设定各顶点的初始化值并选定活跃顶点后,按照划分的顶点区间,加载当前顶点区间的顶点及当前顶点区间的入射边块和出射边块到内存中得到目标图数据;将所述目标图数据中的每条入射边写入该入射边目的顶点的入射边队列,将每条出射边写入该出射边源顶点的出射边队列,构建以顶点为中心的内存子图;所述内存子图中的每个顶点并发地从各自的入射边读取数据,并根据读取的数据对顶点值进行更新,然后将被更新的顶点写回磁盘。2.根据权利要求1所述的方法,其特征在于,在所述入射边块结构中的边按边的目的顶点进行排序,在所述出射边块结构中的边按边的源顶点进行排序。3.根据权利要求1所述的方法,其特征在于,所述活跃顶点为顶点值在上一轮迭代中被更新的顶点。4.根据权利要求2所述的方法,其特征在于,所述将所述目标图数据中的每条入射边写入该入射边目的顶点的入射边队列,将每条出射边写入该出射边源顶点的出射边队列,构建以顶点为中心的内存子图,包括:对于所述目标图数据中的每条入射边,首先访问该入射边的目的顶点的内存地址,然后将该入射边添加到...
【专利技术属性】
技术研发人员:王芳,徐湘灏,冯丹,程永利,张永选,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。