CN108804226A - 一种用于分布式图计算的图分割划分方法 - Google Patents
一种用于分布式图计算的图分割划分方法 Download PDFInfo
- Publication number
- CN108804226A CN108804226A CN201810520470.9A CN201810520470A CN108804226A CN 108804226 A CN108804226 A CN 108804226A CN 201810520470 A CN201810520470 A CN 201810520470A CN 108804226 A CN108804226 A CN 108804226A
- Authority
- CN
- China
- Prior art keywords
- node
- queue
- point
- vertex
- packet
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
针对现有图分割方法对大规模图计算进行图分割划分时开销过大的技术问题,本发明提供了一种用于分布式图计算的图分割划分方法,基于开源框架PowerLyra,首先作为输入的图数据按照目标点哈希将边分散到各个节点,然后各节点在分布式框架上同步并行处理分布到其节点上的边,根据需要执行相应的分布式算法。本发明提出了“包”的概念,包是指局部性较高的部分边的集合,其最大值是可修改的,通过包将数据局部性特性引入图划分的计量标准,使划分的子图具有局部性,充分利用数据局部性原理,有效减少顶点的镜像顶点的数目,同时也保证了节点间的负载均衡,减少了分布式***中的通信开销,提高大规模图相关应用的处理效率,提高分布式图计算的性能。
Description
技术领域
本发明属于分布式图计算领域,特别是一种用于分布式图计算的图分割划分方法。
背景技术
目前在世界范围内研发的分布式图计算框架有很多,主要包括了图划分和图计算两个部 分。图划分是指按照一定策略,将大规模的图数据分发到集群内的各个节点上,图计算部分 则是指根据实际应用的需要,对图进行分布式的运算。
早期的有***大学的PowerGraph,它将图划分从边分割引入到点分割的时代。在此之 前,图划分遵循的原则是每个点只存在于一个节点上,与这个点相关的所有边都被存储在该 节点上,每条边会被存储两次。在实际应用中,会存在与一个点相关的边占很大的比例,这 会导致较大的负载不均,严重影响计算效率。点分割是指点可以被划分到多个节点上,这种 方式每条边只会被存储一次。PowerGraph提供的图划分策略包括了一维划分、二维划分等方 法。一维划分是指按照每条边的源点或者目标点的哈希值,将边分发到不同的节点。二维划 分是按照每条边的源点的哈希值和目标点的哈希值将边分发到不同的节点。
近期的有清华大学的Gemini,与其他分布式图计算框架不同,它是一种综合性划分方法 即hybrid划分方法,提供了两种计算的模式,根据***状态的不同而进行动态切换,数据处 理的速度,提升了***的性能。
现有的分布式图计算框架提供的图划分方法都没有考虑到数据局部性的原理,性能最好 的hybrid划分方法只保证了节点间的负载均衡,并没有考虑数据局部性的原理。点分割中, 每个顶点会存在于数个节点中,选取其中的一个点作为主顶点,其余顶点作为镜像顶点,并 且称主顶点所在的节点存储了该顶点。在几乎所有的实际计算中,镜像顶点需要和主顶点进 行通信,这就存在一部分的通信开销。传统的方法并没有针对这部分的通信开销进行优化, 只关注了节点间的存储负载的均衡。
发明内容
针对现有图分割方法对大规模图计算进行图分割划分时开销过大的技术问题,本发明基 于大数据的时代背景,为了满足大规模图数据处理的需要,提供了一种用于分布式图计算的 图分割划分方法,简称TopoX划分方法,TopoX划分方法基于开源框架PowerLyra,首先作为输 入的图数据被分散到各个节点,从各个节点上输入到整个分布式框架中进行处理。每个节点 按照一定的图分割方法将每条边分散到各个节点上,并根据需要执行相应的分布式算法。本 发明充分利用数据局部性进行图划分,有效减少顶点的镜像顶点的数目,同时也保证了节点 间的负载均衡,从而降低了计算过程中的通信开销,提升了整个图计算框架的执行运算的效 率,可以对符合标准的大规模的图数据进行高效的处理。
具体技术方案如下:
一种用于分布式图计算的图分割划分方法,包括以下步骤:
1.按照目标点哈希将边分散到各个节点;每个节点均设置各自的包、当前处理点队 列、待处理点队列;将各个节点的包、当前处理点队列、待处理点队列初始化为空;
其中,边是输入的图数据的基本单位,格式为三元组(源点,目标点,权值);包 是指局部性较高的部分边的集合,其最大值是可修改的;将边加入包即是将该边置于该 包所在节点上;顶点是对实体的抽象,边表示两个实体以及实体之间的关系,源点表示 边的起始的顶点,权值表示边内两个实体之间的关系,目标点表示从源点出发所指向的 目标顶点;处理完毕是指以该顶点为源点或者目标点的边均被访问过;
2.各节点同步并行处理分布到其节点上的边,每个节点的处理流程完全相同,其中 一个节点的处理流程如下:
2.1判断节点是否存在未访问过的边,如果是,取一条未被访问的边加入当前包,将 其目标点加入当前处理点队列,将其源点加入待处理点队列,转步骤2.2;否则, 说明该节点没有未被访问过的边,该节点存储的数据被处理完毕,检查是否所有 节点的数据都被处理完毕,如果是,则转到步骤3;否则,等待所有节点的数据 都被处理完毕,转步骤3;
2.2判断当前包中的边的数目是否达到最大值,如果达到最大值,转步骤2.3,如果没有达到最大值,转到步骤2.4;
2.3清空当前处理点队列和待处理点队列,清空当前包,转到步骤2.1;
2.4判断当前处理点队列是否存在未处理完毕的顶点,如果存在则转到步骤2.5,否 则转到步骤2.6;
2.5取一个未处理完毕的顶点,将一条以该顶点为源点或目标点的未访问过的边加入 当前包,如果该顶点为源点,将对应的目标点加入待处理点队列,转到步骤2.2; 如果该顶点为目标点,将对应的源点加入待处理点队列,转到步骤2.2;
2.6如果待处理点队列是空,则转到步骤2.3,否则将将待处理点队列赋值给当前处 理点队列,同时清空待处理点队列,转到步骤2.4;
3.结束。
采用本发明可以达到以下技术效果:
作为一个分布式图处理框架,本发明提出了包的概念,包是指局部性较高的部分边的集 合,其最大值是可修改的,通过包将其他划分方法没有考虑到的数据局部性特性引入划分的 计量标准,能够使划分的子图具有局部性,充分利用数据局部性原理,减少了分布式***中 的通信开销,提高大规模图相关应用的处理效率,提高分布式图计算的性能。
附图说明
图1是本发明用于分布式图计算的图分割划分方法的整体流程图;
图2是本发明实施例与PowerLyra框架以及PowerGraph框架的性能对比图。
具体实施方式
为了使本发明的目的和技术方案更加清楚明白,以下结合具体实施例,对本发明进一步 详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
首先给出本发明涉及的基本概念。边是输入的图数据的基本单位,其格式为(源点,目 标点,权值)。包是指局部性较高的部分边的集合,其最大值是可修改的。将边加入包即是 将该边置于该包所在节点上。其他所需要的数据结构包括每个边的访问状态等等相关数据结 构,这些可以自行设定。顶点是对实体的抽象,边表示两个实体以及实体之间的关系,源点 表示边的起始的顶点,权值表示边内两个实体之间的关系,目标点表示从源点出发所指向的 目标顶点,包作为本方法的一个计量单位,表示了一簇具有局部性的边的集合,处理完毕是 指以该顶点为源点或者目标点的边均被访问过。
一种用于分布式图计算的图分割划分方法,包括以下步骤:
1.边按照目标点哈希将边分散到各个节点。每个节点均设置各自的包、当前处理点队列、 待处理点队列。将各个节点的包、当前处理点队列、待处理点队列初始化为空。
2.各节点同步并行处理分布到其节点上的边,每个节点的处理流程完全相同,其中一个 节点的处理流程如下:
2.1判断节点是否存在未访问过的边,如果是,取一条未被访问的边加入当前包,将 其目标点加入当前处理点队列,将其源点加入待处理点队列,转步骤2.2。否则, 说明该节点没有未被访问过的边,该节点存储的数据被处理完毕,检查是否所有 节点的数据都被处理完毕,如果是,则转到步骤3;否则,等待所有节点的数据 都被处理完毕,转步骤3。
2.2判断当前包中的边的数目是否达到最大值,如果达到最大值,转步骤2.3,如果没有达到最大值,转到步骤2.4。
2.3清空当前处理点队列和待处理点队列,清空当前包,转到步骤2.1。
2.4判断当前处理点队列是否存在未处理完毕的顶点,如果存在则转到步骤2.5,否 则转到步骤2.6。
2.5取一个未处理完毕的顶点,将一条以该顶点为源点或目标点的未访问过的边加入 当前包,如果该顶点为源点,将对应的目标点加入待处理点队列,转到步骤2.2; 如果该顶点为目标点,将对应的源点加入待处理点队列,转到步骤2.2。
2.6如果待处理点队列是空,则转到步骤2.3,否则将将待处理点队列赋值给当前处 理点队列,同时清空待处理点队列,转到步骤2.4。
3.结束。
本发明已经研制出了成熟的产品,并且和较为出名的PowerLyra框架以及PowerGraph框架 做了对比,对比实验采用了图计算通常使用的网页排名(PR)和联通组件(CC)算法。
实验基于16个节点组成的Linux操作***集群,并安装部署了以PowerGraph为基础的 TopoX分布式图计算***。每台服务器的配置为:8核Intel Xeon E5-2640CPU、48GB内存、 100GB SSD和1Gbps以太网。集群的内核版本为Ubuntu 14.04LTS操作***。
其中Rand属于PowerGraph的图分割算法,EP1D、EP2D、CRVC属于GraphX的算法。与PowerLyra相同,我们采用标准GAS模型做比较。实验结果表明,TopoX在不同数据集上的表现都远远优于其他所有方法:在PR算法中,TopoX性能是最优的,比PowerLyra高出了68.1%, 在CC算法中,TopoX也是最优的,比PowerLyra高出了76.9%。
本发明对接收到的图数据按照TopoX划分方法进行划分,分发到***内的各个节点上,根 据实际的需求执行网页排名(PageRank)、单源最短路径(SSSP)等分布式算法。
以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详 细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者同等替换,都 不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (1)
1.一种用于分布式图计算的图分割划分方法,其特征在于,包括以下步骤:
步骤1 按照目标点哈希将边分散到各个节点;每个节点均设置各自的包、当前处理点队列、待处理点队列;将各个节点的包、当前处理点队列、待处理点队列初始化为空;
其中,边是输入的图数据的基本单位,格式为三元组(源点,目标点,权值);包是指局部性较高的部分边的集合,其最大值是可修改的;将边加入包即是将该边置于该包所在节点上;顶点是对实体的抽象,边表示两个实体以及实体之间的关系,源点表示边的起始的顶点,权值表示边内两个实体之间的关系,目标点表示从源点出发所指向的目标顶点;处理完毕是指以该顶点为源点或者目标点的边均被访问过;
步骤2 各节点同步并行处理分布到其节点上的边,每个节点的处理流程完全相同,其中一个节点的处理流程如下:
步骤2.1 判断节点是否存在未访问过的边,如果是,取一条未被访问的边加入当前包,将其目标点加入当前处理点队列,将其源点加入待处理点队列,转步骤2.2;否则,说明该节点没有未被访问过的边,该节点存储的数据被处理完毕,检查是否所有节点的数据都被处理完毕,如果是,则转到步骤3;否则,等待所有节点的数据都被处理完毕,转步骤3;
步骤2.2 判断当前包中的边的数目是否达到最大值,如果达到最大值,转步骤2.3,如果没有达到最大值,转到步骤2.4;
步骤2.3 清空当前处理点队列和待处理点队列,清空当前包,转到步骤2.1;
步骤2.4 判断当前处理点队列是否存在未处理完毕的顶点,如果存在则转到步骤2.5,否则转到步骤2.6;
步骤2.5 取一个未处理完毕的顶点,将一条以该顶点为源点或目标点的未访问过的边加入当前包,如果该顶点为源点,将对应的目标点加入待处理点队列,转到步骤2.2;如果该顶点为目标点,将对应的源点加入待处理点队列,转到步骤2.2;
步骤2.6 如果待处理点队列是空,则转到步骤2.3,否则将将待处理点队列赋值给当前处理点队列,同时清空待处理点队列,转到步骤2.4;
步骤3 结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810520470.9A CN108804226B (zh) | 2018-05-28 | 2018-05-28 | 一种用于分布式图计算的图分割划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810520470.9A CN108804226B (zh) | 2018-05-28 | 2018-05-28 | 一种用于分布式图计算的图分割划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804226A true CN108804226A (zh) | 2018-11-13 |
CN108804226B CN108804226B (zh) | 2021-09-03 |
Family
ID=64090538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810520470.9A Active CN108804226B (zh) | 2018-05-28 | 2018-05-28 | 一种用于分布式图计算的图分割划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804226B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058945A (zh) * | 2019-04-22 | 2019-07-26 | 河南工业大学 | 基于割点分割机制的大规模图并行计算最大流的加速算法 |
CN111538865A (zh) * | 2020-03-27 | 2020-08-14 | 中国人民解放军国防科技大学 | 多方集合同步方法、装置和电子设备 |
CN111538867A (zh) * | 2020-04-15 | 2020-08-14 | 深圳计算科学研究院 | 一种有界增量图划分方法和*** |
CN111581443A (zh) * | 2020-04-16 | 2020-08-25 | 南方科技大学 | 分布式图计算方法、终端、***及存储介质 |
WO2021027745A1 (zh) * | 2019-08-13 | 2021-02-18 | 华为技术有限公司 | 一种图重构方法及装置 |
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN114880272A (zh) * | 2022-03-31 | 2022-08-09 | 深圳清华大学研究院 | 全局高度数顶点集合通信的优化方法及应用 |
CN117556095A (zh) * | 2024-01-11 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 图数据分割方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631878A (zh) * | 2013-11-08 | 2014-03-12 | 中国科学院深圳先进技术研究院 | 一种大规模图结构数据处理方法、装置和*** |
CN103699606A (zh) * | 2013-12-16 | 2014-04-02 | 华中科技大学 | 一种基于顶点切割与社区聚集的大规模图划分方法 |
CN104951505A (zh) * | 2015-05-20 | 2015-09-30 | 中国科学院信息工程研究所 | 一种基于图计算技术的大规模数据聚类方法 |
US9372928B2 (en) * | 2013-07-01 | 2016-06-21 | Palo Alto Research Center Incorporated | System and method for parallel search on explicitly represented graphs |
-
2018
- 2018-05-28 CN CN201810520470.9A patent/CN108804226B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372928B2 (en) * | 2013-07-01 | 2016-06-21 | Palo Alto Research Center Incorporated | System and method for parallel search on explicitly represented graphs |
CN103631878A (zh) * | 2013-11-08 | 2014-03-12 | 中国科学院深圳先进技术研究院 | 一种大规模图结构数据处理方法、装置和*** |
CN103699606A (zh) * | 2013-12-16 | 2014-04-02 | 华中科技大学 | 一种基于顶点切割与社区聚集的大规模图划分方法 |
CN104951505A (zh) * | 2015-05-20 | 2015-09-30 | 中国科学院信息工程研究所 | 一种基于图计算技术的大规模数据聚类方法 |
Non-Patent Citations (3)
Title |
---|
DONGSHENG LI: "GraphA: Adaptive Partitioning for Natural Graphs", 《2017 IEEE 37TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS》 * |
YIMING ZHANG: "GraphA: Efficient Partitioning and Storage", 《IEEE TRANSACTIONS ON SERVICES COMPUTING》 * |
马永刚: "一种改进的并行计算图划分模型", 《小型微型计算机***》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058945A (zh) * | 2019-04-22 | 2019-07-26 | 河南工业大学 | 基于割点分割机制的大规模图并行计算最大流的加速算法 |
US11914648B2 (en) | 2019-08-13 | 2024-02-27 | Huawei Technologies Co., Ltd. | Graph refactorization method and graph refactorization apparatus |
WO2021027745A1 (zh) * | 2019-08-13 | 2021-02-18 | 华为技术有限公司 | 一种图重构方法及装置 |
CN111538865A (zh) * | 2020-03-27 | 2020-08-14 | 中国人民解放军国防科技大学 | 多方集合同步方法、装置和电子设备 |
CN111538865B (zh) * | 2020-03-27 | 2023-06-02 | 中国人民解放军国防科技大学 | 多方集合同步方法、装置和电子设备 |
CN111538867A (zh) * | 2020-04-15 | 2020-08-14 | 深圳计算科学研究院 | 一种有界增量图划分方法和*** |
CN111581443B (zh) * | 2020-04-16 | 2023-05-30 | 南方科技大学 | 分布式图计算方法、终端、***及存储介质 |
CN111581443A (zh) * | 2020-04-16 | 2020-08-25 | 南方科技大学 | 分布式图计算方法、终端、***及存储介质 |
WO2023083241A1 (zh) * | 2021-11-15 | 2023-05-19 | 支付宝(杭州)信息技术有限公司 | 图数据划分 |
CN113792170B (zh) * | 2021-11-15 | 2022-03-15 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN114880272A (zh) * | 2022-03-31 | 2022-08-09 | 深圳清华大学研究院 | 全局高度数顶点集合通信的优化方法及应用 |
CN114880272B (zh) * | 2022-03-31 | 2024-06-07 | 深圳清华大学研究院 | 全局高度数顶点集合通信的优化方法及应用 |
CN117556095A (zh) * | 2024-01-11 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 图数据分割方法、装置、计算机设备和存储介质 |
CN117556095B (zh) * | 2024-01-11 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 图数据分割方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108804226B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804226A (zh) | 一种用于分布式图计算的图分割划分方法 | |
Lipshitz et al. | Communication-avoiding parallel strassen: Implementation and performance | |
CN113220457B (zh) | 模型部署方法、模型部署装置、终端设备及可读存储介质 | |
CA2843922C (en) | Data processing method and apparatus in cluster system | |
US8799916B2 (en) | Determining an allocation of resources for a job | |
US10129101B2 (en) | Application driven and adaptive unified resource management for data centers with Multi-Resource Schedulable Unit (MRSU) | |
CN114026569A (zh) | 使用脉动阵列的扩张卷积 | |
US9542225B2 (en) | Method and apparatus for determining allocation design of virtual machines | |
CN104104621B (zh) | 一种基于非线性降维的虚拟网络资源动态自适应调节方法 | |
CN110659278A (zh) | 基于cpu-gpu异构架构的图数据分布式处理*** | |
CN105681052B (zh) | 一种用于数据中心分布式文件存储的节能方法 | |
da Silva et al. | Topology-aware virtual machine placement in data centers | |
CN113660325B (zh) | 一种基于边缘计算的工业互联网任务卸载策略 | |
CN106250240A (zh) | 一种任务优化调度方法 | |
CN110990154A (zh) | 一种大数据应用优化方法、装置及存储介质 | |
Sasidharan et al. | Miniamr-a miniapp for adaptive mesh refinement | |
CN111083189B (zh) | 用于在运行时处理数据倾斜的***和方法 | |
WO2020108536A1 (zh) | 一种虚拟网络资源分配方法、***及电子设备 | |
Huang et al. | Fuzzy clustering with feature weight preferences for load balancing in cloud | |
Li et al. | Reinforcement learning-based resource partitioning for improving responsiveness in cloud gaming | |
Fahim et al. | The load balancing based on the estimated finish time of tasks in cloud computing | |
CN109040156B (zh) | 一种基于容器云的软负载资源处理方法及装置 | |
Kumar et al. | Graphsteal: Dynamic re-partitioning for efficient graph processing in heterogeneous clusters | |
CN104050189B (zh) | 页面共享处理方法及装置 | |
CN114253709A (zh) | 负载调度方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |