图计算方法和装置制造方法及图纸

技术编号:34905344 阅读:28 留言:0更新日期:2022-09-15 06:50
本申请提供了一种图计算方法和装置,可以应用于包括分布式系统的场景中。该方法包括:在对一个图执行图计算的过程中,仅将一个图划分后得到的N个子图的部分信息加载至第一存储池中,N个子图的部分信息是N个计算节点对N个子图进行计算时所需要的信息,N个计算节点基于从第一存储池中获取的N个子图的部分信息便可实现对N个子图的计算。避免了现有技术中,将N子图的所有信息都加载至第一存储池中,导致跨节点访问的频率高和消耗更多的系统开销。本申请提供的图计算方法,有利于在保证一个图计算结果的精度的前提下,降低系统开销和提高图计算效率。计算效率。计算效率。

【技术实现步骤摘要】
图计算方法和装置


[0001]本申请涉及图计算
,更具体地,涉及一种图计算方法和装置。

技术介绍

[0002]为提高图计算效率,通常基于分布式系统对大规模图数据进行计算。基于分布式系统对图数据进行计算时,先将一个大规模图数据划分为多个小规模的子图,然后将该多个小规模的子图分别部署在多个计算节点上进行计算,通过该多个计算节点对该多个小规模的子图的计算得到该一个图数据的计算结果。与一个图数据包括的数据相比,得到的多个小规模的子图包括的数据存在数据膨胀(例如,图中的顶点膨胀或图中的边膨胀)现象,使得基于分布式系统对该一个图数据进行计算时,需要消耗更多的系统存储资源(例如,内存或硬盘)和更多的通信开销。对膨胀的数据进行加载,还会降低图数据加载效率,导致图计算的计算效率较低。
[0003]因此,亟需一种图计算方法,在保证图计算结果的精度的前提下,可以提高图计算效率和降低系统开销。

技术实现思路

[0004]本申请提供了一种图计算方法和装置,该方法在保证图计算结果的精度的前提下,能够提高图计算效率和降低系统开销。
[0005]第一方面,提供了一种图计算方法,该方法包括:
[0006]控制节点确定第一对应关系,其中,该第一对应关系表示对一个图划分后得到的N个子图与N个计算节点之间的对应关系,N为整数,且N≥2;
[0007]该控制节点基于该第一对应关系,确定该N个子图的部分信息,其中,每个子图的部分信息表示与该每个子图中的第一类型顶点相关联的信息,该每个子图中的第一类型顶点是该每个子图对应的计算节点的本地顶点,该每个子图对应的计算节点用于对该每个子图对应的计算节点的本地顶点进行计算;
[0008]该控制节点发送第一加载消息,其中,该第一加载消息用于指示将该N个子图的部分信息加载至第一存储池中,以使该N个计算节点根据从该第一存储池中获取的信息对该N个子图计算得到该一个图的计算结果。
[0009]上述方法可以应用于包括N个计算节点和至少一个控制节点的分布式系统中,N为整数,且N≥2。
[0010]上述技术方案中,仅将一个图划分后得到的N个子图的部分信息加载至第一存储池中,其中,N个子图的部分信息是N个计算节点计算N个子图需要的信息,这样,N个计算节点仅基于从第一存储池获取的该N个子图的部分信息便可实现对该N个子图的计算。避免了现有技术中,将N子图的所有信息(存在冗余信息)都加载至第一存储池中,导致跨节点访问的频率更高和消耗更多的系统开销(例如,系统存储资源开销和通信开销)。本申请提供的图计算方法,有利于在保证该一个图计算结果的精度的前提下,降低系统开销和提高图计
算效率。
[0011]结合第一方面,在第一方面的某些实现方式中,
[0012]该每个子图的部分信息包括第一类型信息和第二类型信息,其中,该第一类型信息为该每个子图中的第一类型顶点的信息,该第二类型信息表示以该每个子图中的第一类型顶点为起始点的边的信息。
[0013]上述技术方案中,每个子图的部分信息仅包括该每个子图对应的计算节点的本地顶点的信息(即,每个子图中的第一类型顶点的信息),以及以该本地顶点为起始点的边的信息,上述每个子图的部分信息都是计算该每个子图需要的信息,不存在冗余信息(即第一计算节点计算第一子图时不需要的信息),有利于降低系统内存开销。
[0014]可选的,在一些实现方式中,该第一子图的第二类型信息具体为以该第一子图中的两个第一类型顶点构成的边的信息,该第一子图是该N个子图中的一个子图。例如,第一子图的第二类型信息为以第一顶点为起始点,且以第二顶点为终止点的边的信息,其中,第一顶点是第一子图中的第一类型顶点,第二顶点是第一子图中的第一类型顶点,且第一顶点与第二顶点不相同。
[0015]可选的,在另一些实现方式中,第一子图的第二类型信息具体为以该第一子图中的第一类型顶点和该第一子图中的第二类型顶点构成的边的信息,其中,该第一子图是该N个子图中的一个子图,该第一子图中的第二类型顶点是第二计算节点的本地顶点,该第二计算节点和该第一计算节点是该N个计算节点中的两个计算节点。例如,第二类型信息具体为以第一子图中的第一类型顶点为起始点,且以第一子图中的第二类型顶点为终止点的边的信息。
[0016]结合第一方面,在第一方面的某些实现方式中,
[0017]所述第一存储池包括N个第一存储区域,其中,所述N个第一存储区域与所述N个计算节点一一对应,每个第一存储区域是对应计算节点的存储区域,所述每个第一存储区域仅用于存储对应的计算节点对应的子图的部分信息。
[0018]对上述第一存储区域不作具体限定。例如,第一存储区域可以为内存,基于此,第一存储池包括N个内存,该N个内存与N个计算节点一一对应,每个内存是对应的计算节点的内存。例如,第一存储区域还可以为硬盘,基于此,第一存储池包括N个硬盘,该N个硬盘与N个计算节点一一对应,每个硬盘是对应的计算节点的硬盘。
[0019]上述技术方案中,第一存储池是由N个计算节点的N个第一存储区域构成的,N个计算节点中的任意一个计算节点可通过访问本地存储区域的方式快速地从第一存储池中的一个存储区域中获取信息,且该一个存储区域为该任意一个计算节点的存储区域,有利于减少第一计算节点访问远程内存带来的开销和提高内存访问效率,从而提高图计算效率。
[0020]结合第一方面,在第一方面的某些实现方式中,该第一存储池是第二计算节点的存储空间,其中,该第二计算节点与该N个计算节点不相同。
[0021]上述第二计算节点是除上述N个计算节点之外的任意节点。例如,第二计算节点可以为上述控制节点。例如,第二计算节点还可以是除上述N个计算节点和上述控制节点之外的任意一个计算节点。
[0022]上述技术方案中,第一存储池为N个计算节点的非本地存储池,第一存储池对N个计算节点来说是远端存储池,N个计算节点访问计算节点信息时无需考虑计算节点信息是
存储在本地还是存储在远端,访问过程较简单。
[0023]结合第一方面,在第一方面的某些实现方式中,第一子图与第一计算节点对应,所述第一计算节点是所述N个计算节点中的一个计算节点,所述第一子图是所述N个子图中的一个子图,所述方法还包括:
[0024]响应于满足第一条件,所述控制节点发送第二加载消息,其中,所述第二加载消息用于指示将第一子图的第二类型顶点加载至所述第一子图的部分信息中,所述第一子图的第二类型顶点是所述第一子图中包括的第一计算节点的非本地顶点。
[0025]结合第一方面,在第一方面的某些实现方式中,
[0026]所述满足第一条件包括:所述第一计算节点访问所述第二类型顶点的频率不小于预设频率,或所述第一子图中的第一类型顶点与所述第二类型顶点的关联度不小于预设阈值。
[0027]上述技术方案中,在满足第一条件的情况下,控制节点可将第一计算节点访问频率较高的非本地顶点的信息加载至第一子图的部分信息中,或者,将与第一子图中的第一类型顶点关联度本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图计算方法,其特征在于,所述方法包括:控制节点确定第一对应关系,其中,所述第一对应关系表示对一个图划分后得到的N个子图与N个计算节点之间的对应关系,N为整数,且N≥2;所述控制节点基于所述第一对应关系,确定所述N个子图的部分信息,其中,每个子图的部分信息表示与所述每个子图中的第一类型顶点相关联的信息,所述每个子图中的第一类型顶点是所述每个子图对应的计算节点的本地顶点,所述每个子图对应的计算节点用于对所述每个子图对应的计算节点的本地顶点进行计算;所述控制节点发送第一加载消息,其中,所述第一加载消息用于指示将所述N个子图的部分信息加载至第一存储池中,以使所述N个计算节点基于从所述第一存储池中获取的所述N个子图的部分信息对所述N个子图计算得到所述一个图的计算结果。2.根据权利要求1所述的方法,其特征在于,所述每个子图的部分信息包括第一类型信息和第二类型信息,其中,所述第一类型信息为所述每个子图中的第一类型顶点的信息,所述第二类型信息表示以所述每个子图中的第一类型顶点为起始点的边的信息。3.根据权利要求1或2所述的方法,其特征在于,所述第一存储池包括N个第一存储区域,其中,所述N个第一存储区域与所述N个计算节点一一对应,每个第一存储区域是对应计算节点的存储区域,所述每个第一存储区域仅用于存储对应的计算节点对应的子图的部分信息。4.根据权利要求1或2所述的方法,其特征在于,所述第一存储池是第二计算节点的存储空间,所述第二计算节点与所述N个计算节点不同。5.根据权利要求1

3任一项所述的方法,其特征在于,第一子图与第一计算节点对应,所述第一计算节点是所述N个计算节点中的一个计算节点,所述第一子图是所述N个子图中的一个子图,所述方法还包括:响应于满足第一条件,所述控制节点发送第二加载消息,其中,所述第二加载消息用于指示将第一子图的第二类型顶点加载至所述第一子图的部分信息中,所述第一子图的第二类型顶点是所述第一子图中包括的第一计算节点的非本地顶点。6.根据权利要求5所述的方法,其特征在于,所述满足第一条件包括:所述第一计算节点访问所述第二类型顶点的频率不小于预设频率,或所述第一子图中的第一类型顶点与所述第二类型顶点的关联度不小于预设阈值。7.根据权利要求1

6任一项所述的方法,其特征在于,对所述N个子图计算包括至少一次迭代,对所述N个子图执行所述至少一次迭代的计算结果为所述一个图的计算结果,所述方法还包括:在所述至少一次迭代中,所述控制节点执行如下操作:发送更新消息,其中,所述更新消息用于指示将所述第一存储池中存储的信息更新为对所述N个子图执行所述至少一次迭代的计算结果;发送更新完成消息,其中,所述更新完成消息用于指示所述第一存储池中存储的信息成功更新为对所述N个子图执行所述至少一次迭代的计算结果。8.一种图计算方法,其特征在于,所述方法包括:
第一计算节点从第一存储区域中获取第一子图的部分信息,其中,所述第一子图是对一个图划分后得到的N个子图中的一个子图,所述第一子图的部分信息表示与所述第一子图中的第一类型顶点相关联的信息,所述第一子图中的第一类型顶点是所述第一计算节点的本地顶点,所述第一计算节点用于对所述第一计算节点的本地顶点进行计算;所述第一计算节点基于所述第一子图的部分信息对所述第一子图计算,得到所述第一子图的计算结果。9.根据权利要求8所述的方法,其特征在于,所述第一子图的部分信息包括第一类型信息和第二类型信息,其中,所述第一类型信息为所述第一子图中的第一类型顶点的信息,所述第二类型...

【专利技术属性】
技术研发人员:李光成金晓明孙宏伟陈加怀
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1