WO2018086422A1 - 一种分图方法及装置 - Google Patents

一种分图方法及装置 Download PDF

Info

Publication number
WO2018086422A1
WO2018086422A1 PCT/CN2017/103397 CN2017103397W WO2018086422A1 WO 2018086422 A1 WO2018086422 A1 WO 2018086422A1 CN 2017103397 W CN2017103397 W CN 2017103397W WO 2018086422 A1 WO2018086422 A1 WO 2018086422A1
Authority
WO
WIPO (PCT)
Prior art keywords
edge
vertices
allocated
edges
vertex
Prior art date
Application number
PCT/CN2017/103397
Other languages
English (en)
French (fr)
Inventor
李震国
成杰峰
赵志洪
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP17869043.4A priority Critical patent/EP3525112A4/en
Publication of WO2018086422A1 publication Critical patent/WO2018086422A1/zh
Priority to US16/405,367 priority patent/US11194861B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices

Definitions

  • the first aspect of the present application provides a method for dividing a picture, which is used to extract edges in a picture and allocate them to multiple devices.
  • the method is specifically:
  • the first device If the number of allocated edges stored by the first device is greater than or equal to the first preset threshold, it indicates that the first device is not suitable to accept the allocated edge again, if the number of allocated edges stored by the first device is less than the first
  • the preset threshold indicates that the first device can also accept the assigned edge.
  • the current reference is first determined. Whether the degree of aggregation of the extracted edge and the allocated edge in the first device meets a preset condition, and when it is satisfied, it is determined whether the number of allocated edges stored by the first device is less than a first preset threshold, when less than, The currently extracted edge is then assigned to the first device. In this way, the degree of aggregation between the allocated edges in each device is high and the load of each device is relatively balanced. When an edge needs to be synchronized with the edge associated with it, it needs to be updated synchronously. There are also fewer devices, which reduces the communication cost between devices and improves the efficiency of distributed graph calculation.
  • the currently extracted edge satisfies the above two conditions, it indicates that the currently extracted edge has a higher degree of aggregation with the edge stored in the first device, and the currently extracted edge should be allocated to the first device, so that If the currently extracted edge changes, the associated edge is likely to be stored in the first device, so that only the edge associated with the first device stored in the first device needs to be updated, thereby reducing the device.
  • a first preset threshold may be set for each device.
  • the graphing device Before the splitting device allocates the currently extracted edge to the first device, the graphing device now confirms that the number of allocated edges stored in the first device is less than a first preset threshold, thus indicating that the first device stores The number of edges is not yet up to standard, and the first device can also be assigned edges. If the stored in the first device is allocated If the number of edges is greater than or equal to the first preset threshold, then the edge device is not required to allocate edges for the first device, and the graphing device compares the currently extracted edges with the aggregation degrees of the other first devices. , the currently extracted edges are assigned to other devices.
  • a splitting device adds the first candidate vertex to the set of core vertices
  • the allocating unit 202 is configured to allocate the currently extracted edge to the first device when the number of allocated edges stored by the first device is less than the first preset threshold.
  • the registered partial edges are allocated to the second device according to a preset rule, and the second device is a device that has not been assigned an edge.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

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

Description

一种分图方法及装置
本申请要求于2016年11月8日提交中国专利局、申请号为201610982455.7、发明名称为“一种分图方法及装置”的中国专利申请的优先权。
技术领域
本申请涉及分布式图计算领域,尤其涉及一种分图方法及装置。
背景技术
分布式图计算是大数据分析重要的一个领域,用于处理大规模的图数据。很多领域的数据以图的方式呈现,在形式上,一个图有若干顶点和边组成。例如,在社交网络中,用户是图的顶点,而用户之间的朋友关系作为图的边;又例如,在电子商务中,用户和商品是图的顶点,用户浏览和购买商品的行为作为图的边;又例如,在互联网中,网页作为图的顶点,网页之间的超链接作为图的边等等。其他主要以图数据作为信息呈现的领域还包括物联网和通信网络。
由于这些大数据领域的快速发展,包括互联网、物联网、电子商务等,图数据的规模急速增大(比如clue-web中有10亿网页和420亿超链接)。因此面临的主要挑战是如何高效的处理大规模的图数据,以支撑基于图数据的数据挖掘和分析决策。业界通用的解决方案是分布式图计算系统,分布式图计算系统旨在利用设备集群(比如计算机集群)的联合性能,通过把要处理的图数据分成若干部分(每一个部分可称为一个子图)分配到不同设备上,并行计算,从而提升效率。然而,为了保持计算状态的一致性,分布式图计算需要大量频繁的设备之间的通信。为了保证计算的正确性,每台设备通过计算获得的最新状态都需要传送到与存储在该设备的子图相邻接(这里相邻指有重合的顶点或者边)的子图所在的设备上。这导致了很大通信代价,由于大多数图算法都利用图整体的拓扑结果来提升学习效果,这导致了不同子图的计算要频繁同步计算状态,从而引发大量的设备之间的通信。由于不同设备的子图计算高度互相依赖,整个分布式图计算中有很大比例的时间(可达80%-90%)花销在设备之间的通信上,因此提升分布式图计算效率重要手段是要降低通信代价。
在现有的分图方法中,是随机把图中的边分到不同的设备。虽然使用该方法的分图效率较高,但是导致每台设备中所分的子图的缺点是复制因子高。其中,复制因子指的是出现在每台机器的顶点数总和除以图上的总顶点数(一个顶点可能出现在不同的机器里),因此,复制因子越大,在状态同步时,则需要越多的设备需要同步更新状态,从而导致通信代价较高,使得整体分布式图计算的效率较低。
发明内容
本申请提供了一种分图方法及装置,用于减少设备之间的通信代价,提高分布式图计算的效率。
本申请第一方面提供一种分图方法,用于逐一提取图中的边并分配到多个设备中,该方法具体为:
先从存储器中随机打乱的便中提取一条边,然后判断当前所提取的边与已被分配过边的第一设备中的所分配的边的聚合度是否满足预置条件,若满足预置条件,则表示当前所 提取的边与第一设备中所分配的边的聚合度较高,那么当前所提取的边适合分配至第一设备中;若不满足预置条件,则表示当前所提取的边与第一设备中所分配的边的聚合度较低,那么当前所提取的边不适合分配至第一设备中。当当前所提取的边与第一设备中的所分配的边的聚合度满足所述预置条件时,则再判断第一设备存储的所分配边的数量是否小于第一预设阈值,为了使得每台设备的负载较为均衡,第一预设阈值可以为分图装置为每台设备所设置的一个适当的分配边的数值,该值可以为所有边的总数除以参与分配边的设备数所得到的平均值。若第一设备存储的所分配的边的数量大于或等于该第一预设阈值,则表示第一设备不适合再接受分配边,若第一设备存储的所分配的边的数量小于该第一预设阈值,则表示第一设备还可以接受分配边,则将当前所提取的边分配至第一设备。这样,使得每台设备中所分配到的边之间的聚合度都较高,当某条边发生变化时需要同步与之关联的边时,所需要同步更新的设备也比较少,从而减少了设备之间的通信代价,提高分布式图计算的效率。
一种可能的实现方式中,该分图方法还可以包括:
当当前所提取的边与第一设备中的所分配的边的聚合度不满足所述预置条件时,则表示当前所提取的边与第一设备中所分配的边的聚合度不高,则当前所提取的边不适合分配至第一设备中,因此可以将当前所提取的边进行暂时寄存,方便后续分配到合适的设备中。具体的,可以将当前所提取的边寄存至分图装置的寄存器,或内存,或闪存等内存存储器中。
另一种可能的实现方式中,该方法还包括:
当所寄存的边的数量达到第二预设阈值时,按照预设规则将所寄存的部分边分配到第二设备,所述第二设备为未被分配过边的设备。
当分图装置的寄存器存满后,或者分图装置所寄存的边的数量较大时,则可以将所寄存的边分配到一个未分配过边的设备中,而该分配并非将所寄存的边全部分配至第二设备,而是按照预设规则选取其中聚合度较高的边分配至第二设备,其余的边仍然存储在寄存器中,等待后续进行分配。这样使得分配至第二设备中的边的聚合度也较高,同样减少了设备之间的通信代价,提高分布式图计算的效率。
另一种可能的实现方式中,按照预设规则将所寄存的部分边分配到第二设备具体可以为:
先确定与核心顶点集合相连的第一候选顶点,其中,以该第一候选顶点为顶点的边中未分配的边的数量最少,该第一候选顶点为边界顶点集合内的顶点,该边界顶点集合包含所述核心顶点集合。若核心顶点集合为空集,则先随机选取一个顶点作为核心顶点集合,以该核心顶点相邻的顶点作为边界顶点集合。
再将第一候选顶点加入到所述核心顶点集合中;确定第二候选顶点,该第二候选顶点与第一候选顶点相邻,该第二候选顶点位于边界顶点集合之外;
再将第一候选边分配到第二设备,所述第一候选边为所述第一候选顶点与所述第二候选顶点所组成的边。
再将第二候选顶点加入到边界顶点集合中。
当所述边界顶点集合中还存在与所述第二候选顶点相邻的其它顶点,则将该第二候选顶点与其他顶点所组成的边分配到所述第二设备。
循环执行上述步骤,直到分配到所述第二设备内的边的数量达到第三预设阈值时,则暂停将所寄存的边分配到第二设备。这样,使得从寄存器中所分配至第二设备中的边相互之间的关联性较大,从而使得边之间的聚合度较高,从而减少了设备之间的通信代价。
本申请第二方面提供一种分图装置,用于逐一提取图中的边并分配到多个设备中,包括:
判断单元,用于判断当前所提取的边与已被分配过边的第一设备中的所分配的边的聚合度是否满足预置条件,若满足预置条件,则表示当前所提取的边与第一设备中所分配的边的聚合度较高,那么当前所提取的边适合分配至第一设备中;若不满足预置条件,则表示当前所提取的边与第一设备中所分配的边的聚合度较低,那么当前所提取的边不适合分配至第一设备中。
判断单元还用于,当当前所提取的边与第一设备中的所分配的边的聚合度满足所述预置条件时,则判断第一设备存储的所分配边的数量是否小于第一预设阈值。为了使得每台设备的负载较为均衡,第一预设阈值可以为分图装置为每台设备所设置的一个适当的分配边的数值,该值可以为所有边的总数除以参与分配边的设备数所得到的平均值。若第一设备存储的所分配的边的数量大于或等于该第一预设阈值,则表示第一设备不适合再接受分配边,若第一设备存储的所分配的边的数量小于该第一预设阈值,则表示第一设备还可以接受分配边。
分配单元,用于当第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。这样,使得每台设备中所分配到的边之间的聚合度都较高,当某条边发生变化时需要同步与之关联的边时,所需要同步更新的设备也比较少,从而减少了设备之间的通信代价,提高分布式图计算的效率。
本申请第三方面提供一种分图装置,用于逐一提取图中的边并分配到多个设备中,该装置包括:收发器、存储器以及处理器,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令用于实现如下方法:
判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,其中,所述第一设备为已被分配过边的设备;
当当前所提取的边与所述第一设备中的所分配的边的聚合度满足所述预置条件时,则判断所述第一设备存储的所分配边的数量是否小于第一预设阈值;
当所述第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。
本申请第四方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被运行时,执行第一方面或第一方面的任意一种实现方式提供的分图方法。该存储介质包括但不限于快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,简称:HDD)或固态硬盘(英文:solid state drive,简称:SSD)。
从以上技术方案可以看出,本申请实施例中,分图装置在提取边后,先判断当前所提 取的边与第一设备中的所分配的边的聚合度是否满足预置条件,当满足时,再判断第一设备存储的所分配边的数量是否小于第一预设阈值,当小于时,则将当前所提取的边分配至所述第一设备。这样,使得每台设备中所分配到的边之间的聚合度都较高且每台设备的负载较均衡,当某条边发生变化时需要同步与之关联的边时,所需要同步更新的设备也比较少,从而减少了设备之间的通信代价,提高分布式图计算的效率。
附图说明
图1为本发明实施例中分图方法所应用的一个系统架构示意图;
图2为本发明实施例中分图方法的一个示意图;
图3为本发明实施例中分图方法的一个具体实例场景的示意图;
图4为本发明实例中分图装置的一个示意图;
图5为本发明实例中分图装置的另一示意图。
具体实施方式
本发明实施例提供了一种分图方法及装置,用于减少设备之间的通信代价,提高分布式图计算的效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
参照图1所示,图1为本发明实施例中分图方法所应用的一个系统架构示意图。该系统架构中,包括多台设备以及一台分图装置,其中,该分图装置与设备可以同构,也可以异构。该分图装置也可以与多个设备一样,作为被分配边的对象。多台设备之间通过有线或者无线连接,分图装置与多个台设备通过有线或者无线连接。多台设备具体可以为计算机或者服务器等具有智能计算存储能力的设备,分图装置具体也可以为计算机或者服务器等具有智能分图的设备。分图装置用于先获取整个待分配的图,该图由多条边组成,每条边都存在两个顶点,分图装置逐一从获取的待分配的图中提取边,再对当前所提取的边与已经分配了边的设备中的边进行聚合度比较,当聚合度达标时,则把当前所提取的边分配到该设备中,若聚合度不达标,则分图装置则可以通过寄存器或者其它内部存储器先寄存当前所提取的边,当分图装置所寄存的边的数量达到阈值时,则将所寄存的边进行批量分配到未分配过边的设备中。这样,每台设备中所分配到的边之间的聚合度都较高,当某条边发生变化时需要同步与之关联的边时,则很大可能就在该边所在的设备中进行内部同步更新,即使有其它设备也需要同步更新,其所需要同步更新的设备也比较少,从而减少了设备之间的通信代价,提高分布式图计算的效率。
参照图2所示,本发明实施例中分图方法的一个实施例包括:
101、分图装置判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,若是,则执行步骤102,若否,则执行步骤104,其中,所述第一设备为已被分配过边的设备。
分图装置可以先获取到整个待分配的图,分图装置继而能够统计出该图中的边的数量、顶点的数量以及每个顶点的度数,然后逐一提取该图中的每一条边,将所提取的每一条边分配到相应的设备上。在对当前所提取的边进行分配时,分图装置现对当前所提取的边与已经分配过边的第一设备中的边进行聚合度的比较判断,再根据聚合度是否满足预置条件的情况对当前所提取的边进行相应的分配。其中,该聚合度是否满足预置条件可以为:当前所提取的边的两个顶点均与第一设备中所分配的边中的顶点相匹配。即,第一设备中所存储的被分配的边中具有与当前所提取的边的两个顶点相同的顶点。需要说明的是,这里并非仅限定当前所提取的边与第一设备中所存储的被分配的边中的一条边相同,还有可能是当前所提取的边的一个顶点与第一设备中的第一条边的某个顶点相同,而当前所提取的边的另一个顶点与第一设备中第二条边的某个顶点相同。
或者,该聚合度是否满足预置条件还可以为:当前所提取的边的其中一个顶点与第一设备中所分配的边中的顶点相匹配,且所述当前所提取的边的两个顶点的度数均小于所述第一设备中所分配的边中顶点的平均度数。若当前所提取的边只有一个顶点出现在第一设备中所存储的边中,那么还需继续判断当前所提取的边的两个顶点的度数与第一设备中顶点的平均度数,若当前所提取的边的两个顶点的度数均小于第一设备中顶点的平均度数,则表示当前所提取的边的关联关系不是很多,那么当前所提取的边更新时其更新的代价不是很大,这样,也可以将当前所提取的边分配到第一设备中。若当前所提取的边满足上述两种条件,那么表示当前所提取的边与第一设备中所存储的边的聚合度较高,那么当前所提取的边应该分配到第一设备中,以使得若当前所提取的边发生改变时,其所关联的边极有可能就存储在第一设备中,这样,只需要更新第一设备中所存储的与之关联的边即可,减少了设备之间同步的通信代价。
可选的,分图装置提取边可以从所寄存的边中提取,也可以从所获取的整个图中进行提取。若分图装置中的寄存器寄存有边时,可以优先从寄存器中提取边,若从寄存器中所提取的边分配后,则将该边在寄存器中删除,若该边未能分配成功,则继续寄存在寄存器中。当寄存器中所有的边均提取过后,则可以从整个所获取的图中提取边。可选的,当分图装置从整个所获取的图中提取边时,为了降低复制因子,可以进行随机提取。或者,分图装置先将所获取的图的拓扑结构随机打乱,然后再按照乱序后的顺序进行逐一提取边。
102、分图装置判断所述第一设备存储的所分配边的数量是否小于第一预设阈值,若是,则执行步骤103,若否,则执行步骤104;
为了使得每个设备所分配的边比较平均,使得每个设备的负载比较均衡,可以为每个设备均设置一个第一预设阈值。在分图装置将当前所提取的边分配到第一设备之前,分图装置现确认第一设备中所存储的所分配的边的数量小于第一预设阈值,这样,表示第一设备所存储的边的数量还未达标,还可以为第一设备分配边。若第一设备中所存储的所分配 的边的数量大于或等于第一预设阈值,那么则无需再为该第一设备分配边,分图装置则将当前所提取的边再与其他的第一设备中的边进行聚合度的比较,将当前所提取的边分配到其它设备当中。可选的,该第一预设阈值可以设置为一个平均值,即将整个图的边的数量值除以参与边分配的设备的数量值所得到的平均值。或者,该第一预设阈值还可以根据每台设备的性能和要求进行自定义设置,比如第一台设备的性能较高,那么则可以设置第一台设备的第一预设阈值大于平均值,而第二台设备的性能较低,那么则可以设置第二台设备的第一预设阈值小于平均值。
可选的,若某台第一设备中所分配的边的数量已经达到第一预设阈值,那么分图装置在对当前所提取的边进行聚合度比较时,则可以不再与该第一设备进行聚合度比较。即,当某台第一设备中所分配的边的数量已经达到第二预设阈值时,那么该第一设备不再参与后续的聚合度比较以及边的分配过程。
103、分图装置将当前所提取的边分配至所述第一设备。
若当前所提取的边与第一设备中的所分配的边的聚合度满足上述的预置条件时,分图装置则将当前所提取的边分配到第一设备中。需要说明的时,上述的第一设备并非限定为一台设备,而是指所有设备中已经被分配过边的设备,分图装置需要将当前所提取的边逐一与所有已经分配过边的设备中的边进行比较。比如,已经被分配过边的设备有3台,分图装置则将当前所提取的边逐一与这3台设备中的边进行比较,若第一台设备中的边与当前所提取的边的聚合度不满足预设条件,则继续将当前所提取的边与第二台设备中的边进行比较,若聚合度满足预设条件,则可以将当前所提取的边分配到第二台设备中,并且无需再与第三台设备中的边进行比较。
104、分图装置将当前所提取的边进行寄存。
若当前所提取的边与第一设备中的所分配的边的聚合度不满足上述的预置条件或者第一设备中存储的所分配边的数量较大时,分图装置则先对当前所提取的边进行寄存。可选的,分图装置可以将当前所提取的边寄存到分图装置的寄存器中,或者其他内部存储器中。
105、当所寄存的边的数量达到第二预设阈值时,分图装置按照预设规则将所寄存的部分边分配到第二设备,所述第二设备为未被分配过边的设备。
由于寄存器的存储空间有限,且为了避免分图装置中寄存太多的未分配的边,因此分图装置还设置了一个第二预设阈值,当分图装置中寄存器所寄存的边的数量达到第二预设阈值时,则需要将寄存器中的边进行批量分配,而寄存器中所寄存的边,均与已经分配过边的第一设备中的边的聚合度不满足预设条件,所以,则将寄存器中的边按照规则批量分配到未分配过边的第二设备中。
可选的,分图装置按照预设规则将所寄存的部分边分配到第二设备,具体可以为:
分图装置确定与核心顶点集合相连的第一候选顶点,其中,以所述第一候选顶点为顶点的边中未分配的边的数量最少,所述第一候选顶点为边界顶点集合内的顶点,所述边界顶点集合包含所述核心顶点集合;
分图装置将所述第一候选顶点加入到所述核心顶点集合中;
分图装置确定第二候选顶点,所述第二候选顶点与所述第一候选顶点相邻,所述第二 候选顶点位于所述边界顶点集合之外;
分图装置将第一候选边分配到第二设备,所述第一候选边为所述第一候选顶点与所述第二候选顶点所组成的边;
分图装置将第二候选顶点加入到所述边界顶点集合中;
当所述边界顶点集合中还存在与所述第二候选顶点相邻的其它顶点,分图装置则将所述第二候选顶点与所述其他顶点所组成的边分配到所述第二设备;
当分配到所述第二设备内的边的数量达到第三预设阈值时,分图装置则暂停将所寄存的边分配到第二设备。
下面进行举例说明,可以维护两个集合,核心顶点集合C和边界顶点集合S。首先选择一个候选顶点x,具体选择公式可以为:
Figure PCTCN2017103397-appb-000001
该选择公式的含义为:以所述候选顶点x为顶点的边中未分配的边的数量最少。其中N(v)表示和顶点v相邻的顶点集。具体的,若C和S为空集(一开始的时候)或者C=S时,从分图装置的寄存器所寄存的图中随机选取一个顶点,以该顶点作为核心顶点集合C,以所有与该顶点相邻的顶点组成边界顶点集合S。然后根据上述选择公式从边界顶点集合中选择一个顶点作为第一候选顶点x,再把第一候选顶点x加入顶点集合C中,把边界顶点集合S之外与第一候选顶点x相邻的边分配给当前第二设备(Ei),继而更新边界结合S,取S=V(Ei)为子图Ei的顶点集,即,将与第一候选顶点x相邻的顶点加入到边界顶点集合S中。再判断新加入至边界顶点集合S中的顶点是否与边界顶点集合中S中其它的顶点存在相邻关系(除了已经分配过的边的顶点),若存在,则新加入边界顶点集合S中的顶点与其它相邻顶点所组成的边分配给第二设备Ei。重复上述步骤,直到|Ei|>\alpha*|E|/p(其中\alpha>1,比如\alpha=1.1)时,则暂停为第二设备分配边。其中,E表示寄存器中已经达到第一预设阈值后的边集合,Ei表示第i台设备里面已被分配的边。
如图3所示,其中,小圈表示图的顶点,实线代表已经分配的边,虚线代表还未分配的边,C是核心顶点集合,S是边界顶点集合。图3左侧图中C中有两个已经选中的顶点,与该选中的顶点结合相邻的顶点为顶点z和顶点x,其中,与顶点z相邻的未分配的边数为3,与顶点x相邻的未分配的边数为1,因此将顶点x放入核心顶点集C中(见图3右侧图),那么核心顶点集合C则包含了包括顶点x的三个顶点。顶点y为边界顶点集合之外与顶点x相邻的顶点,而{x,y}这条边与核心顶点集合相邻,因此{x,y}这条边被分配到当前第二设备中。顶点y被放入边界顶点集合S中,从而使得顶点z与顶点y均位于边界顶点集合S中,那么顶点y与边界顶点集合S中的顶点z也存在相邻关系,从而{z,y}这条边也分配到第二设备中。
可选的,当分图装置将寄存器中所寄存的边分配到第二设备中之后,则将该边从寄存器中删除,以使得寄存器空闲出容量来寄存其它新提取的边。
参照图4所示,图4为本发明实例中分图装置的一个示意图,该装置用于逐一提取图中的边并分配到多个设备中,具体包括:
判断单元201,用于判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,其中,所述第一设备为已被分配过边的设备;
所述判断单元201还用于,当当前所提取的边与所述第一设备中的所分配的边的聚合度满足所述预置条件时,则判断所述第一设备存储的所分配边的数量是否小于第一预设阈值;
分配单元202,用于当所述第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。
可选的,所述预置条件包括:
当前所提取的边的两个顶点均与所述第一设备中所分配的边中的顶点相匹配。
可选的,所述预置条件包括:
当前所提取的边的其中一个顶点与所述第一设备中所分配的边中的顶点相匹配,且所述当前所提取的边的两个顶点的度数均小于所述第一设备中所分配的边中顶点的平均度数。
可选的,所述装置还包括:
寄存单元203,用于当当前所提取的边与所述第一设备中的所分配的边的聚合度不满足所述预置条件时,将当前所提取的边进行寄存。
可选的,所述分配单元202还用于:
当所寄存的边的数量达到第二预设阈值时,按照预设规则将所寄存的部分边分配到第二设备,所述第二设备为未被分配过边的设备。
可选的,所述分配单元202具体用于:
确定与核心顶点集合相连的第一候选顶点,其中,以所述第一候选顶点为顶点的边中未分配的边的数量最少,所述第一候选顶点为边界顶点集合内的顶点,所述边界顶点集合包含所述核心顶点集合;
将所述第一候选顶点加入到所述核心顶点集合中;
确定第二候选顶点,所述第二候选顶点与所述第一候选顶点相邻,所述第二候选顶点位于所述边界顶点集合之外;
将第一候选边分配到第二设备,所述第一候选边为所述第一候选顶点与所述第二候选顶点所组成的边;
将所述第二候选顶点加入到所述边界顶点集合中;
当所述边界顶点集合中还存在与所述第二候选顶点相邻的其它顶点,则将所述第二候选顶点与所述其他顶点所组成的边分配到所述第二设备;
当分配到所述第二设备内的边的数量达到第三预设阈值时,则暂停将所寄存的边分配到第二设备。
可选的,所述装置还包括:
提取单元204,用于在所述判断单元判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,从所寄存的边中依次提取一条边;
删除单元205,用于当当前所提取的边被分配至所述第一设备后,从所寄存的边中删 除当前提取的边。
可选的,所述提取单元204还用于:在所述判断单元判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,从所获取的图中依次随机提取一条边。
关于图4实施例中各个单元的具体描述可以参照图2实施例中所提供的分图方法的详细描述,此处不做赘述。
图4实施例所述的分图装置还有另一个形式的实施例,参照图5所示,包括:处理器301、存储器302、收发器303,所述处理器301、所述存储器302以及所述收发器303通过总线304连接,收发器303可以包括发送器与接收器,所述存储器302存储有计算机指令,所述处理器301通过执行所述计算机指令用于实现图2实施例中分图方法的功能。具体的实现可以采用各类灵活的设计方式,各个器件相应的功能可以进一步的参考方法实施例,本发明不做限制。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (17)

  1. 一种分图方法,用于逐一提取图中的边并分配到多个设备中,其特征在于,所述方法包括:
    判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,其中,所述第一设备为已被分配过边的设备;
    当所述当前所提取的边与所述第一设备中的所分配的边的聚合度满足所述预置条件时,则判断所述第一设备存储的所分配边的数量是否小于第一预设阈值;
    当所述第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。
  2. 根据权利要求1所述的方法,其特征在于,所述预置条件包括:
    当前所提取的边的两个顶点均与所述第一设备中所分配的边中的顶点相匹配。
  3. 根据权利要求1所述的方法,其特征在与,所述预置条件包括:
    当前所提取的边的其中一个顶点与所述第一设备中所分配的边中的顶点相匹配,且所述当前所提取的边的两个顶点的度数均小于所述第一设备中所分配的边中顶点的平均度数。
  4. 根据权利要求1至3其中任意一项所述的方法,其特征在于,所述方法还包括:
    当所述当前所提取的边与所述第一设备中的所分配的边的聚合度不满足所述预置条件时,将当前所提取的边进行寄存。
  5. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    当所寄存的边的数量达到第二预设阈值时,按照预设规则将所寄存的部分边分配到第二设备,所述第二设备为未被分配过边的设备。
  6. 根据权利要求5所述的方法,其特征在于,所述按照预设规则将所寄存的部分边分配到第二设备,包括:
    确定与核心顶点集合相连的第一候选顶点,其中,以所述第一候选顶点为顶点的边中未分配的边的数量最少,所述第一候选顶点为边界顶点集合内的顶点,所述边界顶点集合包含所述核心顶点集合;
    将所述第一候选顶点加入到所述核心顶点集合中;
    确定第二候选顶点,所述第二候选顶点与所述第一候选顶点相邻,所述第二候选顶点位于所述边界顶点集合之外;
    将第一候选边分配到第二设备,所述第一候选边为所述第一候选顶点与所述第二候选顶点所组成的边;
    将所述第二候选顶点加入到所述边界顶点集合中;
    当所述边界顶点集合中还存在与所述第二候选顶点相邻的其它顶点,则将所述第二候选顶点与所述其他顶点所组成的边分配到所述第二设备;
    当分配到所述第二设备内的边的数量达到第三预设阈值时,则暂停将所寄存的边分配到第二设备。
  7. 根据权利要求1至6其中任意一项所述的方法,其特征在于,在所述判断当前所提 取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,所述方法还包括:
    从所寄存的边中依次提取一条边;
    当所述当前所提取的边被分配至所述第一设备后,从所寄存的边中删除当前提取的边。
  8. 根据权利要求1至6其中任意一项所述的方法,其特征在于,在所述判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,所述方法还包括:
    从所获取的图中依次随机提取一条边。
  9. 一种分图装置,用于逐一提取图中的边并分配到多个设备中,其特征在于,所述装置包括:
    判断单元,用于判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件,其中,所述第一设备为已被分配过边的设备;
    所述判断单元还用于,当所述当前所提取的边与所述第一设备中的所分配的边的聚合度满足所述预置条件时,则判断所述第一设备存储的所分配边的数量是否小于第一预设阈值;
    分配单元,用于当所述第一设备存储的所分配边的数量小于所述第一预设阈值时,则将当前所提取的边分配至所述第一设备。
  10. 根据权利要求9所述的装置,其特征在于,所述预置条件包括:
    当前所提取的边的两个顶点均与所述第一设备中所分配的边中的顶点相匹配。
  11. 根据权利要求9所述的装置,其特征在与,所述预置条件包括:
    当前所提取的边的其中一个顶点与所述第一设备中所分配的边中的顶点相匹配,且所述当前所提取的边的两个顶点的度数均小于所述第一设备中所分配的边中顶点的平均度数。
  12. 根据权利要求9至11其中任意一项所述的装置,其特征在于,所述装置还包括:
    寄存单元,用于当所述当前所提取的边与所述第一设备中的所分配的边的聚合度不满足所述预置条件时,将当前所提取的边进行寄存。
  13. 根据权利要求12所述的装置,其特征在于,所述分配单元还用于:
    当所寄存的边的数量达到第二预设阈值时,按照预设规则将所寄存的部分边分配到第二设备,所述第二设备为未被分配过边的设备。
  14. 根据权利要求13所述的装置,其特征在于,所述分配单元具体用于:
    确定与核心顶点集合相连的第一候选顶点,其中,以所述第一候选顶点为顶点的边中未分配的边的数量最少,所述第一候选顶点为边界顶点集合内的顶点,所述边界顶点集合包含所述核心顶点集合;
    将所述第一候选顶点加入到所述核心顶点集合中;
    确定第二候选顶点,所述第二候选顶点与所述第一候选顶点相邻,所述第二候选顶点位于所述边界顶点集合之外;
    将第一候选边分配到第二设备,所述第一候选边为所述第一候选顶点与所述第二候选顶点所组成的边;
    将所述第二候选顶点加入到所述边界顶点集合中;
    当所述边界顶点集合中还存在与所述第二候选顶点相邻的其它顶点,则将所述第二候选顶点与所述其他顶点所组成的边分配到所述第二设备;
    当分配到所述第二设备内的边的数量达到第三预设阈值时,则暂停将所寄存的边分配到第二设备。
  15. 根据权利要求9至14其中任意一项所述的装置,其特征在于,所述装置还包括:
    提取单元,用于在所述判断单元判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,从所寄存的边中依次提取一条边;
    删除单元,用于当所述当前所提取的边被分配至所述第一设备后,从所寄存的边中删除当前提取的边。
  16. 根据权利要求9至14其中任意一项所述的装置,其特征在于,所述装置还包括:
    提取单元,用于在所述判断单元判断当前所提取的边与第一设备中的所分配的边的聚合度是否满足预置条件之前,从所获取的图中依次随机提取一条边。
  17. 一种分图装置,用于逐一提取图中的边并分配到多个设备中,其特征在于,所述装置包括:收发器、存储器以及处理器,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令用于实现如权利要求1至8任意一项所述的分图方法。
PCT/CN2017/103397 2016-11-08 2017-09-26 一种分图方法及装置 WO2018086422A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP17869043.4A EP3525112A4 (en) 2016-11-08 2017-09-26 METHOD AND DEVICE FOR DISTRIBUTING GRAPHIC CALCULATION
US16/405,367 US11194861B2 (en) 2016-11-08 2019-05-07 Graph partitioning method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610982455.7 2016-11-08
CN201610982455.7A CN108073583B (zh) 2016-11-08 2016-11-08 一种分图方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/405,367 Continuation US11194861B2 (en) 2016-11-08 2019-05-07 Graph partitioning method and apparatus

Publications (1)

Publication Number Publication Date
WO2018086422A1 true WO2018086422A1 (zh) 2018-05-17

Family

ID=62109347

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/103397 WO2018086422A1 (zh) 2016-11-08 2017-09-26 一种分图方法及装置

Country Status (4)

Country Link
US (1) US11194861B2 (zh)
EP (1) EP3525112A4 (zh)
CN (1) CN108073583B (zh)
WO (1) WO2018086422A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165325B (zh) * 2018-08-27 2021-08-17 北京百度网讯科技有限公司 用于切分图数据的方法、装置、设备以及计算机可读存储介质
JP7362321B2 (ja) * 2019-07-04 2023-10-17 株式会社東芝 情報処理装置、情報処理方法、および情報処理システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700211A (zh) * 2004-05-21 2005-11-23 微软公司 用于图分析和同步的方法和系统
US20120124194A1 (en) * 2010-11-14 2012-05-17 Caroline Jacqueline Shouraboura Method and Apparatus for Efficiently Managing Network Distance between Physical Computers in a Computing Cloud
CN105912562A (zh) * 2016-03-21 2016-08-31 华南理工大学 基于层次化模型的数据可视化方法及其系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272369A (ja) * 2003-03-05 2004-09-30 Mitsubishi Electric Corp グラフ分割装置
CN103345508B (zh) * 2013-07-04 2016-09-21 北京大学 一种适用于社会网络图的数据存储方法及系统
US10740304B2 (en) * 2014-08-25 2020-08-11 International Business Machines Corporation Data virtualization across heterogeneous formats
WO2017058068A1 (en) * 2015-09-29 2017-04-06 Telefonaktiebolaget Lm Ericsson (Publ) Network node and method in a wireless telecommunications network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700211A (zh) * 2004-05-21 2005-11-23 微软公司 用于图分析和同步的方法和系统
US20120124194A1 (en) * 2010-11-14 2012-05-17 Caroline Jacqueline Shouraboura Method and Apparatus for Efficiently Managing Network Distance between Physical Computers in a Computing Cloud
CN105912562A (zh) * 2016-03-21 2016-08-31 华南理工大学 基于层次化模型的数据可视化方法及其系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3525112A4

Also Published As

Publication number Publication date
EP3525112A4 (en) 2019-10-09
CN108073583A (zh) 2018-05-25
CN108073583B (zh) 2020-08-25
US20190266191A1 (en) 2019-08-29
EP3525112A1 (en) 2019-08-14
US11194861B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
US11361483B2 (en) Graph partitioning for massive scale graphs
US9740536B2 (en) Method of achieving intra-machine workload balance for task chunks for distributed graph-processing systems
US20150215207A1 (en) Method and Apparatus for Switching Data Between Virtual Machines, and Communications System
US9807152B2 (en) Distributed processing device and distributed processing system as well as distributed processing method
CN105528407B (zh) 一种获取l个具有最佳传播影响力用户的方法和装置
BR112016004490B1 (pt) aparelho e método de armazenamento de dados
WO2017076296A1 (zh) 处理图数据的方法和装置
TWI700599B (zh) 關係網絡圖嵌人的方法及裝置、電腦可讀儲存媒體及計算設備
JP2015011709A (ja) 明示的に表されたグラフで並列探索を行うシステムおよび方法
US9141677B2 (en) Apparatus and method for arranging query
JP2014522033A (ja) リソースマイグレーションのための方法、装置及びシステム
CN110147455A (zh) 一种人脸匹配检索装置及方法
WO2017173968A1 (zh) 用于基因分析的资源分配方法和装置
JP6411911B2 (ja) コンピュータ実行可能な方法、前記方法を行わせる命令を記憶している非一時的なコンピュータ可読記憶媒体、及び前記方法を行なうためのコンピュータシステム
WO2018086422A1 (zh) 一种分图方法及装置
CN103701469A (zh) 一种大规模图数据的压缩存储方法
JP2018032340A (ja) 属性推定装置、属性推定方法および属性推定プログラム
WO2021027331A1 (zh) 基于图数据的全量关系计算方法、装置、设备及存储介质
RU2757592C1 (ru) Способ и система для кластеризации документов
CN108874508A (zh) 一种云计算虚拟服务器系统负载均衡调度方法
WO2020108536A1 (zh) 一种虚拟网络资源分配方法、系统及电子设备
WO2019127300A1 (zh) 数据存储方法、电子设备及存储介质
WO2015090044A1 (zh) 一种数据扫描的方法及装置
JP2016099980A (ja) 画像セグメンテーション方法、装置、及びプログラム
EP4012573A1 (en) Graph reconstruction method and apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17869043

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017869043

Country of ref document: EP

Effective date: 20190510