The invention discloses a data processing system and method based on multi GPU, divided by the original first map data module of data input, and divides the data assigned to each GPU device; and then through the task management module of each vertex on the GPU device according to the different distribution of computing tasks attribute, the execution order and management tasks; then through the implementation of modules to ensure data consistency and completion of various GPU devices parallel computing task execution; finally through the data collection module in the calculation process after the completion of data collection. The invention proposes task allocation and management mechanism, to maximize the efficiency of parallel, using computational masking, solve the existing problems based on the limited size of the GPU CPU communication overhead and can handle data graph processing system GPU, so as to improve the efficiency of processing the large graph data on GPU.
【技术实现步骤摘要】
一种基于多GPU的图数据处理系统及方法
本专利技术属于图数据处理和高性能计算
,更具体地,涉及一种基于多GPU的图数据处理系统及方法。
技术介绍
目前,许多现实应用都涉及到图数据的处理,传统的单机图系统主要通过数据划分,优化访存效率和减少磁盘I/O开销等手段提高大规模图数据处理的效率,但仍存在着并行计算效率低,磁盘带宽利用率不足和访存效率低等问题。GraphChi系统将大规模图数据划分成小的数据块,提出了Shards的概念和并行滑动窗口的机制,在提高内存数据访问连续性的同时,按需调入Shard块,减少了磁盘的随机访问,但是由于不同shard块之间存在碎片访问以及块内数据关联性高,因此造成磁盘的带宽利用率不足和并行计算效率低。X-stream系统提出了以边为中心的图处理模型,采用流划分的方式,划分后按照边随机存储,避免了排序带来的开销,同时由于相对于以顶点为中心的访问方式,以边的访问方式是连续的,可以提高磁盘访问的带宽。但是由于缺乏合理调度数据块的机制,使得访存命中率不高。近几年,通用计算图形处理器(General-PurposecomputationonGraphicsProcessingUnits,GPGPU)技术越来越成熟。GPU具有强大的并行能力和高带宽等特点,而图计算需要满足高性能及实时性等需求,因此利用GPU来加速图计算的研究得到越来越多的关注。基于GPU的图处理系统关键在于解决图计算局部性差、任务并行度低和GPU-CPU之间通信开销大等问题。Cusha系统针对传统的图数据表达方法CSR(CompressedSparseRow)结构存在不规 ...
【技术保护点】
一种基于多GPU的图数据处理系统,其特征在于,包括:数据划分模块、任务管理模块、执行模块以及数据收集模块;所述数据划分模块,用于对原始图数据进行划分,并将划分后的数据分配到各个GPU设备中;所述任务管理模块,用于对每个GPU设备中的顶点按照计算属性分配不同的计算任务,并管理GPU上不同粒度的计算任务、GPU与CPU之间的消息通信任务以及CPU上消息聚合任务的执行顺序;所述执行模块,用于在保证数据一致性的同时,完成各个GPU设备中并行计算任务的执行;所述数据收集模块,用于在计算任务完成以后,将计算结果从所有GPU设备中传输到CPU中,完成数据收集。
【技术特征摘要】
1.一种基于多GPU的图数据处理系统,其特征在于,包括:数据划分模块、任务管理模块、执行模块以及数据收集模块;所述数据划分模块,用于对原始图数据进行划分,并将划分后的数据分配到各个GPU设备中;所述任务管理模块,用于对每个GPU设备中的顶点按照计算属性分配不同的计算任务,并管理GPU上不同粒度的计算任务、GPU与CPU之间的消息通信任务以及CPU上消息聚合任务的执行顺序;所述执行模块,用于在保证数据一致性的同时,完成各个GPU设备中并行计算任务的执行;所述数据收集模块,用于在计算任务完成以后,将计算结果从所有GPU设备中传输到CPU中,完成数据收集。2.根据权利要求1所述的系统,其特征在于,所述数据划分模块包括:顶点划分模块、边分配模块以及存储模块;所述顶点划分模块,用于将原始图数据中的所有顶点按照顶点的度数大小分配到不同的数据块;所述边分配模块,用于根据预设约束条件依次将原始图数据中的边分配到不同的数据块中,其中,预设约束条件表示最大化保证每个数据块中的边的个数一致;所述存储模块,用于将各数据块中的划分结果按照顶点编号的顺序,依次存储在内存单元中。3.根据权利要求2所述的系统,其特征在于,所述任务管理模块包括任务分配模块以及任务流管理模块;所述任务分配模块,用于根据预设分类方法将每个GPU设备上的所有顶点根据计算属性分为Outer点和Inner点,利用CUDAStream方式,为Outer点和Inner点分配不同的计算任务;所述任务流管理模块,用于协调GPU上不同粒度的计算任务、GPU与CPU之间的消息通信任务以及CPU上消息聚合任务之间的执行顺序,利用计算时间掩盖通信时间,使得CPU和GPU的资源充分利用。4.根据权利要求3所述的系统,其特征在于,所述预设分类方法为:将在其他GPU设备上存在副本的顶点作为Outer点,将在其他GPU设备上不存在副本的顶点作为Inner点。5.根据权利要求4所述的系统,其特征在于,所述任务流管理模块包括优先级确定模块以及任务流管理子模块;所述优先级确定模块,用于将Outer点所在的计算任务设置高优先级,将Inner点所在的计...
【专利技术属性】
技术研发人员:石宣化,金海,罗璇,赵鹏,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。