一种适用于异构平台的图计算方法技术

技术编号:20869546 阅读:13 留言:0更新日期:2019-04-17 09:57
本发明专利技术公开了一种适用于异构平台的图计算方法,包括:(1)对原始图数据进行预处理,从而得到多个数据块及每个数据块对应的元数据信息;(2)根据元数据信息评估当前迭代的计算密度;(3)若计算密度小于预设的计算密度阈值且不为0,则由主机根据数据块执行当前迭代的计算任务;若计算密度大于或等于计算密度阈值,则由加速器根据数据块执行当前迭代的计算任务;若计算密度为0,则图计算完成;(4)基于历史状态信息更新节点的状态,当前迭代结束;(5)重复执行步骤(2)~(4),直至图计算完成。本计算能够充分利用异构平台的计算能力,提高异构平台处理图计算的整体性能。

【技术实现步骤摘要】
一种适用于异构平台的图计算方法
本专利技术属于基于加速器的大数据领域,更具体地,涉及一种适用于异构平台的图计算方法。
技术介绍
图拓扑是一种表征实体与实体之间拓扑关联的有效抽象,现实世界中如社交网络,交通运输,互联网,生物制药等许多问题都可以抽象为图结构,图计算可以有效的解决这类问题。当前图计算主要面临的问题包括:数据规模大,随机访存以及计算访存比高。数据规模大表现在实际需求中图节点个数可达数十亿级别,而节点与节点之间的关联规模可达万亿级别,这种特征使得图计算需要大量的存储资源和计算能力,可扩展性需要得到满足;随机访存表现在图信息在传播的过程中通常需要访问邻居列表,这种特征会导致访存地址空间特别大,基于局部性原理的缓存策略和体系结构并不适用;计算访存比高表现在图计算的大量应用计算比较简单,这种特征会导致计算核心大量停滞等待数据到来,整体性能差。基于加速器(如GPU)的图计算平台得益于加速器本身的高带宽和高并发度,对于图处理应用能达到很高的性能。但受限于加速器本地存储空间的限制,仅仅基于加速器的图计算平台所能处理的图规模相当有限。图计算应用在多方面表现出异构的特性:在图本身的结构特性上,不同的图数据差异很大;从图迭代过程中,算法的计算量也会发生变化;采用不同的算法,图计算也表现出很强的差异性。由于图具有这些异构的特性,并不存在单一的计算平台能有效处理所有与图计算相关的数据和算法,这使得在同时包含主机和加速器的异构平台上同时任务调度的方案成为图计算应用一种新的考虑。但由于系统性能受限于互联结构的传输速度,并且主机和加速器之间存在着协同开销,异构图处理仍然面临着明显的问题和挑战。现有的适用于异构平台的图计算方法并没有很好的解决以上问题。Totem延续分布式的思维,将数据划分到CPU和GPU,计算核心处理自己的数据部分,通过PCI-E进行通信,但GPU的计算任务量受限于GPU的存储空间,其GPU的计算能力无法完全发挥;GTS采用的是将图拓扑数据传输到设备端进行计算,且仅采用设备执行计算任务,由于图的拓扑数据巨大,这会导致大量的数据传输,且每次传输的数据可能只使用一次就会被清除;Mosaic采用的是各个设备执行具体的计算任务,主机端进行任务的合并,图的结构数据也需要传输到设备,会有大量的数据传输,系统性能受限于低速的主存和设备存储器的传输带宽;Garaph对每个独立的任务进行了分析,将其合适的调度到主机和设备端进行执行,数据的传递数量减少了,但主机和设备之间的负载均衡难以控制,且GPU计算能力仍受限于数据传输。总的来说,现有的适用于异构平台的图计算方法并没有充分利用异构平台的计算能力,并且由于图计算过程中存在的大量的数据传输和同步开销导致了计算效率不高。
技术实现思路
针对现有技术的缺陷和改进需求,本专利技术提供了一种适用于异构平台的图计算方法,其目的在于,充分利用异构平台的计算能力并减小主机和加速器之间的数据传输和同步开销,从而提高图计算的计算效率。为实现上述目的,本专利技术提供了一种适用于异构平台的图计算方法,异构平台包括主机和加速器,包括如下步骤:(1)对原始图数据进行预处理,从而得到多个数据块及每个数据块对应的元数据信息;(2)根据元数据信息评估当前迭代的计算密度;(3)若计算密度小于预设的计算密度阈值且不为0,则由主机根据数据块执行当前迭代的计算任务;若计算密度大于或等于计算密度阈值,则由加速器根据数据块执行当前迭代的计算任务;若计算密度为0,则图计算完成;(4)基于历史状态信息更新节点的状态,当前迭代结束;(5)重复执行步骤(2)~(4),直至图计算完成;其中,各节点的状态在初始时刻均为活跃状态。加速器具有高带宽和高并发度,能够高效的执行图计算的任务,但是加速器在执行计算任务之前,数据块需要从主机传输至加速器,只有当计算性能提升的收益高于数据传输的开销,由加速器执行计算的效益才能得以体现。在本专利技术所提供的适用于异构平台的图计算方法中,在执行每一次迭代之前都会先对当前迭代的计算密度进行评估,并根据评估结果确定由主机还是加速器执行当前迭代的计算任务,具体地,经过评估,如果当前迭代的计算密度较大(大于预设的计算密度阈值),则由加速器执行当前迭代的计算任务,由此可以充分利用异构平台的计算能力,提高异构平台处理图计算的整体性能。进一步地,步骤(1)包括:(11)对原始图数据中的边序列进行排序以得到边的有序序列,使得有序序列中起点有序,且同一起点对应的出边的终点有序;(12)对有序序列进行划分并根据划分结果生成多个数据块,使得每个数据块存储部分连续的节点以及对应的出边信息,并且每个数据块中存储的数据量不超过预先分配的存储空间大小;(13)为每一个数据块生成对应的元数据信息;其中,元数据信息包括数据块的点数量、边数量、迭代次数、活跃点数及缓存状态。进一步地,步骤(2)中,根据元数据信息评估当前迭代的计算密度,包括:随机选取K个数据块并从每个数据块中随机选取C条边,从而得到由K×C条边构成的样本集合;获得样本集合中活跃边的数量D,由此评估当前迭代的计算密度为:其中,活跃边的起点状态为活跃状态,Mi表示所选取的第i个数据块所存储的边数。通过以上随机抽样的方式评估当前迭代的计算密度,能够在保证较高的评估准确度的同时,有效减少大规模图中的评估开销。进一步地,步骤(3)中,主机根据数据块执行当前迭代的计算,包括:根据数据块的编号,采用哈希方式将数据块对应的计算任务分配给主机中的多个核心,以由多个核心并行地执行计算任务;若任意一个核心CA的计算任务执行完成,且当前迭代的计算任务还未完成,则确定剩余计算任务最多的核心CB,并将核心CB的计算任务队列尾部的计算任务转分配给核心CA。在主机采用以上调度方法,能够实现主机中多个核心之间的负载均衡,提高计算效率。进一步地,步骤(3)中,加速器根据数据块执行当前迭代的计算,包括:对于任意一个数据块B,若连续R1次迭代中数据块B中活跃边的比例均低于预设的活跃度阈值,则在当前迭代中数据块B不参与计算,也不对数据块B进行传输;其中,活跃边的起点状态为活跃状态。更进一步地,步骤(3)中,加速器根据数据块执行当前迭代的计算,还包括:(S1)在加速器端并行的执行N1个数据块对应的计算任务,在执行计算任务的同时从主机传输N2个数据块至加速器端,并在计算任务执行完成后丢弃加速器中的前N2个数据块;(S2)重复执行(S1)直至当前迭代的计算任务执行完成;其中,N1=S/M,S为加速器的存储容量,M为分配给每个数据块的存储空间大小;N2=N1/T,T表示在当前迭代中每个数据块对应的计算任务需要被执行的次数。在加速器中采用以上调度方法,一方面,通过多次子迭代,即对同一数据块进行多次处理的方法执行当前迭代的计算任务,能够减少主机和设备端的同步;另一方面,由于在同一次子迭代中会同时对相邻数据块进行并行处理,由此可以充分利用子图之间的局部性,提高数据利用率,减少数据块的传输次数;因此,在加速其中采用以上调度方法能够有效提升系统性能。更进一步地,步骤(3)中,加速器根据数据块执行当前迭代的计算,还包括:在起始阶段,额外执行几次计算任务作为补偿,以使得当前迭代中每个数据块对应的计算任务都被执行T次。进一步地,步骤(4)中本文档来自技高网
...

【技术保护点】
1.一种适用于异构平台的图计算方法,所述异构平台包括主机和加速器,其特征在于,包括如下步骤:(1)对原始图数据进行预处理,从而得到多个数据块及每个数据块对应的元数据信息;(2)根据所述元数据信息评估当前迭代的计算密度;(3)若所述计算密度小于预设的计算密度阈值且不为0,则由所述主机根据所述数据块执行当前迭代的计算任务;若所述计算密度大于或等于所述计算密度阈值,则由所述加速器根据所述数据块执行当前迭代的计算任务;若所述计算密度为0,则图计算完成;(4)基于历史状态信息更新节点的状态,当前迭代结束;(5)重复执行步骤(2)~(4),直至图计算完成;其中,各节点的状态在初始时刻均为活跃状态。

【技术特征摘要】
1.一种适用于异构平台的图计算方法,所述异构平台包括主机和加速器,其特征在于,包括如下步骤:(1)对原始图数据进行预处理,从而得到多个数据块及每个数据块对应的元数据信息;(2)根据所述元数据信息评估当前迭代的计算密度;(3)若所述计算密度小于预设的计算密度阈值且不为0,则由所述主机根据所述数据块执行当前迭代的计算任务;若所述计算密度大于或等于所述计算密度阈值,则由所述加速器根据所述数据块执行当前迭代的计算任务;若所述计算密度为0,则图计算完成;(4)基于历史状态信息更新节点的状态,当前迭代结束;(5)重复执行步骤(2)~(4),直至图计算完成;其中,各节点的状态在初始时刻均为活跃状态。2.如权利要求1所述的适用于异构平台的计算方法,其特征在于,所述步骤(1)包括:(11)对原始图数据中的边序列进行排序以得到边的有序序列,使得所述有序序列中起点有序,且同一起点对应的出边的终点有序;(12)对所述有序序列进行划分并根据划分结果生成多个数据块,使得每个数据块存储部分连续的节点以及对应的出边信息,并且每个数据块中存储的数据量不超过预先分配的存储空间大小;(13)为每一个数据块生成对应的元数据信息;其中,所述元数据信息包括数据块的点数量、边数量、迭代次数、活跃点数及缓存状态。3.如权利要求1或2所述的适用于异构平台的图计算方法,其特征在于,所述步骤(2)中,根据所述元数据信息评估当前迭代的计算密度,包括:随机选取K个数据块并从每个数据块中随机选取C条边,从而得到由K×C条边构成的样本集合;获得所述样本集合中活跃边的数量D,由此评估当前迭代的计算密度为:其中,所述活跃边的起点状态为活跃状态,Mi表示所选取的第i个数据块所存储的边数。4.如权利要求1或2所述的适用于异构平台的图计算方法,其特征在于,所述步骤(3)中,主机根据所述数据块执行当前迭代的计算,包括:根据数据块的编号,采用哈希方式将数据块对应的计算任务分配给主机中的多个核心,以由多个核心并行地执行计算任务;若任意一个核心CA的计算任务执行完成,且当前迭代的计算任务还...

【专利技术属性】
技术研发人员:廖小飞李贤亮郑龙金海
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1