当前位置: 首页 > 专利查询>清华大学专利>正文

图数据处理方法及装置制造方法及图纸

技术编号:26790531 阅读:43 留言:0更新日期:2020-12-22 17:05
本申请实施例中提供了图数据处理方法及装置,其中所述方法包括收集计算节点中的图数据,其中,所述图数据至少包括图顶点数据,所述计算节点包括一个第一计算节点和多个第二计算节点,所述第一计算节点用于分配所述图顶点数据的计算任务至第二计算节点;在所述第一计算节点接收通过同步消息发送的所述计算节点中的图数据的收集结果;通过计算所述同步消息中非缓存的所述图数据的收集结果,得到计算结果用以更新所述图顶点数据;在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加至预设集合。采用本申请中的方案,解决了已有分布式图计算所存在的节点间通信效率不高、计算低效的问题。

【技术实现步骤摘要】
图数据处理方法及装置
本申请涉及分布式图计算技术,具体地,涉及图数据处理方法及装置。
技术介绍
图是由点(vertex)和边(edge)构成的一种数据结构,基于图的数据处理和分析已经形成了图计算这一专门的研究方向。单机图处理系统由于资源的限制难以满足高效处理的要求,而分布式图计算通过利用更多的计算资源,能够有效地提高图处理的能力,因而逐渐成为一种主流的解决方案。尽管分布式系统能够给计算提供充足的资源,同时分布式图计算引擎降低了分布式计算的难度,然而图计算很高的访存计算比、类型与操作的多样性、结构不规则以及数据局部性差等特点给大规模图的高效处理带来了巨大的挑战。特别是在分布式计算环境中,数据局部性差意味着系统需要耗费更多的时间进行大量数据的跨节点传输,而这进一步降低了数据处理的效率,而结构的不规则不可避免的会引起负载不均衡,从而极大地影响应用的效率。对于分布式图计算而言,无论采用哪种计算模型或框架,任务的执行都是在多个计算节点上完成的,各计算节点通过网络将其他计算节点上的数据读取到本地内存之中完成处理。与数据的本地读取相比,网络读取延迟更大,速度更慢,因此减少执行过程中的网络通信量、提升通信效率对于提升计算性能至关重要。针对相关技术中,已有分布式图计算存在节点间通信效率不高、计算低效的问题,目前尚未存在有效的解决方案。
技术实现思路
本申请实施例提供了一种图数据处理方法及装置,以至少解决已有分布式图计算所存在的节点间通信效率不高、计算低效的问题。根据本申请实施例的第一个方面,提供了一种图数据处理方法,包括:收集计算节点中的图数据,其中,所述图数据至少包括图顶点数据,所述计算节点包括一个第一计算节点和多个第二计算节点,所述第一计算节点用于分配所述图顶点数据的计算任务至第二计算节点;在所述第一计算节点接收通过同步消息发送的所述计算节点中的图数据的收集结果;通过计算所述同步消息中非缓存的所述图数据的收集结果,得到计算结果用以更新所述图顶点数据;在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加至预设集合。可选地,所述在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加到至预设集合包括:在检测出所述激活消息中的图数据的活跃边的数目大于所述图数据总边数的情况下,将所述激活消息中的所述图顶点标记为活跃节点。可选地,所述在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加到至预设集合包括:将所述预设集合的数据结构配置为位图;将所述激活消息中已被激活的图顶点数据按照所述位图的数据结构添加至所述预设集合。可选地,所述方法还包括:在所述第一计算节点和所述第二计算节点之间传输所述同步消息的过程中采用MPI接口,其中,所述同步消息包括对于所述图数据的聚合和计算阶段中的计算节点间的数据同步消息的<id,value>消息结构,id表示顶点的全局id,value表示对应的数值;和/或,在所述第一计算节点和所述第二计算节点之间传输所述激活消息的过程中采用MPI接口,其中,所述激活消息包括对于所述图数据的扩散阶段中计算节点之间的顶点激活消息的<ID>消息结构,ID表示待激活的邻居顶点标识。可选地,所述在所述第一计算节点和所述第二计算节点之间传输所述同步消息的过程中采用MPI接口包括:在所述第一计算节点作为发送端发送所述同步消息的情况下,在所述第一结算节点中的计算线程通过发送缓冲区域发送所述同步消息;在所述第二计算节点作为发送端发送所述同步消息的情况下,在所述第二结算节点中的计算线程通过发送缓冲区域发送所述同步消息。可选地,所述在所述第一计算节点和所述第二计算节点之间传输所述激活消息的过程中采用MPI接口包括:在所述第一计算节点作为接收端接收所述激活消息的情况下,通过所述同步消息中消息块头部的消息数量,对消息块中的消息数据进行处理;在接收到的消息数据是从所述第二计算节点汇总到所述第一计算节点的情况下,将消息数据中的图顶点数据值取出并计算;在接收到的消息数据是是从所述第一计算节点同步到所述第二计算节点的情况下,更新所述第二计算节点的图顶点数据值;在接收到的消息数据是激活所述图顶点的情况下,将图顶点数据添加至下一次迭代的预设集合。可选地,所述在所述第一计算节点和所述第二计算节点之间传输所述同步消息的过程中采用MPI接口包括:在所述第一计算节点或者第二计算节点作为接收端接收所述同步消息的情况下,当在接收端中的计算线程完成计算后,在所述计算线程转换为接收线程用于接收消息。可选地,所述收集计算节点中的图数据之前还包括:将所述图数据中的顶点和边划分至所述计算节点;根据目标顶点的度数,确定目标顶点的第一计算节点所在的所述计算节点或者在所述计算节点上的顶点为第一计算节点或第二计算节点。可选地,所述收集计算节点中的图数据,其中,所述图数据至少包括图顶点数据,所述计算节点包括一个第一计算节点和多个第二计算节点,所述第一计算节点用于分配所述图顶点数据的计算任务至第二计算节点包括:多个所述第二计算节点将所述图数据中的图顶点数据的相邻顶点的数据聚合;在所述第二计算节点中的顶点为第一度数的情况下,通过第一计算节点从邻居顶点获取用于计算的数据,用以同步更新至所述第二计算节点;在所述第二计算节点中的顶点为第二度数的情况下,通过所述第二计算节点将通过聚合的数据汇总到第一计算节点,用以通过所述第一计算节点计算后再同步更新至所述第二计算节点。根据本申请实施例的第二个方面,提供了一种图数据处理装置,包括:收集模块,用于收集计算节点中的图数据,其中,所述图数据至少包括图顶点数据,所述计算节点包括一个第一计算节点和多个第二计算节点,所述第一计算节点用于分配所述图顶点数据的计算任务至第二计算节点;同步模块,用于在所述第一计算节点接收通过同步消息发送的所述计算节点中的图数据的收集结果;计算模块,用于通过计算所述同步消息中非缓存的所述图数据的收集结果,得到计算结果用以更新所述图顶点数据;扩散模块,用于在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加至预设集合。采用本申请实施例中提供的图数据处理方法及装置,采用优化的图数据计算架构,在图数据的收集阶段允许对消息进行提前计算,在图数据的扩散阶段,利用位图作为活跃顶点集合的数据储存结构。既适用于CPU计算环境,也可应用于配备有FPGA、GPU等加速器件的异构计算环境。解决了图计算中通信效率低,通信时间开销大的问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是本申请实施例的图数据处理方法的计算机设备的硬件结构框图本文档来自技高网...

【技术保护点】
1.一种图数据处理方法,其特征在于,包括:/n收集计算节点中的图数据,其中,所述图数据至少包括图顶点数据,所述计算节点包括一个第一计算节点和多个第二计算节点,所述第一计算节点用于分配所述图顶点数据的计算任务至第二计算节点;/n在所述第一计算节点接收通过同步消息发送的所述计算节点中的图数据的收集结果;/n通过计算所述同步消息中非缓存的所述图数据的收集结果,得到计算结果用以更新所述图顶点数据;/n在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加至预设集合。/n

【技术特征摘要】
1.一种图数据处理方法,其特征在于,包括:
收集计算节点中的图数据,其中,所述图数据至少包括图顶点数据,所述计算节点包括一个第一计算节点和多个第二计算节点,所述第一计算节点用于分配所述图顶点数据的计算任务至第二计算节点;
在所述第一计算节点接收通过同步消息发送的所述计算节点中的图数据的收集结果;
通过计算所述同步消息中非缓存的所述图数据的收集结果,得到计算结果用以更新所述图顶点数据;
在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加至预设集合。


2.根据权利要求1所述的方法,其特征在于,所述在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加到至预设集合包括:
在检测出所述激活消息中的图数据的活跃边的数目大于所述图数据总边数的情况下,将所述激活消息中的所述图顶点标记为活跃节点。


3.根据权利要求2所述的方法,其特征在于,所述在所述第一计算节点或者所述第二计算节点接收通过激活消息发送的所述计算结果的情况下,将所述激活消息中已被激活的图顶点数据添加到至预设集合包括:
将所述预设集合的数据结构配置为位图;
将所述激活消息中已被激活的图顶点数据按照所述位图的数据结构添加至所述预设集合。


4.根据权利要求1所述的方法,其特征在于,还包括:
在所述第一计算节点和所述第二计算节点之间传输所述同步消息的过程中采用MPI接口,其中,所述同步消息包括对于所述图数据的聚合和计算阶段中的计算节点间的数据同步消息的<id,value>消息结构,id表示顶点的全局id,value表示对应的数值;
和/或,
在所述第一计算节点和所述第二计算节点之间传输所述激活消息的过程中采用MPI接口,其中,所述激活消息包括对于所述图数据的扩散阶段中计算节点之间的顶点激活消息的<ID>消息结构,ID表示待激活的邻居顶点标识。


5.根据权利要求4所述的方法,其特征在于,所述在所述第一计算节点和所述第二计算节点之间传输所述同步消息的过程中采用MPI接口包括:
在所述第一计算节点作为发送端发送所述同步消息的情况下,在所述第一结算节点中的计算线程通过发送缓冲区域发送所述同步消息;
在所述第二计算节点作为发送端发送所述同步消息的情况下,在所述第二结算节点中的计算线程通过发送缓冲区域发送所述同步消息。


6.根据权利要求4所述的方法,其特征在于,所述在所述第一计算节点和所述第二计算节点之间传输所述激活消息...

【专利技术属性】
技术研发人员:姜进磊武永卫陈康郑锦帆
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

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

1