一种面向异构服务器结构的图计算负载均衡方法技术

技术编号:18083616 阅读:50 留言:0更新日期:2018-05-31 12:13
本发明专利技术公开了一种面向异构服务器结构的图计算负载均衡方法:根据所有计算节点在一次超级步中处理图计算负载所用的时间,主控节点计算出本次超级步中所有处理时间的变异系数,若连续两次超级步中的变异系数大于预设的阈值,则判定各计算节点在运行时的图计算负载不均衡,需要在本次超级步结束后对计算节点上的图计算负载重新分配,否则所有计算节点将继续执行下次超级步。本发明专利技术方法利用顶点迁移来平衡每次超级步中计算节点间的处理时间,从而有效地降低每次超级步中所有计算节点的同步开销,缩短图计算任务的运行时间,并提高各计算节点运行时的资源利用率。

【技术实现步骤摘要】
一种面向异构服务器结构的图计算负载均衡方法
本专利技术属于图计算
,更具体地,涉及一种面向异构服务器结构的图计算负载均衡方法。
技术介绍
分布式图计算技术被广泛应用在社交网络分析、自然语言处理、网页信息检索等众多领域,其组成体系通常包含三个部分:图算法、图数据集和图计算系统。大多数图计算系统采用BSP(BulkSynchronizationBarrier)计算模型,在此模型下,图计算过程通常被分为若干次迭代,每一次迭代又称为一个超级步。在每次超级步中,激活顶点根据在上次超级步中接收的消息更新顶点数值,并将更新后的数值以消息的形式发送给对应的邻居顶点。相邻的两次超级步间设有同步障碍,以保证所有激活顶点在下次超级步开始前已经完成当前超级步中的数值更新操作。现有的图计算系统出于负载均衡的考虑,在计算节点导入图数据集阶段为所有计算节点分配数量相当的顶点。然而,当前的数据中心或集群通常采用异构的服务器结构,这使得不同处理能力的计算节点在每次超级步中的处理时间不同,即处理能力强的计算节点在每次超级步中总是比处理能力弱的计算节点优先完成本地计算,并在同步障碍处等待同步。此外,在处理图计算任务的过程中,分布在各计算节点上的激活顶点数会发生变化,因而各计算节点在每次超级中的负载量也会动态变化。以上两个原因,导致大多数图计算系统很难保证各计算节点在每次超级步中的处理时间是均衡的。针对处理图计算任务时计算节点间负载不均衡的问题,少数图计算系统(例如Mizan和GPS)提出采用顶点迁移的方法来均衡每次超级步中各计算节点上的负载。然而,这些图计算系统通常利用顶点级的参数(例如顶点在一次超级步中接受的消息数)来拟定迁移计划,从而导致迁移效果不理想,计算节点间的负载在顶点迁移后仍然不均衡。另外,这些图计算系统通常采用较敏感的迁移策略,即使检测到轻微的负载不均衡也会执行顶点迁移,导致顶点迁移的开销(如迁移时间、资源占用等)远大于负载均衡的收益。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供一种面向异构服务器结构的图计算负载均衡方法,用于均衡分布式图计算系统中所有计算节点在每次超级步中的处理时间,从而降低计算节点在每次超级步中的同步开销,缩短图计算任务的运行时间,解决在现有的异构服务器结构下处理图计算任务时存在的计算节点负载量不均衡和处理时间不同步问题。本专利技术提出的一种面向异构服务器结构的图计算负载均衡方法,包括如下阶段:检测不均衡阶段:在图计算任务运行时,主控节点监测每次超级步中各计算节点的处理时间,并根据本次超级步中所有计算节点处理时间的变异系数和用户预设的阈值,判断各计算节点上的图计算负载是否均衡;所述变异系数为反映一组数据值离散程度的参数;对于一个图算法,如果用户不知道其运行时的特征,即用户对于运行时激活顶点个数的变化未知,则阈值默认为0.10;而对于稳定的图算法,即运行时激活顶点的个数不变,则应该设定一个小于0.10的阈值;而对于不稳定的图算法,即运行时激活顶点的个数持续变化,则应该设定一个大于0.10的阈值;本专利技术默认阈值可以设为0.10,对于不同图算法的具体阈值选取则不在本专利技术的讨论范围内。拟定迁移计划阶段:各计算节点确定各自需要迁移的顶点,主控节点确定这些顶点对应的迁入节点;实施迁移阶段:所有迁出节点采用延迟迁移的方式传输顶点信息到对应的迁入节点上,主控节点更新顶点迁移后的位置信息;所述延迟迁移指迁出节点在本次超级步结束后只对顶点的ID、数值、邻接边表进行迁移,而将尺寸较大的顶点传入消息在迁出节点上本地处理后再进行迁移;顶点的位置信息,指的是顶点当前所在的节点,知道该顶点的位置信息,其它顶点才能向它发送消息。进一步的,所述方法,包括以下步骤:步骤1所有计算节点导入图算法和图数据集;一般而言,图算法和图数据集组成了计算负载;步骤2所有计算节点执行图算法的一次超级步;(图算法通常是系统提供的或用户编写的,图算法用于对图数据集进行信息提取,其提取信息的过程通常可分为若干次超级步);步骤3主控节点判断各计算节点上的图计算负载是否均衡;步骤4若步骤3中判定结果为负载不均衡,则进入拟定迁移计划阶段,转步骤5;否则,转步骤7,所有计算节点进入下一次超级步;步骤5各计算节点确定各自需要迁移的顶点,主控节点确定这些顶点对应的迁入节点;步骤6所有计算节点采用延迟迁移的方式,传输顶点信息到对应的迁入节点上,主控节点更新并汇总顶点迁移后的位置信息;步骤7重复步骤2至步骤6,直至图算法收敛。进一步的,所这步骤3中检测不平衡阶段包括以下子步骤:步骤3-1各计算节点将本次超级步中监测的处理时间发送给主控节点(各计算节点在运行过程中会监测每次超级步中的处理时间);步骤3-2主控节点计算本次超级步中所有处理时间的变异系数CV:其中u为本次超级步中所有计算节点的平均处理时间,N为计算节点的总个数,ti为计算节点i在本次超级步中监测的处理时间;步骤3-3若上次和本次超级步中计算所得的变异系数CV都大于用户预设的阈值CVthr,则主控节点判定各计算节点上的图计算负载不均衡;否则,认定各计算节点上的图计算负载为是均衡的;如果是第一次超级步中,计算所得的CV大于阈值,仍不进行顶点迁移;唯有连续两次超级步中的CV都大于阈值时,才可进行顶点迁移;步骤3-4主控节点将判定的结果发送给所有计算节点。进一步的,所述步骤5中拟定迁移计划阶段包括以下子步骤:步骤5-1主控节点将本次超级步中平均处理时间u发送给各计算节点;步骤5-2各计算节点根据平均处理时间u,判定自身是迁出节点即处理时间大于平均处理时间,还是迁入节点即处理时间小于平均处理时间;若是迁出节点,则计算其需要迁出的边数Eout,并进一步根据Eout确定需要迁出的顶点;迁出的顶点也就是迁入的顶点,这些顶点在迁移过程中从一个计算节点上被转移到了另一个计算节点上;若是迁入节点,则计算其需要迁入的边数Ein;Eout和Ein分别描述了一个计算节点最多能迁出的边数和最多能迁入的边数;步骤5-3计算节点将各自需要迁出或迁入的边数即Eout或Ein发送给主控节点;步骤5-4主控节点根据各计算节点需要迁出或迁入的边数,即Eout或Ein,确定迁移顶点对应的迁入节点;迁出节点上的迁移顶点已经确定了,即步骤5-2的工作,当前主控节点需要确定这些迁移顶点应该被转移到哪些节点上;步骤5-5主控节点将迁移顶点对应的迁入节点信息发送给相应的迁出节点。进一步的,步骤5-2中各迁出节点确定各自需要迁出的顶点时操作如下:各计算节点按照顶点所连接的边数,对其所维护的顶点降序排列(计算节点对一个顶点进行维护,指的是计算节点需要保存该顶点的所有信息,并在每次超级步中对该顶点的数值进行更新操作);当计算节点i接收到主控节点发来的平均处理时间u后,计算本次超级步中其处理时间ti与平均处理时间u的差值Δt=ti-u;当Δt为正时,表示计算节点i的图计算负载高于平均负载水平,该节点需要迁出的边数为Eout=(ti-μ)*EPSi,其中EPSi为计算节点i在本次超级步中平均每秒所处理的边数;计算节点可以统计每次超级步中处理的边数,再用这个边数除以处理时间就可以获得本次超级步中的EPSi;当Δt为负时,表示计算节点i的图计算负载低于平均负载本文档来自技高网
...
一种面向异构服务器结构的图计算负载均衡方法

【技术保护点】
一种面向异构服务器结构的图计算负载均衡方法,其特征在于,包括如下阶段:检测不均衡阶段:在图计算任务运行时,主控节点监测每次超级步中各计算节点的处理时间,并根据本次超级步中所有计算节点处理时间的变异系数和预设的阈值,判断各计算节点上的图计算负载是否均衡;所述变异系数为反映一组数据值离散程度的参数;拟定迁移计划阶段:各计算节点确定各自需要迁移的顶点,主控节点确定这些顶点对应的迁入节点;实施迁移阶段:所有迁出节点采用延迟迁移的方式传输顶点信息到对应的迁入节点上,主控节点更新顶点迁移后的位置信息。

【技术特征摘要】
1.一种面向异构服务器结构的图计算负载均衡方法,其特征在于,包括如下阶段:检测不均衡阶段:在图计算任务运行时,主控节点监测每次超级步中各计算节点的处理时间,并根据本次超级步中所有计算节点处理时间的变异系数和预设的阈值,判断各计算节点上的图计算负载是否均衡;所述变异系数为反映一组数据值离散程度的参数;拟定迁移计划阶段:各计算节点确定各自需要迁移的顶点,主控节点确定这些顶点对应的迁入节点;实施迁移阶段:所有迁出节点采用延迟迁移的方式传输顶点信息到对应的迁入节点上,主控节点更新顶点迁移后的位置信息。2.如权利要求1所述的方法,其特征在于,包括以下步骤:步骤1所有计算节点导入图算法和图数据集;步骤2所有计算节点执行图算法的一次超级步;步骤3主控节点判断各计算节点上的图计算负载是否均衡;步骤4若步骤3中判定结果为负载不均衡,则进入拟定迁移计划阶段,转步骤5;否则,转步骤7,所有计算节点进入下一次超级步;步骤5各计算节点确定各自需要迁移的顶点,主控节点确定这些顶点对应的迁入节点;步骤6所有计算节点采用延迟迁移的方式,传输顶点信息到对应的迁入节点上,主控节点更新并汇总顶点迁移后的位置信息;步骤7重复步骤2至步骤6,直至图算法收敛。3.如权利要求2所述的方法,其特征在于,步骤3中检测是否均衡阶段包括以下子步骤:步骤3-1各计算节点将本次超级步中监测的处理时间发送给主控节点;步骤3-2主控节点计算本次超级步中所有处理时间的变异系数CV:其中u为本次超级步中所有计算节点的平均处理时间,N为计算节点的总个数,ti为计算节点i在本次超级步中监测的处理时间;步骤3-3若上次和本次超级步中计算所得的变异系数CV都大于预设的另一阈值CVthr,则主控节点判定各计算节点上的图计算负载不均衡;否则,认定各计算节点上的图计算负载为是均衡的;步骤3-4主控节点将判定的结果发送给所有计算节点。4.如权利要求2所述的方法,其特征在于,步骤5中拟定迁移计划阶段包括以下子步骤:步骤5-1主控节点将本次超级步中平均处理时间u发送给各计算节点;步骤5-2各计算节点根据平均处理时间u,判定自身是迁出节点还是迁入节点若是迁出节点,则计算其需要迁出的边数Eout,并进一步根据Eout确定需要迁出的顶点;若是迁入节点,则计算其需要迁入的边数Ein;步骤5-3计算节点将各自需要迁出或迁入的边数发送给主控节点;步骤5-4主控节点根据各计算节点需要迁出或迁入的边数,确定迁移顶点对应的迁入节点;步骤5-5主控节点将迁移顶点对应的迁入节点信息发送给相应的迁出节点。5.如权...

【专利技术属性】
技术研发人员:曹强盛丰
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1