分布式图计算方法、终端、系统及存储介质与流程

文档序号:21976638发布日期:2020-08-25 19:09阅读:170来源:国知局
分布式图计算方法、终端、系统及存储介质与流程

本申请实施例涉及但不限于图计算技术领域,尤其涉及一种分布式图计算方法、终端、系统及存储介质。



背景技术:

随着对数据分析的需求持续增长,例如深入挖掘数据关系,因此,在许多领域中,大规模图计算受到广泛关注。图(graph)是用于表示对象之间关联关系的一种抽象数据结构,使用顶点(vertex)和边(edge)进行描述,顶点表示对象,边表示对象之间的关系。基于此,可抽象成用图描述的数据即为图数据。图计算,便是以图作为数据模型来表达问题并予以解决的这一过程。

目前,随着图的规模一直增长,分布式计算被用于分析大规模图数据。使用分布式图计算时,将大规模图分成若干个子图,通过多个从节点进行计算,可以有效地利用多个计算资源。然而,在进行分布式图计算时,高质量的分区方法在计算时耗费了大量时间,导致分区阶段的能耗较高。相对地,高速生成分区会导致低质量分区,造成严重的性能损失。



技术实现要素:

以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

本申请实施例提供了一种分布式图计算方法、终端、系统及存储介质,使用图数据预处理,在进行大规模图数据分析时,只传输一次图形数据,能够高质量并且高效的分割图数据,提高分布式图计算的速度,降低能耗。

第一方面,本申请实施例提供了一种分布式图计算方法,包括:

获取第一图数据;

根据图预处理算法及所述第一图数据,得到第一中间预处理图;

根据图划分算法,分布式构架及所述第一中间预处理图,得到第一划分图;

根据所述第一划分图,得到第一分布式图分析数据。

具体地,所述分布式图计算方法还包括:

获取第二图数据;

若所述第一图数据与所述第二图数据相同,则根据所述图划分算法,所述分布式构架及所述第一中间预处理图,得到第二划分图;

根据所述第二划分图,得到第二分布式图分析数据。

具体地,所述分布式图计算方法还包括:

获取第二图数据;

若所述第一图数据与所述第二图数据不相同,获取所述第二图数据与所述第一图数据的差异数据;

根据所述第一划分图,所述差异数据及差异图预处理算法得到第二中间预处理图;

根据所述图划分算法,所述分布式构架及所述第二中间预处理图,得到第三划分图;

根据所述第三划分图,得到第三分布式图分析数据。

具体地,所述差异图预处理算法包括:

若所述第二图数据与所述第一图数据的差异数据为增量数据,则根据所述差异数据以及增量式图预处理算法,得到第二中间预处理图。

具体地,所述增量式图预处理算法还包括:

根据所述第二图数据,得到起始顶点与终止顶点间的邻边;

根据增量式图边排序算法及所述起始顶点与所述终止顶点间的邻边,得到增量式图边排序。

具体地,所述增量式图边排序算法应用于主计算节点,所述增量式图边排序算法包括:

发送所述第二图数据至第一从属计算节点;

获取所述第一从属计算节点发送的局部解;

根据所述局部解,得到优化解;

根据所述优化解,得到局部优化解;

发送所述局部优化解至所述第一从属计算节点。

具体地,所述差异图预处理算法还包括:

若所述第二图数据与所述第一图数据的差异数据为减量数据,则移除所述减量数据;

根据所述第一图数据,移除所述减量数据后的第二图数据以及所述图预处理算法得到第二中间预处理图。

具体地,所述分布式图预处理算法还包括预处理图边排序;

所述预处理图边排序包括:

根据所述第一图数据,得到所述第一图数据的边数据以及所述第一图数据的顶点数据;

根据所述第一图数据的所述边数据以及所述第一图数据的所述顶点数据,得到所述第一中间预处理图。

具体地,所述根据所述边数据以及所述顶点数据,得到所述第一中间预处理图包括:

获取所述第一图数据的第一顶点数据;

根据所述预处理图边排序,得到优先级队列;

根据宽度优先搜索以及所述优先级队列得到所述第一中间预处理图。

具体地,所述第一中间预处理图包括:

以二进制格式存储的边的起始顶点id和边的终止顶点id。

具体地,所述图划分算法包括:

获取所述分布式构架的节点及节点配置信息,所述节点配置信息包括节点数量、节点规格、节点性能中的一种或多种;

获取所述第一中间预处理图;

根据所述第一中间预处理图,得到所述第一中间预处理图的边数据;

根据所述分布式构架的所述节点配置信息及所述第一中间预处理图的所述边数据,得到所述第一划分图;

发送所述第一划分图至所述分布式构架的节点。

第二方面,本申请实施例提供了一种终端,包括:第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现:

如第一方面所述的分布式图计算方法。

第三方面,本申请实施例提供了一种分布式图计算系统,包括第一分布式计算装置与第二分布式计算装置;

所述第一分布式计算装置包括:第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第一计算机程序;所述第二处理器执行所述第一计算机程序时实现:第一方面所述的分布式图计算方法;

所述第二分布式计算装置包括:第三存储器、第三处理器及存储在第三存储器上并可在第三处理器上运行的第而计算机程序;所述第三处理器执行所述第而计算机程序时实现:第一方面所述的分布式图计算方法。

第四方面,本申请实施例提供了计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于:

执行第一方面所述的分布式图计算方法。

本申请实施例基于图数据的预处理、图划分算法及增量图边排序算法,将原始图数据转换为计算机可读的中间图数据,这使得随后的图划分能够快速进行,同时还提供了高质量的图划分,使生成的高质量分区大大减少了通信开销,加快了分布式图的计算和分析速度。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本申请一个实施例提供的分布式图计算方法的流程示意图;

图2为本申请另一个实施例提供的分布式图计算方法的流程示意图;

图3为本申请另一个实施例提供的分布式图计算方法的流程示意图;

图4为本申请一个实施例提供的图划分算法的结构示意图;

图5为本申请一个实施例提供的增量图边排序算法的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

已知技术的分布式图计算技术中,图是一种基本且普遍存在的抽象概念,它被广泛应用于现实世界中各种问题的建模。例如,在线社交网络服务中,图中的顶点表示用户,而其边则表示用户间的友谊关系;在电子商务服务中,顶点表示用户和产品,而边表示购买历史。在现实世界中,图数据一直在自然增长,例如,世界上最大的在线社交网络服务之一已经包含了大约一万亿的好友关系。对于这样大规模的图,利用多种计算资源(如高性能计算平台,云计算等)对图进行分析并深入了解其特性是一种重要的方法(即分布式图计算)。通过分布式图计算来分析大规模图数据通常是一件耗时且开销高昂的事情。

基于此,本申请实施例提供了分布式图计算方法、终端、系统及存储介质,能够将原始图数据转换为计算机可读的中间图数据,这使得随后的图划分能够快速进行,同时还提供了高质量的图划分,使生成的高质量分区大大减少了通信开销,加快了分布式图的计算和分析速度。

需要说明的是,下列多种实施例中,终端可以为移动终端设备,也可以为非移动终端设备。移动终端设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载终端设备、可穿戴设备、超级移动个人计算机、上网本、数码相机、摄像机或者个人数字助理等;非移动终端设备可以为个人计算机、工作站、服务器、电视机、柜员机、自助机、监控摄像机或者枪机等。

下面结合附图,对本申请实施例作进一步阐述。

本申请一实施例公开了一种分布式图计算方法。

图1为分布式图计算方法的流程图,如图1所示的计算方法,至少包括以下步骤:

步骤s100:获取第一图数据;

步骤s101:图预处理算法;

步骤s102:获取第一中间预处理图;

步骤s103:获取分布式构架信息;

步骤s104:图划分算法;

步骤s105:第一划分图;

步骤s106:分布式图分析。

在一实施例中,获取第一图数据后,经过图预处理算法,形成第一中间预处理图。图预处理算法使用图边排序,将第一中间预处理图为计算机可读的二进制图格式。应用图划分算法跳过图元素的冗余数据置乱来利用第一中间预处理图,并结合分布式架构信息,生成第一划分图。根据第一划分图进行分布式图分析,可以获得高质量与高效率的分布式图的计算。

在一实施例中,第一中间预处理图为计算机可读的二进制图格式。通过使用连续二进制格式来连续存储结果。每个框单位表示32位或64位整数。每两个框存储边的起始顶点id和终止顶点id。图数据可以从机器中读取,而无需任何通信开销。

在一实施例中,图预处理算法将第一图数据转换成第一中间预处理图。首先将第一图数据转换成第一中间预处理图。第一中间预处理图为计算机可读的二进制图格式,并表示为一个边序列。转换算法的表达式为:

{eφ[0],eφ[1],…eφ[|e|-1]},

其中eφ是一个由排序函数φ:e→n排序后的边序列e。

在一实施例中,图预处理算法的表达式为:

其中v(e)是边e的一组顶点。

图2为分布式图计算方法的另一流程图,如图2所示的计算方法,至少包括以下步骤:

步骤s200:获取第二图数据;

步骤s201:比较第二图数据与第一图数据;

步骤s202:第二图数据与第一图数据相同;

步骤s203:获取分布式构架信息;

步骤s204:第一中间预处理图;

步骤s205:图划分算法;

步骤s206:第二划分图;

步骤s207:分布式图分析。

在一实施例中,获取第二图数据后,与第一图数据进行比较。在第二图数据与第一图数据相同时,应用第一中间预处理图进行分析。第一中间预处理图可以为计算机可读的二进制图格式。应用图划分算法跳过图元素的冗余数据置乱来利用第一中间预处理图,并结合分布式架构信息,生成第二划分图。根据第二划分图进行分布式图分析,可以获得高质量与高效率的分布式图的计算。在计算过程中,不需要重复进行数据的预处理过程,提高了计算时的效率。

图3为分布式图计算方法的另一流程图,如图3所示的计算方法,至少包括以下步骤:

步骤s300:第二图数据与第一图数据不相同;

步骤s301:获取第一划分图;

步骤s302:图预处理算法;

步骤s303:第二中间处理图;

步骤s304:获取分布式构架信息;

步骤s305:获取第一图数据的变化数据;

步骤s306:图划分算法;

步骤s307:第三划分图。

在一实施例中,若第一图数据与第二图数据不相同,则根据第一划分图,第一图数据的变化数据及图预处理算法得到第二中间预处理图。第二中间预处理图为计算机可读的二进制图格式。应用图划分算法跳过图元素的冗余数据置乱来利用第二中间预处理图,并结合分布式架构信息,生成第三划分图。

在一实施例中,以电子商务推荐系统为例,第一图数据包括用户、产品和购买历史。用户和产品由图的顶点表示,而购买历史则由边表示。图预处理算法将第一图数据转换成第二中间处理图,从而使得图划分算法能够立即生成高质量的划分。之后,执行分布式图分析。例如,发现用户偏好并预测可能会购买的产品,从而进行相应的推荐。由于购买历史、新用户和新产品的更新,图数据会发生周期性改变,因此需要进行重复的分析。

在一实施例中,获取至少一个第一图数据的顶点数据,根据图边排序算法,得到优先级队列,根据宽度优先搜索(breadthfirstsearch,bfs)以及优先级队列得到第一中间预处理图。在进行宽度优先搜索前需进行优先级队列排序。图边优先级队列排序的表达式为:

p(v):=|e|·d[v]-m[v],

其中,d[v]是v在宽度优先搜索过程中未访问顶点的数量;m[v]是bfs期间v的相邻边中的最大边的排序(如果边尚未排序,则m[v]为0)。基于p,顶点按升序排序。

在一实施例中,图预处理算法包括增量图预处理算法。增量式图预处理算法包括增量式图边排序算法。

图4为图划分算法的结构图。如图4所示,计算节点通过网络从分布式文件系统获得广播的边数并从基础架构获得节点配置。根据边数和节点配置,每个节点发现叉式指针以确定用于划分图数据的起始点和结束点。指针通过网络传送到文件系统。之后,分布式文件系统将边分割成多个分区,并将这些分区发回计算节点。通过对数据进行分块来高效转发分区。最后,每个节点在开始分布式图计算之前获得分区。现有方法中,巨大的整个图数据经由网络传送两次。而本申请的方法只传输一次图形数据,因为它可以仅使用元数据(即边数和节点配置)来计算分区。因此,可以节省通信开销,提升分布式图计算时每个节点的工作效率。

在一实施例中,图划分算法需使用分布式文件系统、图的分区变快、节点配置信息、计算节点、计算分裂指针及获取分区。图划分算法在计算时通过网络广播边数获取前向指针及前向组块。

在一实施例中,节点配置信息包括如cpu数量,cpu规格,内存大小,网络性能,节点可靠性等。

在一实施例中,通过计算拆分顶点,对边序列进行划分,使分布式图计算和分析过程中的各个节点工作量达到平衡。

在一实施例中,在云基础架构之上执行图划分算法。计算节点是虚拟机,网络是虚拟网络。分布式文件系统通常位于不同的集群或数据中心。因此,网络的延迟和带宽通常是有限的。该算法获得虚拟主机的节点配置,每个虚拟主机的节点配置可能不同。每个节点都考虑到规范的差异,并以这样一种方式对数据进行拆分,即在分布式图分析过程中,各虚拟主机间的工作负载变得均衡。大型图数据从文件系统到虚拟主机的移动的效率提升。

在一实施例中,当本分布式图计算方法部署在公有云上时,其中的计算能力是在按需付费模型中交付的,节省计算能力直接降低了图分析的支付成本。

在一实施例中,当在私有集群上使用分布式图计算方法时,因图数据仅需要传输两次,会造成私有集群能量消耗增加,使用本分布式图计算方法可以降低能源成本,从而可对图数据进行更经济的分析。

在一实施例中,本分布式图计算方法可以用于在网页排名(pagerank)计算中,因为可以进行更多迭代,从而可以获得更精确的排名。

在一实施例中,本分布式图计算方法可以用于top-k类型的算法中(如top-k相似性分析或top-k图模式匹配),可以得到更多的结果(k可以增加)。

在一实施例中,本分布式图计算方法可以用于基于图的机器学习中。由于本分布式图计算方法可以更加快速的获得计算结果,在机器学习的过程中可以将更多时间用于学习阶段,预测任务会变得更加准确。

在一实施例中,本分布式图计算方法使可以进行实时分析和数据驱动分析。使得图分析具有更强的交互性。

图5为增量图边排序算法的结构示意图。如图5所示,增量式图边排序算法以分布式计算方式实现。增量图边排序算法的一个实施例使用主从架构,即包含主计算节点与从计算节点。首先,改变后的图数据被广播到从属计算节点。第二,每个局部最优搜索算法在其节点中获取改变的图数据和已排序的分区。该算法局部地并以并行的方式计算已分区图的优化问题的近似解。第三,主计算节点收集局部解并计算优化解。最后,将优化局部解广播到从节点,使从节点获得目标函数的增量最小的局部最佳排序。

在一实施例中获取图差异数据后,主节点将图差异数据分发至从节点。从节点根据最后一迭代中预处理的划分图,及局部最优解搜索算法,获得局部最优解,将局部最优解发送至主节点。主节点在收集到局部最优解后,计算得出最优解,再用最优解计算得出局部最优解,并将局部最优解发送至从计算节点。

在一实施例中,若第一图数据的变化数据为数据移除,则移除数据后进行后续计算过程。

在一实施例中,若第一图数据的变化数据为数据增加,则使用增量式图预处理算法进行计算。增量式图预处理算法的表达式为:

其中:

由于图的数据量较大,从头计算新排序耗时较长,增量式图预处理算法只处理了整个图的一部分,即只扫描新边的起始顶点和终止顶点的邻边。然后,计算一个新的边排序,使目标函数的增量最小。使用增量式图预处理算法可以在第一图数据更新时,降低计算的复杂度,进而减少能耗。

在一实施例中,本申请提供了一种终端,用于执行分布式图计算方法。

在一实施例中,本申请提供了一种分布式图计算系统,用于执行分布式图计算方法。

在一实施例中,本申请提供了一种计算机可读介质,用于执行分布式图计算方法。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1