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

一种基于自动选择副本因子模型的图计算方法技术

技术编号:20117094 阅读:17 留言:0更新日期:2019-01-16 11:56
本发明专利技术提供一种基于自动选择副本因子模型的图计算方法,其步骤为:将图数据切分得到若干个切片;根据自动选择副本因子模型为上述每个切片选择最优的副本因子Ri,其中所述副本因子Ri是指为第i个切片Si选择的副本个数;初始化上述每个切片的所有节点值,计算每个切片的每一条边,并根据上述每个切片的副本因子Ri将计算得到的目标节点的副本值存放在Ri个副本中;合并上述每一条边的Ri个副本的目标节点的副本值,并将合并后得到的目标节点的更新值更新至GlobalVertices数组;其中所述GlobalVertices数组用于存放图数据的所有节点值。该方法不仅解决了计算资源被浪费的问题,而且提高了图计算系统的速度。

A Graph Computing Method Based on Automatic Selection of Copy Factor Model

The present invention provides a graph calculation method based on an automatic selection replica factor model. The steps are as follows: dividing the graph data into several slices; selecting the optimal replica factor Ri for each slice according to the automatic selection replica factor model, in which the replica factor Ri refers to the number of replicas selected for the first slice Si; initializing all node values of each slice, and calculating. Calculate each edge of each slice and store the calculated replica value of the target node in the Ri replica according to the replica factor Ri of each slice; merge the replica value of the target node of the Ri replica of each slice and update the updated value of the merged target node to the GlobalVertices array; the GlobalVertices array is used to store graph data. All node values. This method not only solves the problem that computing resources are wasted, but also improves the speed of graph computing system.

【技术实现步骤摘要】
一种基于自动选择副本因子模型的图计算方法
本专利技术涉及云计算领域,具体涉及一种基于自动选择副本因子模型的图计算方法。
技术介绍
近年来,随着社交网络、基因和各种商业领域中的图结构数据数量和规模快速的增长,对于处理大规模图数据的需求也在随之增加。越来越多的公司需要图计算系统来对图数据进行分析和计算。许多分布式图计算系统应运而生,其中包括Pregel、Giraph、GraphX、GraphLab、PowerGraph、PowerLyra和Gemini。然而现有的图计算系统节点之间的大量通信使得网络成为瓶颈。分布式图计算系统想要达到很好的性能就需要高速网络。另一种解决方案是不采用分布式架构。其中Galois和Ligra就是为共享内存/多核机器设计的,GraphChi和X-Stream也是为单机处理大规模图数据设计的。集中式的图计算系统避免了分布式系统中的管理和调度问题。但随着新的计算机硬件的出现(如图形处理器GPU),计算机硬件性能的不断提升,这些传统的图计算系统设计并不能完全发挥其计算能力。使用GPU加速的图计算系统似乎是一个可行的解决方案。尽管已经有一些系统进行过一些尝试,但使用GPU来支持大规模图计算系统仍然是一个很大的挑战。其主要问题在于:真实图数据中存在非常严重的节点度数倾斜(图中小部分的节点有大量的边)现象。这会导致GPU的多个线程计算的时候产生大量的写冲突。冲突的线程会被串行化,严重浪费并行计算能力,拖慢系统的计算速度。
技术实现思路
针对上述问题,本专利技术的目的是提供一种基于自动选择副本因子模型的图计算方法,该方法能够使得GPU多线程并发计算时,不再受图数据中节点度数倾斜现象的影响,不仅解决了计算资源被浪费的问题,而且提高了图计算系统的速度。为实现上述目的,本专利技术所采用的技术方案如下:一种基于自动选择副本因子模型的图计算方法,其步骤包括:将图数据切分得到若干个切片;根据自动选择副本因子模型为上述每个切片选择最优的副本因子Ri,其中所述副本因子Ri是指为第i个切片Si选择的副本个数;初始化上述每个切片的所有节点值,计算每个切片的每一条边,并根据上述每个切片的副本因子Ri将计算得到的目标节点的副本值存放在Ri个副本中;合并上述每一条边的Ri个副本的目标节点的副本值,并将合并后得到的目标节点的更新值更新至GlobalVertices数组;其中所述GlobalVertices数组用于存放图数据的所有节点值。进一步地,该方法步骤还包括:将GlobalVertices数组中存放的图数据的所有节点值传输至内存中进行同步。进一步地,所述将图数据切分得到若干个切片是指:根据GPU显存大小将图数据切分成若干个页,并根据每个页的大小确定每个页中包含的若干个切片的尺寸以及根据共享内存(sharedmemory)大小确定每个切片中最大节点个数。进一步地,所述切片采用CSC和CSR压缩格式保存。进一步地,CPU将切片以批量发送的方式发送给GPU进行计算。进一步地,所述自动选择副本因子模型的输入是一个切片的平均度数和GPU的存储限制,输出为该切片最优的副本因子Ri;其中所述切片最优的副本因子Ri的计算公式为:其中Ri代表第i个切片的副本因子;u和E分别代表第i个切片Si中的目标节点和边。进一步地,采用sum(合并)方法合并上述每一条边的Ri个副本的目标节点的副本值。更进一步地,所述sum方法是指利用两路归并策略将Ri个副本的目标节点的副本值进行合并。进一步地,采用apply(更新)方法将合并后得到的目标节点的更新值更新至GlobalVertices数组。更进一步地,所述apply方法如果采用异步模式,则目标节点的更新值将直接提交到GlobalVertices数组;如果采用同步模式,则先将目标节点的更新值存储到一暂时的数组中,在所有切片计算结束后再更新到GlobalVertices数组中。本专利技术的有益效果在于:本专利技术提供一种基于自动选择副本因子模型的图计算方法,该方法通过推导得到所述自动选择副本因子模型,并根据该模型得到每一个切片最优的副本因子,既解决了传统方法在GPU多线程并发计算时,受图数据中节点度数倾斜现象影响导致写冲突进而导致计算速度减慢的问题,也解决了选取过大副本因子而产生的硬件计算性能浪费的问题。另外本专利技术方法在图数据的预处理阶段(即图数据切分与选择最优的副本因子阶段)进行了一些额外的操作及对页和切片的限制。由于预处理阶段是几乎每个图计算系统都需要进行的,并且通常时间较长,因此使用本专利技术方法额外增加的时间可以忽略不计。附图说明图1是本专利技术提供的基于GPU加速的图计算系统计算过程示意图。图2是合并方法示意图。图3是本专利技术提供的一种基于自动选择副本因子模型的图计算方法流程图。图4是预处理后的数据结构示意图。图5是使用本专利技术方法与不使用副本的计算时间对比图。图6是使用本专利技术方法与使用不同固定副本因子的计算时间对比图。具体实施方式为使本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。传统的基于GPU加速的图计算系统在计算过程中,SM执行计算是以切片为单位的。SM中的所有线程并发计算切片中的所有边,由于真实图数据的节点都呈幂律分布,存在严重的节点度数倾斜现象,因此在并发计算的过程中会产生严重的写冲突,导致计算能力被严重浪费,系统速度被拖慢。本专利技术通过基于自动选择副本因子模型的图计算方法解决了基于GPU加速的图计算系统中由于图数据的节点度数倾斜带来的时间损耗,从而大幅度提高图计算系统的性能。GPU在其显存中保存GlobalVertices数组,用来存放图数据的所有节点值。如图1所示,计算一个切片分为四个阶段:init(初始化)阶段,gather(聚合)阶段,sum(合并)阶段,apply(更新)阶段。当计算结束后,GPU显存中存放的GlobalVertices数组,即新的节点值就会被同步到内存中。本专利技术用Si={(u,v,w)|rs≤u≤re}来表示一个切片,其中Si的下标i代表第i个切片,u代表该切片中的边的目标节点,v代表该切片中的边的起始节点,w代表该切片中的边的权值,rs和re分别代表这个切片中开始节点和截止节点的序号。一般情况下,用三元组(u,v,w)代表以v为起始节点,u为目标节点,边的权值为w的一条边。下面详细介绍一个切片在GPU中计算的四个阶段。init阶段:首先GPU在SM的共享内存中分配一个LocalVertices数组,该数组用来存储该SM计算的切片(图数据切分成若干个页,每个页中包含若干个切片,该过程在后文中有进一步说明)的所有节点值。然后一组连续的线程将该数组初始化为用户自定义的初始值(如PageRank算法中设置为0)。Gather阶段:对于每一条边(u,v,w),其中u为边的目标节点,v为边的起始节点,w为边的权值。一个GPU线程从显存中读取GlobalVertices数组中当前节点值和切片中边的全部信息即(u,v,w)合并到变量a′u中:其中Du为GlobalVertices数组中目标节点u的当前计算值,Dv为GlobalVertices数组中起始节点v的当前计算值,w为这条边的权值,a′u为在LocalVertices数组中目标节点u的一个副本值,In[本文档来自技高网...

【技术保护点】
1.一种基于自动选择副本因子模型的图计算方法,其步骤包括:将图数据切分得到若干个切片;根据自动选择副本因子模型为上述每个切片选择最优的副本因子Ri,其中所述副本因子Ri是指为第i个切片Si选择的副本个数;初始化上述每个切片的所有节点值,计算每个切片的每一条边,并根据上述每个切片的副本因子Ri将计算得到的目标节点的副本值存放在Ri个副本中;合并上述每一条边的Ri个副本的目标节点的副本值,并将合并后得到的目标节点的更新值更新至GlobalVertices数组;其中所述GlobalVertices数组用于存放图数据的所有节点值。

【技术特征摘要】
1.一种基于自动选择副本因子模型的图计算方法,其步骤包括:将图数据切分得到若干个切片;根据自动选择副本因子模型为上述每个切片选择最优的副本因子Ri,其中所述副本因子Ri是指为第i个切片Si选择的副本个数;初始化上述每个切片的所有节点值,计算每个切片的每一条边,并根据上述每个切片的副本因子Ri将计算得到的目标节点的副本值存放在Ri个副本中;合并上述每一条边的Ri个副本的目标节点的副本值,并将合并后得到的目标节点的更新值更新至GlobalVertices数组;其中所述GlobalVertices数组用于存放图数据的所有节点值。2.如权利要求1所述的方法,其特征在于,该方法步骤还包括:将GlobalVertices数组中存放的图数据的所有节点值传输至内存中进行同步。3.如权利要求1所述的方法,其特征在于,所述将图数据切分得到若干个切片是指:根据GPU显存大小将图数据切分成若干个页,并根据每个页的大小确定每个页中包含的若干个切片的尺寸以及根据共享内存大小确定每个切片中最大节点个数。4.如权利要求1所述的方法,其特征在于,所述切片采用CSC和CSR压缩格式保存。...

【专利技术属性】
技术研发人员:陈瀚马凌霄杨智薛继龙代亚非
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

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

1