基于GPU的分布式图处理系统技术方案

技术编号:21431662 阅读:59 留言:0更新日期:2019-06-22 11:46
本发明专利技术公开了一种基于GPU的分布式图处理系统,包括:控制模块、主存管理模块、外存管理模块、主机‑设备通信接口模块、GPU模块。通过上述方式,本发明专利技术基于GPU的分布式图处理系统,结合了GPU在计算方面的高性能与分布式系统在数据访问、控制调度的优势,并且该整合工作对于在其他问题的分析解决上充分结合分布式系统与高性能硬件各自的优点,大大提高了图处理的执行精度和效率。

【技术实现步骤摘要】
基于GPU的分布式图处理系统
本专利技术涉及图处理系统领域,特别是涉及一种基于GPU的分布式图处理系统。
技术介绍
今天,大规模的图在生活中越来越常见:更为复杂的道路网络、更为广泛的社交运用、在交叉学科的更多模型的建立,等等。为了这些错综复杂的图中获取必要的信息来进行更好的生产与创造活动,在大规模的图上进行的大规模图分析也越来越重要,并且也在获得越来越广泛的关注。如何面对越来越庞大规模的图、越来越复杂的结构、以及越来越多样化的需求,成为了今天高性能计算研究领域一个值得研究的方向。由于图结构本身的特殊性,用于图分析的图算法在实际执行之时不只会带来很大的计算与数据访问负担,并且极易产生读写、计算负载分配的不平衡。由于庞大的计算需求,人们倾向于利用高性能的计算框架和/或硬件等资源来满足任务发布者对于低响应时间的需求。然而同时由于极不平衡的数据读写与计算负担的发生,在传统方案无法很好地兼顾两者之间的平衡之时,如何更好地发挥分布式系统方案和/或高性能硬件在图分析处理上各自的优势,同时尽可能避开各自固有的弱点,就成为了在该领域进行开发与优化的研究技术人员的共同挑战。
技术实现思路
本专利技术主要解决的技术问题是提供一种基于GPU的分布式图处理系统,是通过在现有的分布式图处理框架下加入对于GPU的整合,并且对合并的系统进行任务调度,数据访问等内部机制的优化,从而实现在图分析应用的数据访问与计算方面都取得较高且稳定的性能表现。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种基于GPU的分布式图处理系统,其包括:控制模块、主存管理模块、外存管理模块、主机-设备通信接口模块、GPU模块,所述控制模块:将需要传输的数据和任务打包并发送给GPU,并对图算法模型与图结构进行评估;负责图数据在各个分布式节点之间的划分以及调度各计算任务的分配比例;用于向主存/外存管理模块提出数据访问的请求,并且对获得的数据执行用户指定的处理任务;根据开销模型给出的评估结果,调度和监督GPU之间的协同工作,并且对每次迭代的执行结果给出反馈;所述主存管理模块:用于读取和更新所述控制模块和所述GPU模块所需的数据,完成GraphX框架模块与系统主存模块之间的交互;所述外存管理模块:用于完成GraphX框架模块与各节点上的外部存储设备之间的交互;所述主机-设备通信接口模块:用于完成控制模块和GPU模块之间的数据或执行逻辑交互;所述GPU模块:用于生成和判断图算法中每次迭代时产生的更新需求信息和在Spark中传递的信息。在本专利技术一个较佳实施例中,采用Pergel式的分布式图处理模型来进行图算法的迭代计算。在本专利技术一个较佳实施例中,GraphX框架模块架构于Spark系统模块上。在本专利技术一个较佳实施例中,所述主机-设备通信接口模块与所述GPU模块之间设置有用于语言转换的JNI接口,所述JNI接口将控制单元模块发送来的图数据与任务转换成GPU模块适用的图数据与任务。在本专利技术一个较佳实施例中,所述基于GPU的分布式图处理系统的控制步骤包括:1)接收用户提交的图分析任务请求;2)控制模块依据用户提交的任务请求内容,结合图的数据规模、图的结构来对图数据与任务进行面向GPU模块的划分;2.1)控制模块根据计算量阈值在图中选出若干个核心顶点,并组成用于代价估计的若干个核心顶点集合;2.2)控制模块对各个核心顶点集合及其核心顶点周边的顶点组成的子图区域进行代价估计,其计算公式如下:其中,Ci为第i种类型的基础计算,Aj为第j种类型的数据访问,Mk为第k种类型的系统通信,Count函数得到Ci的数量、Size函数分别得到Aj和Mk的数据量的累积量、T()函数计算在当前系统环境下Ci、Aj、Mk在单位量的数据上进行一次操作所需要的时间;2.3)控制模块根据系统环境中各个节点的算力估计的数值以及负载均衡的方式,对完成代价估计的子图提出图划分方式与任务的全局调度方案,并实施图划分与任务分配。3)主机-设备通信接口模块将控制模块给出的数据划分方案和任务的全局调度方案交由下层GPU模块;4)主机-设备通信接口模块确定同步界限,GPU模块计算当前迭代中的图中顶点状态的更新与用于下一步迭代的更新请求,将上述信息打包成在分布式系统框架中对应的RDD形式,并提交给控制模块以进行进一步的数据更新操作,其中,所述主机-设备通信接口模块确定同步界限的具体步骤包括:在每个节点执行完成当前迭代中其所负责的分区的内部计算后,各个节点将优先检查内部计算有没有对外部分区的图顶点产生数据更新请求,若所有的节点均未报告该类请求的存在,则认为当前迭代无需发生全局数据同步以维持数据一致性,此时各个计算节点间的数据同步将不会发生,各个节点将会直接进入下一步迭代过程中;5)控制模块确认任务是否全部执行完毕,如果否,则依据上一步骤的返回值更新当前的分析任务执行状态,给出下一步执行的调度方案,并回到步骤3),否则结束这个执行过程。在本专利技术一个较佳实施例中,在步骤5)中,所述依据上一步骤的返回值更新当前的分析任务执行状态的具体步骤包括:对于即将进行数据更新的顶点,先检查其是否密集地聚集于一个或多个分区之中,如果得到了肯定的返回值,系统则判断当前的数据更新是不均衡的,并且将会对步骤2)中得到的各个核心顶点集合基于开销表达式对更新过程产生的数据访问量与通信量进行重新评估,而后基于评估结果重新组织划分方式,使得均衡每个分区中所产生的更新任务数量。在本专利技术一个较佳实施例中,在步骤2.1)中,控制模块根据图中顶点的邻近子图的数据规模与结构得到计算量阈值,其中,图的数据规模包括顶点数和边数,图的结构包括各个顶点的入边数量、出边数量、多阶邻居数和图的半径,控制模块根据计算量阈值选出满足这些计算量阈值的核心顶点;控制模块再以负载均衡的方式将选出来的核心顶点组成若干个核心顶点集合,以用于下一步的子图代价估计。在本专利技术一个较佳实施例中,在步骤2.3)中,控制模块根据系统中的硬件条件获取每个节点的算力,所述硬件条件包括各个节点的CPU核心数、GPU核心数、各自的时钟频率、内存大小、节点间通信时延。在本专利技术一个较佳实施例中,在步骤2.3)中,控制模块根据GPU硬件信息和图的结构特征选择划分方案,使得控制模块将具有相邻关系的数据与任务划分到同一个分区中,其中,图划分方式包括完全随机划分、一维均匀划分、一维区间划分、二维网格划分。在本专利技术一个较佳实施例中,在步骤2.3)中,控制模块根据代价估计的结果对数据与任务进行均衡分配。本专利技术的有益效果是:结合了GPU在计算方面的高性能与分布式系统在数据访问、控制调度的优势,并且该整合工作对于在其他问题的分析解决上充分结合分布式系统与高性能硬件各自的优点,大大提高了图处理的执行精度和效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:图1是本专利技术的基于GPU的分布式图处理系统一较佳实施例的框架结构示意图;图2是本专利技术的基于GPU的分布式图处理系统一较佳实施例的第一流程结构示意图;图3是本专利技术的基于GPU的本文档来自技高网...

【技术保护点】
1.一种基于GPU的分布式图处理系统,其特征在于,包括:控制模块、主存管理模块、外存管理模块、主机‑设备通信接口模块、GPU模块,所述控制模块:将需要传输的数据和任务打包并发送给GPU,并对图算法模型与图结构进行评估;负责图数据在各个分布式节点之间的划分以及调度各计算任务的分配比例;用于向主存/外存管理模块提出数据访问的请求,并且对获得的数据执行用户指定的处理任务;根据开销模型给出的评估结果,调度和监督GPU之间的协同工作,并且对每次迭代的执行结果给出反馈;所述主存管理模块:用于读取和更新所述控制模块和所述GPU模块所需的数据,完成GraphX框架模块与系统主存模块之间的交互;所述外存管理模块:用于完成GraphX框架模块与各节点上的外部存储设备之间的交互;所述主机‑设备通信接口模块:用于完成控制模块和GPU模块之间的数据或执行逻辑交互;所述GPU模块:用于生成和判断图算法中每次迭代时产生的更新需求信息和在Spark中传递的信息。

【技术特征摘要】
1.一种基于GPU的分布式图处理系统,其特征在于,包括:控制模块、主存管理模块、外存管理模块、主机-设备通信接口模块、GPU模块,所述控制模块:将需要传输的数据和任务打包并发送给GPU,并对图算法模型与图结构进行评估;负责图数据在各个分布式节点之间的划分以及调度各计算任务的分配比例;用于向主存/外存管理模块提出数据访问的请求,并且对获得的数据执行用户指定的处理任务;根据开销模型给出的评估结果,调度和监督GPU之间的协同工作,并且对每次迭代的执行结果给出反馈;所述主存管理模块:用于读取和更新所述控制模块和所述GPU模块所需的数据,完成GraphX框架模块与系统主存模块之间的交互;所述外存管理模块:用于完成GraphX框架模块与各节点上的外部存储设备之间的交互;所述主机-设备通信接口模块:用于完成控制模块和GPU模块之间的数据或执行逻辑交互;所述GPU模块:用于生成和判断图算法中每次迭代时产生的更新需求信息和在Spark中传递的信息。2.根据权利要求1所述的基于GPU的分布式图处理系统,其特征在于,采用Pergel式的分布式图处理模型来进行图算法的迭代计算。3.根据权利要求1所述的基于GPU的分布式图处理系统,其特征在于,GraphX框架模块架构于Spark系统模块上。4.根据权利要求1所述的基于GPU的分布式图处理系统,其特征在于,所述主机-设备通信接口模块与所述GPU模块之间设置有用于语言转换的JNI接口,所述JNI接口将控制单元模块发送来的图数据与任务转换成GPU模块适用的图数据与任务。5.根据权利要求1所述的基于GPU的分布式图处理系统,其特征在于,所述基于GPU的分布式图处理系统的控制步骤包括:1)接收用户提交的图分析任务请求;2)控制模块依据用户提交的任务请求内容,结合图的数据规模、图的结构来对图数据与任务进行面向GPU模块的划分;2.1)控制模块根据计算量阈值在图中选出若干个核心顶点,并组成用于代价估计的若干个核心顶点集合;2.2)控制模块对各个核心顶点集合及其核心顶点周边的顶点组成的子图区域进行代价估计,其计算公式如下:其中,Ci为第i种类型的基础计算,Aj为第j种类型的数据访问,Mk为第k种类型的系统通信,Count函数得到Ci的数量、Size函数分别得到Aj和Mk的数据量的累积量、T()函数计算在当前系统环境下Ci、Aj、Mk在单位量的数据上进行一次操作所需要的时间;2.3)控制模块根据系统环境中各个节点的算力估计的数值以及负载均衡的方式,对完成代价估计的子图提出图划分方式与任务的全局调度方案,并实施图划分与任务分配;3)主机-设备通信接口模块将控制模块给出的数据划分方案和任务的全局...

【专利技术属性】
技术研发人员:谢希科邹凯李琦
申请(专利权)人:中国科学技术大学苏州研究院
类型:发明
国别省市:江苏,32

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

1