一种分图方法及装置制造方法及图纸

技术编号:18049960 阅读:47 留言:0更新日期:2018-05-26 08:01
本发明专利技术实施例公开了一种分图方法。本发明专利技术实施例方法包括:分图装置在提取边后,先判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,当满足时,再判断第一设备存储的所分配边的数量是否小于第一预设阈值,当小于时,则将当前所提取的边分配至所述第一设备。这样,使得每台设备中所分配到的边之间的聚合度都较高且每台设备的负载较均衡,当某条边发生变化时需要同步与之关联的边时,所需要同步更新的设备也比较少,从而减少了设备之间的通信代价,提高分布式图计算的效率。

【技术实现步骤摘要】
一种分图方法及装置
本专利技术涉及分布式图计算领域,尤其涉及一种分图方法及装置。
技术介绍
分布式图计算是大数据分析重要的一个领域,用于处理大规模的图数据。很多领域的数据以图的方式呈现,在形式上,一个图有若干顶点和边组成。例如,在社交网络中,用户是图的顶点,而用户之间的朋友关系作为图的边;又例如,在电子商务中,用户和商品是图的顶点,用户浏览和购买商品的行为作为图的边;又例如,在互联网中,网页作为图的顶点,网页之间的超链接作为图的边等等。其他主要以图数据作为信息呈现的领域还包括物联网和通信网络。由于这些大数据领域的快速发展,包括互联网、物联网、电子商务等,图数据的规模急速增大(比如clue-web中有10亿网页和420亿超链接)。因此面临的主要挑战是如何高效的处理大规模的图数据,以支撑基于图数据的数据挖掘和分析决策。业界通用的解决方案是分布式图计算系统,分布式图计算系统旨在利用设备集群(比如计算机集群)的联合性能,通过把要处理的图数据分成若干部分(每一个部分可称为一个子图)分配到不同设备上,并行计算,从而提升效率。然而,为了保持计算状态的一致性,分布式图计算需要大量频繁的设备之间的通信。为了保证计算的正确性,每台设备通过计算获得的最新状态都需要传送到与存储在该设备的子图相邻接(这里相邻指有重合的顶点或者边)的子图所在的设备上。这导致了很大通信代价,由于大多数图算法都利用图整体的拓扑结果来提升学习效果,这导致了不同子图的计算要频繁同步计算状态,从而引发大量的设备之间的通信。由于不同设备的子图计算高度互相依赖,整个分布式图计算中有很大比例的时间(可达80%-90%)花销在设备之间的通信上,因此提升分布式图计算效率重要手段是要降低通信代价。在现有的分图方法中,是随机把图中的边分到不同的设备。虽然使用该方法的分图效率较高,但是导致每台设备中所分的子图的缺点是复制因子高。其中,复制因子指的是出现在每台机器的顶点数总和除以图上的总顶点数(一个顶点可能出现在不同的机器里),因此,复制因子越大,在状态同步时,则需要越多的设备需要同步更新状态,从而导致通信代价较高,使得整体分布式图计算的效率较低。
技术实现思路
本专利技术提供了一种分图方法及装置,用于减少设备之间的通信代价,提高分布式图计算的效率。本专利技术第一方面提供一种分图方法,用于逐一提取图中的边并分配到多个设备中,该方法具体为:先从存储器中随机打乱的便中提取一条边,然后判断当前所提取的边与已被分配过边的第一设备中的所分配的边的聚合度是否满足预置条件,若满足预置条件,则表示当前所提取的边与第一设备中所分配的边的聚合度较高,那么当前所提取的边适合分配至第一设备中;若不满足预置条件,则表示当前所提取的边与第一设备中所分配的边的聚合度较低,那么当前所提取的边不适合分配至第一设备中。当当前所提取的边与第一设备中的所分配的边的聚合度满足所述预置条件时,则再判断第一设备存储的所分配边的数量是否小于第一预设阈值,为了使得每台设备的负载较为均衡,第一预设阈值可以为分图装置为每台设备所设置的一个适当的分配边的数值,该值可以为所有边的总数除以参与分配边的设备数所得到的平均值。若第一设备存储的所分配的边的数量大于或等于该第一预设阈值,则表示第一设备不适合再接受分配边,若第一设备存储的所分配的边的数量小于该第一预设阈值,则表示第一设备还可以接受分配边,则将当前所提取的边分配至第一设备。这样,使得每台设备中所分配到的边之间的聚合度都较高,当某条边发生变化时需要同步与之关联的边时,所需要同步更新的设备也比较少,从而减少了设备之间的通信代价,提高分布式图计算的效率。一种可能的实现方式中,该分图方法还可以包括:当当前所提取的边与第一设备中的所分配的边的聚合度不满足所述预置条件时,则表示当前所提取的边与第一设备中所分配的边的聚合度不高,则当前所提取的边不适合分配至第一设备中,因此可以将当前所提取的边进行暂时寄存,方便后续分配到合适的设备中。具体的,可以将当前所提取的边寄存至分图装置的寄存器,或内存,或闪存等内存存储器中。另一种可能的实现方式中,该方法还包括:当所寄存的边的数量达到第二预设阈值时,按照预设规则将所寄存的部分边分配到第二设备,所述第二设备为未被分配过边的设备。当分图装置的寄存器存满后,或者分图装置所寄存的边的数量较大时,则可以将所寄存的边分配到一个未分配过边的设备中,而该分配并非将所寄存的边全部分配至第二设备,而是按照预设规则选取其中聚合度较高的边分配至第二设备,其余的边仍然存储在寄存器中,等待后续进行分配。这样使得分配至第二设备中的边的聚合度也较高,同样减少了设备之间的通信代价,提高分布式图计算的效率。另一种可能的实现方式中,按照预设规则将所寄存的部分边分配到第二设备具体可以为:先确定与核心顶点集合相连的第一候选顶点,其中,以该第一候选顶点为顶点的边中未分配的边的数量最少,该第一候选顶点为边界顶点集合内的顶点,该边界顶点集合包含所述核心顶点集合。若核心顶点集合为空集,则先随机选取一个顶点作为核心顶点集合,以该核心顶点相邻的顶点作为边界顶点集合。再将第一候选顶点加入到所述核心顶点集合中;确定第二候选顶点,该第二候选顶点与第一候选顶点相邻,该第二候选顶点位于边界顶点集合之外;再将第一候选边分配到第二设备,所述第一候选边为所述第一候选顶点与所述第二候选顶点所组成的边。再将第二候选顶点加入到边界顶点集合中。当所述边界顶点集合中还存在与所述第二候选顶点相邻的其它顶点,则将该第二候选顶点与其他顶点所组成的边分配到所述第二设备。循环执行上述步骤,直到分配到所述第二设备内的边的数量达到第三预设阈值时,则暂停将所寄存的边分配到第二设备。这样,使得从寄存器中所分配至第二设备中的边相互之间的关联性较大,从而使得边之间的聚合度较高,从而减少了设备之间的通信代价。本专利技术第二方面提供一种分图装置,用于逐一提取图中的边并分配到多个设备中,包括:判断单元,用于判断当前所提取的边与已被分配过边的第一设备中的所分配的边的聚合度是否满足预置条件,若满足预置条件,则表示当前所提取的边与第一设备中所分配的边的聚合度较高,那么当前所提取的边适合分配至第一设备中;若不满足预置条件,则表示当前所提取的边与第一设备中所分配的边的聚合度较低,那么当前所提取的边不适合分配至第一设备中。判断单元还用于,当当前所提取的边与第一设备中的所分配的边的聚合度满足所述预置条件时,则判断第一设备存储的所分配边的数量是否小于第一预设阈值。为了使得每台设备的负载较为均衡,第一预设阈值可以为分图装置为每台设备所设置的一个适当的分配边的数值,该值可以为所有边的总数除以参与分配边的设备数所得到的平均值。若第一设备存储的所分配的边的数量大于或等于该第一预设阈值,则表示第一设备不适合再接受分配边,若第一设备存储的所分配的边的数量小于该第一预设阈值,则表示第一设备还可以接受分配边。分配单元,用于当第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。这样,使得每台设备中所分配到的边之间的聚合度都较高,当某条边发生变化时需要同步与之关联的边时,所需要同步更新的设备也比较少,从而减少了设备之间的通信代价,提高分布式图计算的效率。本专利技术第本文档来自技高网
...
一种分图方法及装置

【技术保护点】
一种分图方法,用于逐一提取图中的边并分配到多个设备中,其特征在于,所述方法包括:判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,其中,所述第一设备为已被分配过边的设备;当所述当前所提取的边与所述第一设备中的所分配的边的聚合度满足所述预置条件时,则判断所述第一设备存储的所分配边的数量是否小于第一预设阈值;当所述第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。

【技术特征摘要】
1.一种分图方法,用于逐一提取图中的边并分配到多个设备中,其特征在于,所述方法包括:判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,其中,所述第一设备为已被分配过边的设备;当所述当前所提取的边与所述第一设备中的所分配的边的聚合度满足所述预置条件时,则判断所述第一设备存储的所分配边的数量是否小于第一预设阈值;当所述第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。2.根据权利要求1所述的方法,其特征在于,所述预置条件包括:当前所提取的边的两个顶点均与所述第一设备中所分配的边中的顶点相匹配。3.根据权利要求1所述的方法,其特征在与,所述预置条件包括:当前所提取的边的其中一个顶点与所述第一设备中所分配的边中的顶点相匹配,且所述当前所提取的边的两个顶点的度数均小于所述第一设备中所分配的边中顶点的平均度数。4.根据权利要求1至3其中任意一项所述的方法,其特征在于,所述方法还包括:当所述当前所提取的边与所述第一设备中的所分配的边的聚合度不满足所述预置条件时,将当前所提取的边进行寄存。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所寄存的边的数量达到第二预设阈值时,按照预设规则将所寄存的部分边分配到第二设备,所述第二设备为未被分配过边的设备。6.根据权利要求5所述的方法,其特征在于,所述按照预设规则将所寄存的部分边分配到第二设备,包括:确定与核心顶点集合相连的第一候选顶点,其中,以所述第一候选顶点为顶点的边中未分配的边的数量最少,所述第一候选顶点为边界顶点集合内的顶点,所述边界顶点集合包含所述核心顶点集合;将所述第一候选顶点加入到所述核心顶点集合中;确定第二候选顶点,所述第二候选顶点与所述第一候选顶点相邻,所述第二候选顶点位于所述边界顶点集合之外;将第一候选边分配到第二设备,所述第一候选边为所述第一候选顶点与所述第二候选顶点所组成的边;将所述第二候选顶点加入到所述边界顶点集合中;当所述边界顶点集合中还存在与所述第二候选顶点相邻的其它顶点,则将所述第二候选顶点与所述其他顶点所组成的边分配到所述第二设备;当分配到所述第二设备内的边的数量达到第三预设阈值时,则暂停将所寄存的边分配到第二设备。7.根据权利要求1至6其中任意一项所述的方法,其特征在于,在所述判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,所述方法还包括:从所寄存的边中依次提取一条边;当所述当前所提取的边被分配至所述第一设备后,从所寄存的边中删除当前提取的边。8.根据权利要求1至6其中任意一项所述的方法,其特征在于,在所述判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,所述方法还包括:从所获取的图中依次随机提取一条边。9.一种分图装置,用于逐一提取图中的边并分配到多个设备中,其特征在于,所述装置包括:判断单元,用于判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,...

【专利技术属性】
技术研发人员:李震国成杰峰赵志洪
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1