一种基于gpu的异步图数据处理系统的制作方法

文档序号:8512962阅读:442来源:国知局
一种基于gpu的异步图数据处理系统的制作方法
【技术领域】
[0001]本发明属于图数据处理和高性能计算领域,更具体地,涉及一种基于GPU的异步图数据处理系统。
【背景技术】
[0002]大规模的图数据处理,被越来越多的应用所涉及。传统的单机图处理系统,对大规模的图数据进行划分、之后依序对数据块进行处理,相比较于分布式系统编程的繁琐,简洁的单机系统得到了越来越多的关注。单机系统的关键,也就是解决由于图数据划分而带来的磁盘访问性能差、任务并发度低、设备内存带宽利用率低等问题,在学术界,针对此类问题已经进行了一些积极探索和尝试。
[0003]GraphChi 系统采用了新设计的滑动窗口 PSW(Parallel Sliding Window)算法,将磁盘数据分块引入内存进行处理,流动地顺序访问磁盘数据,解决了由大量随机磁盘访问带来的1开销。但是这种数据划分策略,将导致每次执行的数据中存在有大量的数据访问冲突,从而只会有很少的一部分进行并行处理,执行效率很低。
[0004]TurboGraph系统,在GraphChi系统的基础之上,尝试解决任务并行度低下的问题,采用Pin-and-slide编程模型,将部分数据固定在内存中,加快访问效率,同时覆盖了一部分1过程和CPU处理过程,提高并行度。但此系统受到内存容量限制,处理能力有限,很难高效地解决数据并发的问题。
[0005]随着GPGPU技术的成熟,GPU被用来加速普通的计算任务成为一种趋势。由于图数据的顶点多、边数多、数据依赖关系复杂等因素,多数的图顶点处理任务十分适合使用GPU进行加速。在这方面,学术界也已经进行了一些研宄工作。
[0006]Medusa系统是近期开源的一个GPU架构的图数据处理系统,该系统设计了一套API接口,用户可以方便地使用GPU来加速图处理。但是该系统并没有考虑数据划分策略,更没有尝试解决GPU中任务并发度低的问题。
[0007]GraphLab系统引入锁机制来解决数据访问冲突和资源竞争等问题,但由于GPU自身结构特性,引入锁机制反而会带来更大的开销,很难用来解决并发问题。

【发明内容】

[0008]针对当前单机图处理系统的数据划分策略效率低下,图顶点处理任务并发度差的情况,本发明提出了一种基于GPU的异步图处理系统,兼顾GPU设备内存和主机内存之间的数据交换开销问题,采用基于混合图着色算法的数据划分策略,提高数据并发度,充分利用GPU强大的并行处理能力,大幅提升单机图处理性能。
[0009]为实现上述目的,本发明提供了一种基于GPU的异步图处理系统,包括数据预处理模块、数据流管理模块、异步执行模块和迭代处理模块,其中:
[0010]所述数据预处理模块,用于对原始图数据进行预处理,采用混合着色算法,将原始图数据划分为一定数目的子数据,并保证每一个子数据中的顶点被分配得到的颜色相同,该模块在CPU中执行完成;
[0011]所述数据流管理模块,用于管理CPU和GPU之间的数据交换,通过CUDA语言的支持,在CPU memory和GPU设备内存进行数据交换时,采用数据预取、多管道数据拷贝的方式,利用PC1-E的带宽,并减少数据交换开销;
[0012]所述异步执行模块,用于对拷贝到GPU设备内存中的数据进行异步执行,将数据通过PC1-E输送到GPU设备内存中,根据不同的算法需求,在保证数据一致性的同时,由GPU对数据执行更新函数;
[0013]所述迭代处理模块,用于根据图算法迭代执行的特征,在GPU执行完成当前轮次的更新任务后,判断是否达到算法要求的收敛条件,如果达到,则终止所有的更新任务;如果没有达到收敛要求,则继续由GPU对数据进行异步处理。
[0014]在本发明的一个实施例中,所述数据预处理模块采用的混合着色算法具体为:采用N种颜色对原始图数据进行着色,每个颜色包含的顶点数目分别为Pp P2, P3,…、Pn,根据卩,“ =1,2,3…η)值的大小,将最小的M种颜色混合在一起,从而形成(Ν-Μ+1)个着色单元,其中(N-M)个着色单元的所有顶点具有同一种颜色,另一个为混合着色单元。
[0015]在本发明的一个实施例中,所述数据预处理具体执行过程为:根据混合着色算法的结果,将Ν-Μ+1个着色单元中的顶点分别划分为独立的Ν-Μ+1个数据块,数据块顶点所涉及的数据边也整合在一个集合中;从而将原有图数据划分为Ν-Μ+1个具有独立顶点和数据边的子图,其中N-M个子图中,所有顶点均不会共享数据边,另一个则为混合着色单元,不保证其中的部分顶点互相为邻接点、共享数据边。
[0016]在本发明的一个实施例中,所述数据流管理模块包括数据预取模块和多管道数据拷贝模块,所述数据预取模块用于在GPU kernel执行更新任务时,对数据进行预取,提前准备GPU kernel所需要的数据,做到在kernel计算的同时进行数据传送;所述多管道数据拷贝模块用于根据不同着色单元对数据的需求不同,采用CUDA Stream的方式,在多管道中同时对数据进行拷贝,从而减少数据拷贝的开销。
[0017]在本发明的一个实施例中,所述异步执行模块的异步执行具体为:在执行处理任务时,各个顶点不需要进行全局同步,直接将更新值推送给邻接顶点,或者由邻接顶点主动获取最近的更新值,使得所有顶点都能够在第一时间得到所需顶点和数据边的最新值,从而保证每次更新都基于最新值,在保证计算过程中数据一致性的前提下,可以加快整个算法的收敛速度。
[0018]在本发明的一个实施例中,所述数据一致性是指在更新数据时,保证其他任一顶点在本顶点获取到的值是最新的、统一的,避免由于值的差异导致计算无法收敛、甚至计算结果错误问题。
[0019]在本发明的一个实施例中,所述迭代处理模块具体用于,在对图算法进行迭代处理的过程中,通过设置迭代阈值的方式,来监测每次迭代过程是否达到算法的收敛条件,如果前后两次迭代计算的结果差异超过了迭代阈值,则继续进行迭代计算;而如果前后两次迭代计算的结果差异小于迭代阈值,则表明迭代计算已经没有必要继续进行下去,终止计算过程。
[0020]在本发明的一个实施例中,所述迭代处理模块在监测迭代过程是否达到算法收敛条件的策略,分为两种:一是设定全局阈值,计算上一迭代轮次和当前迭代轮次各个顶点值之间的差异,当所有顶点的差异值均小于所设定的全局阈值时,则认为计算达到了收敛条件;二是设定阈值范围,当图数据中有一定数量的顶点达到了阈值即认为计算达到了收敛条件,而不一定保证所有的顶点都满足了阈值要求。
[0021]与现有技术相比,本方法具有以下的有益效果:
[0022](I)优化的数据划分策略
[0023]基于混合图着色算法的数据划分策略,将大规模的图数据,分割成多个数据块,每一次只针对其中的一个子块进行处理,可以有效解决了由于图数据的规模过大、GPU内存有限,而不能直接进行处理的问题。同时,被分割到同一数据块中的图顶点,大多是不相邻的弱关联数据,可以同时被并发执行,大幅提高任务并发力度。
[0024](2)高效的任务执行效率
[0025]GPU被用来加速需要高并发处理的那部分任务。采用本发明的策略,在每一个子数据块中,大多数的图顶点可以被直接并发执行,GPU的高并发能力得到发挥,可以高效地完成数据处理任务。当然,对于数据块中存有的少量强关联数据,可以交给CPU进行处理,这样就实现了 CPU和GPU的协同工作,CPU负责顺序执行那些不易被并行执行的数据,GPU则负责执行并发度高的那部分图数据,混合协作、高效地完成整个图处理任务。
[0026](3)提高设备内存带宽利用率
[0027]本系统采用基于混合图着色算法的数据划分策略,在进行数据划分时,不仅考虑到任务并发问题,还不得不将一些只有少量顶点的分块合并到其他分块中,以此来减少数据置换次数,提高设备内存带宽利用率,避免由于数据划分策略本身带来的额外系统开销。
[0028](4)加快算法的迭代收敛速度
[0029]本系统采用异步编程模型对图算法进行处理,由于此类算法本身具有迭代处理的特征,相比较于传统的同步BSP模型中“计算-通信-等待”的三步处理过程,异步编程可以避免等待开销,将最新的顶点值在计算完成的第一时间传递给邻接点,结合系统中迭代处理模块,极大地加快算法的迭代收敛速度。
[0030](5)方便普通用户使用的GPU系统框架
[0031]本系统基于混合图着色算法的的数据划分策略,采用异步编程模型,实现了一个CPU和GPU混合架构的单机图处理系统,该系统将本着方便普通用户使用的目标,在用户只有少量GPU编程基础和经验的情况下,依然能够满足通过使用本系统框架,利用GPU来完成加速图处理过程的目标。
【附图说明】
[0032]图1是GPU异步图数据处理方法执行流程;
[0033]图2是混合着色算法和预处理模块执行流程示意图;
[0034]图3是GPU异步处理的执彳丁流程不意图。
【具体实施方式】
[0035]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0036]本发明采用基于混合图着色算法的数据划分策略,解决了图数据处理的数据访问冲突和GPU高并发性能之间的矛盾问题,高效地利用GPU的并行计算优势来加速图数据处理过程。如图1所示,本发明基于GPU的异步图处理方法执行流程如下:
[0037](I)数据预处理模块,用于对原始图数据进行预处理,采用混合着色算法,将原始图数据划分为一定数目的子数据,并保证每一个子数据中的顶点被分配得到的颜色相同,该模块在CPU中执行完成;
[0038]其中所述数据预处理模块采用的混合着色算法具体为:采用N种颜色对原始图数据进行着色,每个颜色包含的顶点数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1