CN108804226A - 一种用于分布式图计算的图分割划分方法 - Google Patents

一种用于分布式图计算的图分割划分方法 Download PDF

Info

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
Application number
CN201810520470.9A
Other languages
English (en)
Other versions
CN108804226B (zh
Inventor
张鸣
张一鸣
王金岩
李东升
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201810520470.9A priority Critical patent/CN108804226B/zh
Publication of CN108804226A publication Critical patent/CN108804226A/zh
Application granted granted Critical
Publication of CN108804226B publication Critical patent/CN108804226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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 结束。
CN201810520470.9A 2018-05-28 2018-05-28 一种用于分布式图计算的图分割划分方法 Active CN108804226B (zh)

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 (9)

* Cited by examiner, † Cited by third party
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 腾讯科技(深圳)有限公司 图数据分割方法、装置、计算机设备和存储介质
CN114880272B (zh) * 2022-03-31 2024-06-07 深圳清华大学研究院 全局高度数顶点集合通信的优化方法及应用

Citations (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 一种用于分布式图计算的图分割划分方法
CN113220457B (zh) 模型部署方法、模型部署装置、终端设备及可读存储介质
CA2843922C (en) Data processing method and apparatus in cluster system
US8799916B2 (en) Determining an allocation of resources for a job
CN114026569A (zh) 使用脉动阵列的扩张卷积
Dong et al. Computation offloading for mobile-edge computing with multi-user
US9542225B2 (en) Method and apparatus for determining allocation design of virtual machines
CN104104621B (zh) 一种基于非线性降维的虚拟网络资源动态自适应调节方法
CN110659278A (zh) 基于cpu-gpu异构架构的图数据分布式处理系统
CN113660325B (zh) 一种基于边缘计算的工业互联网任务卸载策略
US10819821B2 (en) Method and system for allocating content using a content-based centrality metric
CN106250240A (zh) 一种任务优化调度方法
Sasidharan et al. Miniamr-a miniapp for adaptive mesh refinement
CN109711526A (zh) 基于svm和蚁群算法的服务器集群调度方法
Filiposka et al. Community-based VM placement framework
CN111083189B (zh) 用于在运行时处理数据倾斜的系统和方法
Huang et al. Fuzzy clustering with feature weight preferences for load balancing in cloud
Theng et al. VM management for cross-cloud computing environment
Kumar et al. Graphsteal: Dynamic re-partitioning for efficient graph processing in heterogeneous clusters
WO2016065198A1 (en) High performance hadoop with new generation instances
CN104050189B (zh) 页面共享处理方法及装置
CN109450684B (zh) 一种网络切片系统物理节点容量扩充方法及装置
CN106789289B (zh) 用于虚拟网络映射的方法和设备
CN109040156B (zh) 一种基于容器云的软负载资源处理方法及装置
WO2014180139A1 (zh) 一种基于一致性hash算法存储资源的方法

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