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

一种基于GPU的动态图着色方法技术

技术编号:21092416 阅读:22 留言:0更新日期:2019-05-11 11:01
本发明专利技术提出一种基于GPU的动态图着色方法,步骤为:将原始无向图转化成定向图;批量进行删除、插入操作进行后批量合并更新定向图;用压缩稀疏行CSR方式存储定向图的外邻信息,压缩稀疏列CSC方式存储定向图的内邻信息,并将外邻信息与内邻信息分别传输到GPU全局内存上;判断队列是否为空或低于阈值,若否,则利用贪婪着色方法对待更新结点构成的子图进行分区,把分区结果传输至GPU端;若是,则交由CPU端处理;根据分区结果并行地对每个区内的结点进行RC‑Hybrid着色;本发明专利技术方法可以充分利用GPU并行的处理能力、对待结点进行混合分块设计提高了并发性并保证着色结果的正确性与一致性。

A Dynamic Graph Coloring Method Based on GPU

【技术实现步骤摘要】
一种基于GPU的动态图着色方法
本专利技术属于大图数据处理领域,尤其涉及一种基于GPU的动态图着色方法。
技术介绍
图着色问题是图论中的一个经典问题。图着色的现实意义是为具有某种特定关系的两个事物标记不同的颜色,在图中则表示为任意具有公共边的结点都具有不同的颜色。图着色是许多图应用中的重要组成部分,并且已被广泛用于图分割和计算调度应用中。许多图形应用程序的第一步就是通过图形着色来获得用于后续并行计算的独立顶点集合。图着色问题同时还是一个重要的组合优化问题,广泛存在于管理科学、计算机科学、分子物理学、生物学等各个领域。因此,探究图着色问题对解决各种实际问题有着重要意义。目前在动态图下图着色方法大致可以有两种RC_Local与RC_Orient。RC_Local方法可以以增量形式实现动态图着色,无需在图动态更新时,重复进行整个图的着色计算,可以得到较好的着色效率,但该方法是从局部考虑结点的颜色变化的,这会存在两个缺点:一是着色质量较差,即着色结果会包括更多的颜色;二是着色结果不一致性,对于同样的一批更新,当图的更新顺序发生变化时,会得到不同的着色结果。而RC_Orient通过定义有向图的方法,从全局角度实现了动态图的着色更新,有效的解决了RC_Local的两个缺点,但RC_Orient的串行化执行使着色效率不稳定,收敛速度较慢。不论是RC-Local还是RC-Orient都没有兼顾着色质量和着色速度,本专利这种先分区再利用GPU并行计算性能的方法可以在保证正确性和着色质量的前提下提高着色速度,通常可以较容易的适用于动态图着色的计算中。现实世界的很多图形是高度动态变化的,图着色的静态处理已经无法完全满足实际应用中的需要,近年来,动态图着色可应用的场景越来越广泛。图着色问题是图论中一个经典的NP-完全问题,即多项式复杂程度的非确定性问题。所有的图着色问题均可以等价于图顶点着色问题来解决,求解图顶点着色问题的算法主要有精确算法和近似算法两种类型。完全算法是基于严格的数学方法搜索问题的整个解空间,求解问题的算法时间复杂度比较大,在问题规模比较大时很难在一个满意的时间内求出结果,因此完全算法常用来求解问题规模比较小的图的着色问题。常用的完全算法有穷举法、回溯法等。通常认为动态图着色是给定一个图G,当图G随着边、点的插入或删除而发生更新时,动态计算图的近似最优着色。在动态图模型下,动态图着色问题在现实中也有着非常广泛的应用,例如利用图着色设计频谱分配方案,提高频谱利用效率;结合图着色技术来计算面向对象程序的动态切片;将动态约束匹配融入基于顶点的图着色方法求解大学课程时间表问题等,由此动态图着色问题将带来新的挑战。现有的图着色方法在动态图下不能很好的解决问题主要是由于三点原因。第一点原因是目前大部分的图着色方法都是基于静态图模型着色的。在频繁更新的动态图中,当对图进行更新(结点的增删或边的插入与删除)时,原始图的着色结果很有可能已经不满足着色算法的要求,这就引出了动态图着色问题。解决该问题最朴素的方法是对更新后的图进行重新着色,很显然,相对于更新,重着色的时间代价过大,我们需要提出更简便的方法。第二点原因是由于图更新是一个无限的、不断接收的序列,而目前基于图着色的方法是根据待处理队列的顺序依次做计算,因此并行地计算频繁的更新,影响着色的效率;第三点原因传统的RC_Local是通过访问结点的两层邻居来减少整个图更新的颜色的增加,时间复杂度为O(dmax2),拥有高效率和良好的着色质量,然而该方法还存在着一定的缺点,主要有两方面:(1)在插入或删除边时,只考虑了结点的邻居,即局部颜色状态,没有从全局角度(整个图)进行考虑,在降低色数方面还有提高的可能;(2)着色结果的不一致性。对于同样的批量更新,如果边的插入或删除顺序不同,得到的着色结果是不同的,算法缺乏健壮性;(3)不适用于并行性计算。结点的重着色过程中,在对结点邻居的访问中,除了读操作,还有写操作,若两个线程的结点存在相同的邻居,就有可能出现对同一个邻居的冲突访问问题,即两个线程对同一个邻居结点进行更改,顺序不同,结果不同,正确性得不到保障。虽然由于图的稀疏性,在动态图着色中需要的颜色数被证明并不会这么大,但是对于在目前的效率较高基于结点饱和度的着色更新,或者是基于全局结构的着色更新算法来说如何能够快速处理图更新和保证图着色质量也将是一个非常大的挑战。总的来说,目前基于动态图着色的方法无法快速高质量的解决动态图上的频繁更新,这就迫切的需要用新的方法与技术来迎接动态图着色问题的挑战。
技术实现思路
为了克服现有技术的不足,本专利技术提供了一种基于GPU的动态图着色方法。具体包括以下步骤:步骤1:将原始无向图G有向化,转化成定向图G*;首先为每个结点的邻居结点定义顺序,将度数大于该结点的邻居置于它的左侧,称为内邻,度数小于该结点的邻居置于它的右侧,称为外邻,度数相同时,结点id小的置于左侧。定义符号‘≮’表示该关系,定义为,内邻结点≮该结点≮外邻结点,内邻结点用集合nbr-()表示,外邻结点用nbr+()表示。步骤2:将多次删除、插入操作进行批量合并后更新定向图G*。图的更新有四种方式:增加结点、删除结点、增加边、删除边,把增删结点问题转化为增删边的问题进行处理。对批量的更新进行整合;步骤3:利用压缩稀疏行CSR方式存储定向图的外邻信息,压缩稀疏列CSC方式存储定向图的内邻信息,并将外邻信息与内邻信息分别传输到GPU全局内存上;步骤4:判断队列是否低于阈值,若否,则利用贪婪着色方法对待更新结点构成的子图进行分区,把分区结果传输至GPU端;若是,则交由CPU端处理;步骤4.1:利用贪婪着色方法在CPU端对待处理队列中的结点进行分区,划分为N个分块,前(N-1)个分区内部的结点互不相邻,第N个分区内允许存在相邻的结点;步骤4.2:将步骤4.1中的前(N-1)个分区结点分别传输到GPU全局内存上,第N个分区保存在CPU端。步骤5:根据步骤4的分区结果并行地对每个区内的结点进行RC-Hybrid(ReColor-Hybrid)着色。步骤5.1:GPU每个线程处理当前分区的一个结点,设立长度为该结点入度值加一的数组,利用CSC矩阵收集对应结点的内邻颜色,如果颜色不大于当前结点的入度值,则把颜色值在数组中的对应位置置为1。步骤5.2:根据步骤5.1中的数组,从数组的起始位置开始递增地找第一个为0的位置,该位置所对应的数组下标即为当前结点所需分配的颜色。步骤5.3:设立一个长度为待处理结点数量的数组作为下轮待处理结点队列,GPU线程利用CSR矩阵把当前结点所有外邻在数组中的对应位置置为1,当GPU上的前(N-1)个分区处理完成后,同时作为多个结点外邻的某一结点只需下次被重新着色一次,达到去重的目的,再把这个数组最后传回CPU,和CPU端第N个分区合并,作为下轮待更新队列,重复步骤4,直到队列低于阈值后,交由CPU端处理。有益技术效果:1)传统的图着色解决方案都是基于静态图的,近年来逐渐出现了对动态图着色问题的增量处理方法,而本专利第一次提出了基于GPU的动态图着色问题,并且针对这个问题给出了一定的解决方案,通过对图的动态更新进行批量处理来充分利用GPU并行处理能力;2)为适应GPU的本文档来自技高网
...

【技术保护点】
1.一种基于GPU的动态图着色方法,其特征在于:包括以下步骤:步骤1:将原始无向图G有向化,转化成定向图G*;首先为每个结点的邻居结点定义顺序,将度数大于该结点的邻居置于它的左侧,称为内邻,度数小于该结点的邻居置于它的右侧,称为外邻,度数相同时,结点id小的置于左侧;定义符号‘≮’表示该关系,定义为,内邻结点≮该结点≮外邻结点,内邻结点用集合nbr

【技术特征摘要】
1.一种基于GPU的动态图着色方法,其特征在于:包括以下步骤:步骤1:将原始无向图G有向化,转化成定向图G*;首先为每个结点的邻居结点定义顺序,将度数大于该结点的邻居置于它的左侧,称为内邻,度数小于该结点的邻居置于它的右侧,称为外邻,度数相同时,结点id小的置于左侧;定义符号‘≮’表示该关系,定义为,内邻结点≮该结点≮外邻结点,内邻结点用集合nbr-()表示,外邻结点用nbr+()表示;步骤2:将多次删除、插入操作进行批量合并后更新定向图G*;图的更新有四种方式:增加结点、删除结点、增加边、删除边,把增删结点问题转化为增删边的问题进行处理,对批量的更新进行整合;步骤3:利用压缩稀疏行CSR方式存储定向图的外邻信息,压缩稀疏列CSC方式存储定向图的内邻信息,并将外邻信息与内邻信息分别传输到GPU全局内存上;步骤4:判断队列是否低于阈值,若否,则利用贪婪着色方法对待更新结点构成的子图进行分区,把分区结果传输至GPU端;若是,则交由CPU端处理;步骤5:根据步骤4的分区结果并行地对每个区内的结点进行RC-Hybrid着色。2.根据权利要求1所述一种基于GPU的动态图着色方法,其特征在于,所述步骤4的具体步骤包括:步骤4.1:...

【专利技术属性】
技术研发人员:谷峪宛长义杨莹李传文于戈
申请(专利权)人:东北大学
类型:发明
国别省市:辽宁,21

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

1