当前位置: 首页 > 专利查询>武汉大学专利>正文

一种单机核外属性图计算方法技术

技术编号:29133378 阅读:17 留言:0更新日期:2021-07-02 22:28
本发明专利技术公开了一种单机核外属性图计算方法。本发明专利技术构建属性图;将属性图的顶点集以外层不对称网格分图策略算法分簇;对得到的每个边集合以内层不对称网格分图策略算法细化分簇;按序重组得到的细粒度边集合;重组得到的边集合;构建拓扑数组和边的属性的数组;构建顶点的属性数组;根据用户给定的属性条件限制标记满足限制的拓扑子图;根据用户给定的计算任务流式遍历拓扑图。本发明专利技术优化了图算法对底层存储系统的利用,保留了单机核外图计算系统的优势,且无需对同一属性图的不同图计算任务重新分图。

【技术实现步骤摘要】
一种单机核外属性图计算方法
本专利技术属于计算机科学
,尤其涉及一种单机核外属性图计算方法。
技术介绍
随着现实生活中图数据(如:社交网络、用户-物品网络、路网、交易网络等等)的快速增长,用户需要从这些图数据中挖掘具有潜在价值的信息的高效计算系统。由于现实场景下的图往往包含上十亿级的顶点和边,近年来,大规模图计算已成为研究领域中的热点问题。大规模图计算系统主要可分为两类,即分布式系统和单机系统。分布式系统通常是处理大规模数据的自然的选择,目前已有许多分布式图计算系统的相关研究。由于分布式系统需要将图分布在集群的若干台机器上,故分布式系统需要把大规模图切分为若干子图,即“分图”(partitioning),并将这些子图分别分布到不同机器上。图的分散分布使得分布式系统执行图算法任务时不可避免地在机器间进行大量消息交换与合并。雪上加霜的是,现实世界中许多图的偏斜度分布(skeweddegreedistribution)、高密度(highdensity)和大直径(largediameter)等特征导致分布式系统产生诸如负载不平衡(loadimbalance),同步开销(synchronizationoverhead)和容错开销(faulttoleranceoverhead)等问题。单机系统则能够有效避免机器间通信带来的问题。单机图计算系统又可细分为单机核内(in-memory)图计算系统和单机核外(out-of-core)图计算系统。单机核内图计算系统将图数据完全存放在内存中,其能够处理的图数据规模受内存大小的限制,而单机核外图计算系统则同时利用了机器的内存与外存存储和处理图数据,因此具有更佳的可扩展性。同时,相较于分布式系统,单机核外图计算系统仅允许内存和本地外存之间进行数据交换,从而大大降低了通信开销。由于单机核外图计算系统涉及内外存之间的数据交换,引入分图策略能够更加有效组织数据,提升系统性能,因此现有单机核外图计算系统研究将分图策略作为主要问题之一考虑。“对称网格”分图策略是现有主流技术方案之一,其将顶点ID划分为若干个区间,根据边的源顶点ID所在区间确定该边所在网格的“行”,根据边的目的顶点ID所在区间确定该边所在网格的“列”,在计算过程中通过以“行”或“列”为导向的网格加载方式控制需要加载的顶点数据,被加载的网格会同时加载其所在“行”对应的顶点区间的所有顶点的相关变量和所在“列”对应的顶点区间的所有顶点的相关变量,其中“行”顶点数据涉及外存的“读”,而“列”顶点数据涉及外存的“写”。但是,计算机外存读写速度不一致的硬件特性使得“对称网格”分区策略中的“行”和“列”数据加载速度不一致,“行”读数据远快于“列”写数据,导致计算资源和时间的浪费。因此,如何设计分图策略使得单机核外图计算系统的性能尽可能提升是单机核外图计算系统研究与应用中的关键问题之一。此外,在现有的单机核外图计算系统的研究中,尽管许多现实场景中的图都具有大量的属性数据,但这些单机核外图计算系统都未考虑具有属性的图的图计算问题。例如,针对网络图(webgraph),用户需要计算生成时间在指定范围内的网页排名(PageRank),以便用户了解这段时间内的热门网页。但现有的仅考虑拓扑图计算的单机核外系统无法执行此类任务。一种简单的解决方案是利用数据库查询引擎来选择满足时间条件的边和顶点,即从原始图数据中提取符合条件的子图,然后再导入到单机核外图计算系统处理该子图。但是,该解决方案的一个主要问题是,提取的子图由于拓扑结构的变化需要在外存上重新分图,这意味着单机核外图计算系统需要针对每个特定条件限制的属性图计算任务进行分图处理,这对时间和计算资源来说都是极大的浪费。因此,如何高效地计算属性图是单机核外属性图计算系统研究与应用中的关键问题。
技术实现思路
本专利技术针对现有技术方案的不足,提供一种单机核外属性图计算系统,可分为预处理阶段和计算阶段,其在预处理阶段使用“双层不对称网格”分图策略分图,并基于列式存储方式存储分图后的属性图数据,同时分图后的网格使用双向重组策略合并,在计算阶段则基于标记-流式处理(labeling-and-streaming)两阶段计算模型计算用户定义的属性图计算任务。本专利技术的技术方案为一种单机核外属性图计算方法,具体步骤如下:步骤1:构建属性图,所述属性图由多个顶点、多条边、顶点对应的多个属性,以及边对应的多个属性构成;步骤2:将属性图的多个顶点通过外层不对称网格分图策略算法进行分簇,得到顶点簇以及每对顶点簇对应的边集合;步骤3:将步骤2中通过外层不对称网格分图策略算法得到的Ps×Pt个边集合Block再次细化分簇,对每个Block通过内层不对称网格分图策略算法得到粒度更小的顶点簇以及每对细粒度顶点簇对应的细粒度边集合;步骤4:对每个经过步骤3处理的Block(x,y)所得到的细粒度边集合Block(xa,yb)按源顶点簇优先的顺序重组,会得到一个细粒度边集合有序的一维数组Block’(x,y);步骤5:对所有一维数组Block’(x,y)(x∈[1,Ps],y∈[1,Pt])按目的顶点簇优先的顺序重组,得到一个一维数组Block’(x,y)间有序的属性图二维数组Grid;步骤6:通过步骤5得到的属性图二维数组Grid构建出1个拓扑数组Column(E)和q个边的属性的数组Column(AE(b)),b∈[1,q];步骤7:对顶点的属性数据AV构建出m个顶点的属性一维数组Column(AV(a)),a∈[1,m];步骤8:根据用户给定的属性条件限制,依次顺序遍历需要的在步骤7得到的顶点属性数组,在内存中得到一个顶点标记数组,再依次顺序遍历需要的在步骤6得到的边属性数组并结合顶点标记数组,最终得到在内存中的顶点标记数组和边标记数组;步骤9:根据用户给定的计算任务,顺序读步骤6得到的拓扑数组,对读入的每条边通过步骤8得到的顶点标记数组和边标记数组判断该边是否需要进行计算,若需要则按用户定义的计算任务处理;遍历完拓扑数组中的每条边后,根据用户定义的计算任务判断是否满足计算任务结束条件,是则结束,用户发起新的计算任务时直接进入步骤8,否则重复步骤9。作为优选,步骤1中所述的属性图,可概括为顶点和边都具有属性的拓扑图,具体定义为:G=(V,E,AV,AE)V={vi|i∈[1,|V|]}其中,V表示属性图中顶点的集合,vi表示属性图中第i个顶点;E={ei,j=<vi,vj>|vi∈V,vj∈V}表示属性图中边的集合,ei,j=<vi,vj>表示属性图中第i个顶点到第j个顶点的有向连边,i∈[1,|V|],j∈[1,|V|];任意无向边ei,j′=(vi,vj)在E中将被表示为ei,j=<vi,vj>和eji=<vj,vi>两条对向的有向边;AV表示属性图中顶点的一组属性值的集合,m表示顶点的属性的数量,AV={AV(a,i)|a∈[1,m],i∈[1,|V|]}本文档来自技高网
...

【技术保护点】
1.一种单机核外属性图计算方法,其特征在于,包括以下步骤:/n步骤1:构建属性图,所述属性图由多个顶点、多条边、顶点对应的多个属性,以及边对应的多个属性构成;/n步骤2:将属性图的多个顶点通过外层不对称网格分图策略算法进行分簇,得到顶点簇以及每对顶点簇对应的边集合;/n步骤3:将步骤2中通过外层不对称网格分图策略算法得到的P

【技术特征摘要】
1.一种单机核外属性图计算方法,其特征在于,包括以下步骤:
步骤1:构建属性图,所述属性图由多个顶点、多条边、顶点对应的多个属性,以及边对应的多个属性构成;
步骤2:将属性图的多个顶点通过外层不对称网格分图策略算法进行分簇,得到顶点簇以及每对顶点簇对应的边集合;
步骤3:将步骤2中通过外层不对称网格分图策略算法得到的Ps×Pt个边集合Block再次细化分簇,对每个Block通过内层不对称网格分图策略算法得到粒度更小的顶点簇以及每对细粒度顶点簇对应的细粒度边集合;
步骤4:对每个经过步骤3处理的Block(x,y)所得到的细粒度边集合Block(xa,yb)按源顶点簇优先的顺序重组,会得到一个细粒度边集合有序的一维数组Block’(x,y);
步骤5:对所有一维数组Block’(x,y)(x∈[1,Ps],y∈[1,Pt])按目的顶点簇优先的顺序重组,得到一个一维数组Block’(x,y)间有序的属性图二维数组Grid;
步骤6:通过步骤5得到的属性图二维数组Grid构建出1个拓扑数组Column(E)和q个边的属性的数组Column(AE(b)),b∈[1,q];
步骤7:对顶点的属性数据AV构建出m个顶点的属性一维数组Column(AV(a)),a∈[1,m];
步骤8:根据用户给定的属性条件限制,依次顺序遍历需要的在步骤7得到的顶点属性数组,在内存中得到一个顶点标记数组,再依次顺序遍历需要的在步骤6得到的边属性数组并结合顶点标记数组,最终得到在内存中的顶点标记数组和边标记数组;
步骤9:根据用户给定的计算任务,顺序读步骤6得到的拓扑数组,对读入的每条边通过步骤8得到的顶点标记数组和边标记数组判断该边是否需要进行计算,若需要则按用户定义的计算任务处理;遍历完拓扑数组中的每条边后,根据用户定义的计算任务判断是否满足计算任务结束条件,是则结束,用户发起新的计算任务时直接进入步骤8,否则重复步骤9。


2.根据权利要求1所述的单机核外属性图计算方法,其特征在于,
步骤1中所述的属性图,可概括为顶点和边都具有属性的拓扑图,具体定义为:
G=(V,E,AV,AE)
V={vi|i∈[1,|V|]}
其中,V表示属性图中顶点的集合,vi表示属性图中第i个顶点;
E={ei,j=<vi,vj>|vi∈V,vj∈V}表示属性图中边的集合,ei,j=<vi,vj>表示属性图中第i个顶点到第j个顶点的有向连边,i∈[1,|V|],j∈[1,|V|];任意无向边ei,j′=(vi,vj)在E中将被表示为ei,j=<vi,vj>和eji=<vj,vi>两条对向的有向边;
AV表示属性图中顶点的一组属性值的集合,m表示顶点的属性的数量,AV={AV(a,i)|a∈[1,m],i∈[1,|V|]},AV(a,i)表示第i个顶点的第a个属性值,AV(a)表示顶点的第a个属性值;对于任意顶点v∈V,v有且仅有m个顶点属性及对应的m个属性值;
AE表示属性图中连边的一组属性值的集合,q表示边的属性的数量,AE={AE(b,i,j)|ei,j∈E,i∈[1,|V|],j∈[1,|V|],b∈[1,q]},AE(b,i,j)表示连边ei,j的第b个属性值,AE(b)表示边的第b个属性值;对于任意边e∈E,e有且仅有q个边属性及对应的q个属性值;
|V|为集合V的势,表示属性图顶点的数量;
|E|为集合E的势,表示属性图连边的数量。


3.根据权利要求1所述的单机核外属性图计算方法,其特征在于,
步骤2所述顶点簇集合包括:源顶点簇集合、目的顶点簇集合;
所述源顶点簇的集合定义为VS,所述源顶点簇集合内的源顶点簇的数目为Ps,VS(x)表示源顶点簇集合内的第x个源顶点簇,x∈[1,Ps];
所述目的顶点簇的集合定义为VT,所述目的顶点簇集合内的目的顶点簇的数目为Pt,VT(y)表示目的顶点簇集合内的第y个目的顶点簇,y∈[1,Pt];
Ps和Pt均为正整数,Ps≥Pt;
步骤2所述源顶点簇定义为:
VS(x)={vi|i∈(|V|×(x-1)/Ps,|V|×x/Ps],x∈[1,Ps]},
步骤2所述目的顶点簇定义为:
VT(y)={vi|i∈(|V|×(y-1)/Pt,|V|×y/Pt],y∈[1,Pt]},
对于属性图中第i个顶点即vi∈V(i∈[1,|V|]):
vi所在的源顶点簇VS为第i/(|V|/Ps)个,即VS(i/(|V|/Ps));
vi所在的目的顶点簇为第i/(|V|/Pt)个,即VT(i/(|V|/Pt));
根据外层不对称网格分图策略分图后,步骤1所定义的图的边集E将被划分出Ps×Pt个边的子集,定义为Block(x,y),Block(x,y)表示源顶点簇VS(x)和目的顶点簇VT(y)对应的边集合,其符号定义为:
Block(x,y)={ei,j|vi∈VS(x),vj∈VT(y)},x∈[1,Ps],y∈[1,Pt]
|Block(x,y)|为集合Block(x,y)的势,表示顶点簇VS(x)和VT(y)对应的边集合Block(x,y)中连边的数量。


4.根据权利要求1所述的单机核外属性图计算方法,其特征在于,
步骤3所述内层不对称网格分图策略算法的应用对象是步骤2得到的每对顶点簇对应的边集合中超过一定大小记为Csize的边集合,即满足|Block(x,y)|>Csize的Block(x,y);
步骤3所述的对边集合再次细化分簇具体为:
对每个|Block(x,y)|>Csize的边集合Block(x,y),通过内层不对称网格分图策略算法将得到Ps’个细粒度源顶点簇VS(xa,Block(x,y))(x∈[1,Ps],a∈[1,Ps’],Pt’个细粒度目的顶点簇VT(yb,Block(x,y))(y∈[1,Pt],b∈[1,Pt’],以及每对细粒度顶点簇对应的细粒度边集合Block(xa,yb);
步骤3所述细粒度源顶点簇定义为:

(结果为小数时向上取整),x∈[1,Ps],a∈[1,Ps’],N=|V|,VS(xa,Block(x,y))表示VS(x)针对Block(x,y)划分的第a个细粒度源顶点簇;
步骤3所述细粒度目的顶点簇定义为:

(结果为小数时向上取整),y∈[1,Pt],b∈[1...

【专利技术属性】
技术研发人员:钟鸣郑盈仪荆泽华
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1