论文部分内容阅读
为从大规模图中挖掘出有价值的信息和知识,分布式图计算系统首先通过图分割方法,将图中的顶点和边分配到各计算节点上;然后,执行特定的图处理流程,迭代计算图中的顶点数值,直至图算法收敛。因此,图分割方法和图处理流程在很大程度上决定了分布式图计算系统的整体性能。传统的分布式图计算系统通常基于同构计算集群,并采用静态的、通用的图分析模式。但随着图计算应用在广度和深度上的不断扩展,新型的分布式图计算系统需要能够在异构计算平台上高效执行,同时还要适应实际业务中图的在线更新与快速查询,尤其需要针对流行的二部图进行专门优化。为解决上述关键问题,本文从以下三个方面进行深入研究。
针对异构的计算集群,优化图分割方法,以实现负载均衡。现实中的计算集群通常是异构的。然而,传统的分布式图计算系统认为计算集群是同构的,因而在图分割阶段中,为所有计算节点分配了数量相当的图数据。作为结果,在图算法的每次迭代中,处理能力强的节点总是比处理能力弱的节点优先完成对本地顶点的数值计算,即图负载在计算节点间分布不均衡的问题。为解决此问题,提出了一种图分割方法Laro,在图算法的执行过程中,对计算节点上的顶点进行迁移,从而均衡计算节点间的图负载。为构建高效的顶点迁移方案,Laro解决了三个难点:(1)量化负载不均衡,因此Laro将计算节点执行时间的相对标准差作为衡量的参数;(2)均衡图负载,因此Laro将最小化执行时间的相对标准差作为迁移目标;(3)降低迁移开销,因此Laro提出了一个阈值和“二次检查”策略来限制迁移频率。具体而言,在每次迭代完成后,主控节点将计算出所有计算节点执行时间的相对标准差。当连续两次迭代中的相对标准差都大于阈值时,则判定为负载不均衡。然后,重负载计算节点并行地迁移顶点到轻负载计算节点上,以使当前的相对标准差低于阈值。最后,每个计算节点更新所有被迁移顶点的位置信息。实验结果表明,Laro的算法执行速度分别是现有图分割方法SkewedHash和GPS-dynamic的1.23倍和1.20倍。
针对动态的图结构,优化图处理流程,以提升计算效率。现有的分布式图计算系统通常为动态的图结构维护了一系列版本,在当前版本上执行图算法时,把图更新操作缓存在一个缓冲器内。当满足一定条件后,再将所有缓存的图更新应用到当前版本上,以形成一个新的版本,再进行计算。但对于广泛使用的单调图算法而言,图更新可以在缓冲器内被预处理后再应用,以提升系统在新版本上的计算效率。为此,提出了一种图处理流程GraPU,通过三个阶段来预处理缓存的图更新:(1)图更新分类阶段,根据连接部件对图更新进行分类,从而识别出被图更新所影响的底层图数据;(2)图更新预计算阶段,对图更新进行预计算,从而产生一组加快算法收敛的中间数值;(3)高度顶点分割阶段,将图更新中各高度顶点的边分配到多个计算节点上,从而平衡顶点间的计算时间。当图更新被应用后,GraPU采用以子图为中心的计算模型来计算新版本中的顶点数值。另外,GraPU提出了一种数据布局和一种负载均衡策略,来分别提高图数据的读写效率和均衡子图间的负载量。实验结果表明,GraPU的算法执行速度是现有分布式图计算系统KineoGraph的4.55倍。
针对流行的二部图,优化图分割方法,以降低通信开销。在一个二部图中,顶点被划分为两个不相交的子集,而每条边连接着一对来自不同子集的顶点。二部图已被广泛应用到机器学习和数据挖掘(Machine Learning and Data Mining,MLDM)领域。然而,现有的分布式图计算系统并没有充分意识到二部图特殊的结构。作为结果,这些系统对二部图进行了不合理的图分割,从而在执行MLDM算法时,遭遇了较高的通信开销和不均衡的负载分布。为解决这些问题,首先总结出二部图和MLDM算法的三个主要特点:(1)在大多数MLDM算法中,顶点数值是一个多元素的向量;(2)对于二部图而言,其两个顶点子集中的顶点数通常相差巨大;(3)在单个顶点子集内,顶点的度通常展现出幂律分布。基于以上特点,提出了一种图分割方法GraBi,先对二部图进行纵向分割,再进行横向分割,以取得一个高质量的图分割。首先,在纵向分割中,GraBi将每个向量化的顶点切分为若干个顶点块,从而将二部图切分为若干层。然后,在横向分割中,GraBi优先分配每层中较大顶点子集中的顶点块,并将这些顶点块分解为一个或多个子顶点块。最后,GraBi使用一系列哈希函数将子顶点块均匀地分配到计算节点上。实验结果表明,GraBi的算法执行速度分别是现有三种图分割方法Hybrid-cut、Bi-cut和3D-partitioner的3.12倍、3.41倍和1.30倍。
针对异构的计算集群,优化图分割方法,以实现负载均衡。现实中的计算集群通常是异构的。然而,传统的分布式图计算系统认为计算集群是同构的,因而在图分割阶段中,为所有计算节点分配了数量相当的图数据。作为结果,在图算法的每次迭代中,处理能力强的节点总是比处理能力弱的节点优先完成对本地顶点的数值计算,即图负载在计算节点间分布不均衡的问题。为解决此问题,提出了一种图分割方法Laro,在图算法的执行过程中,对计算节点上的顶点进行迁移,从而均衡计算节点间的图负载。为构建高效的顶点迁移方案,Laro解决了三个难点:(1)量化负载不均衡,因此Laro将计算节点执行时间的相对标准差作为衡量的参数;(2)均衡图负载,因此Laro将最小化执行时间的相对标准差作为迁移目标;(3)降低迁移开销,因此Laro提出了一个阈值和“二次检查”策略来限制迁移频率。具体而言,在每次迭代完成后,主控节点将计算出所有计算节点执行时间的相对标准差。当连续两次迭代中的相对标准差都大于阈值时,则判定为负载不均衡。然后,重负载计算节点并行地迁移顶点到轻负载计算节点上,以使当前的相对标准差低于阈值。最后,每个计算节点更新所有被迁移顶点的位置信息。实验结果表明,Laro的算法执行速度分别是现有图分割方法SkewedHash和GPS-dynamic的1.23倍和1.20倍。
针对动态的图结构,优化图处理流程,以提升计算效率。现有的分布式图计算系统通常为动态的图结构维护了一系列版本,在当前版本上执行图算法时,把图更新操作缓存在一个缓冲器内。当满足一定条件后,再将所有缓存的图更新应用到当前版本上,以形成一个新的版本,再进行计算。但对于广泛使用的单调图算法而言,图更新可以在缓冲器内被预处理后再应用,以提升系统在新版本上的计算效率。为此,提出了一种图处理流程GraPU,通过三个阶段来预处理缓存的图更新:(1)图更新分类阶段,根据连接部件对图更新进行分类,从而识别出被图更新所影响的底层图数据;(2)图更新预计算阶段,对图更新进行预计算,从而产生一组加快算法收敛的中间数值;(3)高度顶点分割阶段,将图更新中各高度顶点的边分配到多个计算节点上,从而平衡顶点间的计算时间。当图更新被应用后,GraPU采用以子图为中心的计算模型来计算新版本中的顶点数值。另外,GraPU提出了一种数据布局和一种负载均衡策略,来分别提高图数据的读写效率和均衡子图间的负载量。实验结果表明,GraPU的算法执行速度是现有分布式图计算系统KineoGraph的4.55倍。
针对流行的二部图,优化图分割方法,以降低通信开销。在一个二部图中,顶点被划分为两个不相交的子集,而每条边连接着一对来自不同子集的顶点。二部图已被广泛应用到机器学习和数据挖掘(Machine Learning and Data Mining,MLDM)领域。然而,现有的分布式图计算系统并没有充分意识到二部图特殊的结构。作为结果,这些系统对二部图进行了不合理的图分割,从而在执行MLDM算法时,遭遇了较高的通信开销和不均衡的负载分布。为解决这些问题,首先总结出二部图和MLDM算法的三个主要特点:(1)在大多数MLDM算法中,顶点数值是一个多元素的向量;(2)对于二部图而言,其两个顶点子集中的顶点数通常相差巨大;(3)在单个顶点子集内,顶点的度通常展现出幂律分布。基于以上特点,提出了一种图分割方法GraBi,先对二部图进行纵向分割,再进行横向分割,以取得一个高质量的图分割。首先,在纵向分割中,GraBi将每个向量化的顶点切分为若干个顶点块,从而将二部图切分为若干层。然后,在横向分割中,GraBi优先分配每层中较大顶点子集中的顶点块,并将这些顶点块分解为一个或多个子顶点块。最后,GraBi使用一系列哈希函数将子顶点块均匀地分配到计算节点上。实验结果表明,GraBi的算法执行速度分别是现有三种图分割方法Hybrid-cut、Bi-cut和3D-partitioner的3.12倍、3.41倍和1.30倍。