一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

Gaia系统中的面向图迭代作业的运行时间预测系统及方法与流程

2021-11-09 22:52:00 来源:中国专利 TAG:

gaia系统中的面向图迭代作业的运行时间预测系统及方法
技术领域
1.本发明涉及分布式大数据计算技术领域,具体涉及一种gaia系统中的面向图迭代作业的运行时间预测系统。


背景技术:

2.gaia系统是一个基于多计算模型混合并存的高时效、可扩展的新一代大数据计算系统。在自适应、可伸缩的大数据存储、批流融合大数据计算、高维大规模机器学习和高时效大数据智能交互向导等大数据分析系统的几个核心层面,解决一系列关键技术问题,构建自主可控的高时效、可伸缩的新一代大数据分析系统,掌握国际领先的大数据分析系统核心技术。
3.迭代计算通常是机器学习和图处理算法的核心部分,即一个或多个步骤被重复执行,直到满足收敛标准,在推荐系统、数据挖掘等各类应用中都普遍存在。而且随着互联网技术的高速发展,各种场景下的数据集规模日益增多,使得在工业和科学领域上使用分布式计算框架进行迭代计算已经变得非常普遍,像gaia等分布式计算系统都允许用户在计算机集群上进行迭代计算来分析大规模图数据集。gaia系统通过定义一个步函数并将其嵌入到一个特殊的迭代算子中来支持迭代计算,而且进一步支持增量迭代。为了维护基于dag的运行时和调度器,gaia通过建立迭代"头"和"尾"任务以及互相连接的反馈边来构建迭代通道,图1展示了一个gaia迭代程序的结构。
4.在分布式计算框架上运行的图迭代作业大都需要遵守服务级目标,因为外部应用通常需要及时反馈的分析结果,例如twitter公司明确要求在十分钟内完成对tb级日志数据索引的搜索和查询,时延太高会违反与用户签订的服务水平协议。在大多数情况下,用户往往会过度地为图迭代作业进行资源供应,这导致集群整体的资源利用率较低,而且产生了庞大的集群运维成本,特别地,在最差的情况下,即使使用剩余的全部资源也不能够保证该作业在要求的时限内完成,而且这些图迭代作业又往往是反复被执行的。
5.gaia系统虽然相对于其他分布式框架具有极高的迭代计算效率,但是并不会将图迭代作业的时限要求作为资源调度的依据,所以为了满足图迭代作业的时限要求并且能及时优化其资源供应,预测图迭代作业在分布式计算框架上的运行时间是目前亟需解决的。
6.但是在执行前期对分布式图迭代作业的运行时间或者资源需求进行估计是很困难的,因为分布式图迭代作业的运行时间取决于多种因素,包括用户自定义函数的逻辑、程序参数、输入数据集以及系统配置等,而且像gaia系统支持的增量迭代计算的每次迭代都与上一次迭代的结果存在依赖关系就使得更难获取到上述信息。传统的方法单纯地使用作业历史的执行数据来进行运行时间预测,一部分通过对数据集进行抽样和在少量服务器上运行作业收集数据来训练性能模型预测给定资源配置下作业的运行时间,另一部分则直接进行抽样执行来提取每轮迭代的输入特征进行运行时间预测。这些方法虽然颇有效果,但是都局限在固定配置的集群下进行预测,而且由于获得的数据都是离线数据或者粗略的统计数据,所以预测精度不高。


技术实现要素:

7.有鉴于此,本发明提供了一种gaia系统中的面向图迭代作业的运行时间预测系统,能够不限于固定配置的集群进行图迭代作业的运行时间的预测,且具有较高的预测精度。
8.为达到上述目的,本发明的技术方案为:一种gaia系统中的面向图迭代作业的运行时间预测系统,包括相似度管理模块、作业匹配模块和运行时间预测模块。
9.相似度管理模块包括抽样执行单元、静态相似度计算单元和动态相似度计算单元。
10.抽样执行单元通过偏向随机跳转方法对图数据集进行抽样,获得样本图数据,在样本图数据集上执行迭代算法用于捕获样本图迭代作业的离线特征。
11.静态相似度计算单元通过抽样执行单元捕获的离线特征来计算当前图迭代作业和历史图迭代作业间静态相似度。
12.动态相似度计算单元通过对图迭代作业真正执行中捕获到的统计信息来计算当前图迭代作业和历史图迭代作业间的动态相似度。
13.相似度管理模块将计算得到的静态相似度和动态相似度送入作业匹配模块。
14.作业匹配模块包括相似度评估单元、训练点收集单元和参数训练单元。
15.相似度评估单元构建相似度评估函数,对相似度管理模块送来的静态相似度和动态相似度进行有效性评估,根据有效性评估的结果选出匹配的历史图迭代作业送入运行时间预测模块。
16.训练点收集单元用于收集训练相似度评估函数中参数的训练数据点。
17.参数训练单元利用训练数据点训练得到相似度评估函数的参数送入相似度评估单元。
18.运行时间预测模块通过作业匹配模块所匹配的历史图迭代作业预测当前图迭代作业的剩余运行时间。
19.进一步地,静态相似度计算单元,采用如下方法计算当前图迭代作业job
run
和历史图迭代作业job
comp
间的静态相似度,包括静态计算相似度和静态消息传递相似度。
20.进一步地,静态计算相似度为:
[0021][0022]
其中,s1为当前图迭代作业job
run
和历史图迭代作业job
comp
间的静态计算相似度,图迭代作业job在第i次迭代时的活跃节点比例actvert
i
(job)表示图迭代作业job在第i次迭代时的活跃结点数,totvert
i
(job)表示图迭代作业job在第i次迭代时的总结点数,n表示抽样执行过程中的总迭代次数;图迭代作业job包括当前图迭代作业job
run
和历史图迭代作业job
comp

[0023]
静态消息传递相似度为
[0024][0025]
其中,s2表示当前图迭代作业job
run
和历史图迭代作业job
comp
之间的静态消息传递相似度;图迭代作业job在第i次迭代时传递的消息总量为其中remmsg
i
(job)表示图迭代作业job在第i次迭代时传递的消息数量,表示图迭代作业job在第i次迭代时的消息平均大小,n表示抽样执行过程中的总迭代数。
[0026]
进一步地,动态相似度计算当前图迭代作业job
run
和历史图迭代作业job
comp
间的静态相似度,包括运行时间相似度s3、资源分配相似度s4、收敛相似度s5以及资源利用相似度s6。
[0027]
运行时间相似度s3为
[0028][0029]
其中,step表示作业当前的迭代次数,runtime(job,i)表示图迭代作业job在第i次迭代时的运行时间;图迭代作业job包括当前图迭代作业job
run
和历史图迭代作业job
comp

[0030]
资源分配相似度为:
[0031][0032]
其中,step表示作业当前的迭代次数,cons
avg
(job,step)表示图迭代作业job从开始到当前执行的所有迭代使用的容器数量的平均值;图迭代作业job包括当前图迭代作业job
run
和历史图迭代作业job
comp

[0033]
收敛相似度为:
[0034][0035]
其中,workset(job,i)代表图迭代作业job在第i次迭代时主动处理的数据数;
[0036]
资源利用相似度为
[0037][0038]
其中,cons是图迭代作业所使用的容器数量;rsutil
job
[hw,step,i]表示图迭代作业执行到第step次迭代时在容器i中的硬件设备hw的平均利用率。
[0039]
进一步地,相似度评估单元构建的相似度评估函数具体为:
[0040]
平均最优精度函数h(t)和最优相似度占比函数n(t);
[0041]
h(t):=avg{acc|(dos,acc)∈p,dos≥t};
[0042]
n(t):=|{acc|(dos,acc)∈p,dos≥t}|/|p|;
[0043]
其中acc为运行时间预测系统的预测精度;dos为两个图迭代作业的整体相似度,为所有单项相似度的加权平均值,所有单项相似度的权重值组成权重向量;t为相似度阈值;p为由一组模拟点(dos,acc)组成的模拟点集;其中权重向量和相似度阈值即为相似度评估函数的参数。
[0044]
进一步地,训练点收集单元首先对历史图迭代作业集进行n次有序且不重复地抽取,每次从中抽取2个图迭代作业,分别为第一图迭代作业j
i
和第二图迭代作业k
i
,i=1,2,3,...,n。
[0045]
抽取的第一图迭代作业j
i
正在运行且刚执行完第m∈[1,m
i
]次迭代,m
i
是图迭代作业j
i
的最大迭代次数。
[0046]
抽取的第二图迭代作业k
i
是与j
i
相匹配的历史作业,基于抽取的2个图迭代作业间的相似度通过运行时间预测模块预测出正在运行的图迭代作业j
i
的剩余运行时间,而第一图迭代作业j
i
真实的剩余运行时间是已知的,通过使用不同的当前图迭代作业和匹配的历史图迭代作业并假设当前图迭代作业处于不同的迭代次序,则计算得到一系列元素形式为(predict(w),actual)的集合p(w)来作为训练数据点;其中predict(w)是以w作为权重向量后预测出的剩余执行时间,actual是当前图迭代作业的真实剩余执行时间。
[0047]
参数训练单元为当前正在运行的图迭代作业找到一个合适的相似度阈值t和一个相似度权重向量w=(w1,...,w6),使得相似度评估单元中的相似度评估函数h(t)和n(t)的值都大于设定的阈值,以保证当前图迭代作业的匹配结果数量大于设定阈值。
[0048]
进一步地,运行时间预测模块包括单个预测单元和最终预测单元;单个预测单元基于匹配的单个历史作业的来对当前图迭代作业的运行时间进行预测,得到一系列单个预测估计值,组成预测时间估计集合并输出至最终预测单元。
[0049]
最终预测单元基于预测估计集,通过对预测估计集中的所有估计值进行加权平均合并成一个最终预测值;权重则使用匹配执行时每个历史图迭代作业对应的整体相似度值。
[0050]
本发明还提供了一种gaia系统中面向图迭代作业的运行时间预测方法,预测过程如下:
[0051]
步骤1:获取历史图迭代作业集、初始输入的数据集、待预测图迭代作业及其作业参数和迭代终止条件;
[0052]
步骤2:抽样执行单元对输入数据集进行抽样,抽样比为10%,然后按抽样比对待预测的图迭代作业的收敛参数进行缩放,缩放后对参数进行初始化;
[0053]
步骤3:将待预测图迭代作业的数据源设置为抽样后的样本集,将初始迭代次数设置为0,然后执行该预测图迭代作业,并将每次迭代过程中捕获到的统计信息存储到内存数据库中;
[0054]
步骤4:根据步骤3中捕获的统计信息计算待预测图迭代作业和历史图迭代作业集中每一个作业间的静态相似度;
[0055]
步骤5:重新获取待预测图迭代作业的作业参数以及迭代终止条件,并将参数、静态相似度和动态相似度初始化;将待预测图迭代作业的数据源设置为初始输入的数据集,将迭代次数设置为0;
[0056]
步骤6:迭代次数为0时,则根据步骤4中计算的静态相似度输出与待预测图迭代作业相匹配的历史图迭代作业,然后运行时间预测模块根据匹配出的历史图迭代作业计算出待预测图迭代作业运行时间的静态预测值;
[0057]
步骤7:运行待预测图迭代作业,对输入的数据进行迭代计算,得到待预测图迭代作业和历史图迭代作业集中每一个图迭代作业间的动态相似度;
[0058]
步骤8:作业匹配模块根据步骤4中计算出的静态相似度和步骤7中计算出的动态相似度,输出与待预测图迭代作业相匹配的历史图迭代作业,然后根据匹配出的历史图迭代作业计算出待预测图迭代作业运行时间的动态预测值;
[0059]
步骤9:判断迭代次数或者迭代输出结果是否满足迭代终止条件,如果不满足重复执行步骤7,如果满足则执行步骤10。
[0060]
步骤10:计算不同迭代下对待预测图迭代作业运行时间的预测偏差,预测偏差最小的那个动态预测值即为待预测图迭代作业的运行时间最终预测值。
[0061]
进一步地,步骤7采用如下步骤7.1~步骤7.4执行:
[0062]
步骤7.1:迭代次数加1。
[0063]
步骤7.2:在gaia集群的每个节点上并行执行迭代步函数,每个节点执行完毕后采用广播的方式将每个节点上进行数据同步,保证不同节点上数据的一致性。
[0064]
步骤7.3:数据同步完成后,将本次迭代过程中捕获的统计信息追加到内存数据库中进行更新。
[0065]
步骤7.4:根据步骤7.3中更新后的统计信息计算待预测图迭代作业和历史图迭代作业集中每一个图迭代作业间的动态相似度。
[0066]
有益效果:
[0067]
本发明提供的一种gaia系统中的面向图迭代作业的运行时间预测方法,在作业执行前通过抽样执行来快速捕捉当前图迭代算法的离线特征,包括收敛特征和每次迭代的关键输入特征;在作业执行过程中持续捕捉运行时特征,包括作业参数、资源利用情况以及详细的统计数据;定义了作业间的相似度来作为作业匹配和最终预测值计算的依据,主要包括通过抽样执行捕捉到的静态相似度以及真实执行捕捉到的动态相似度。核心匹配算法可通过制定的相似度评价标准来对算法的特定参数进行训练来使得迭代作业能够自动适应各种相似度。这是一种端对端的运行时间预测方法,综合了图迭代作业的离线特征和运行时特征,能够在较低的训练开销下准确地预测分布式图迭代作业的运行时间。
附图说明
[0068]
图1为本发明背景技术提供的gaia系统中支持的迭代模型架构图;
[0069]
图2为本发明实施例提供的运行时间预测方法中的预测流程图;
[0070]
图3为本发明实施例提供的运行时间预测系统在gaia系统上的系统架构图;
[0071]
图4为本发明实施例提供的运行时间预测方法的组织架构图;
[0072]
图5为本发明实施例提供的运行时间预测系统对多种迭代作业的预测相对误差分布图;
[0073]
图6为本发明实施例提供的运行时间预测系统对多种迭代作业的平均预测相对误差。
具体实施方式
[0074]
下面结合附图并举实施例,对本发明进行详细描述。
[0075]
本发明提供了一种gaia系统中的面向图迭代作业的运行时间预测系统,包括:相似度管理模块、作业匹配模块和运行时间预测模块。
[0076]
相似度管理模块包括抽样执行单元、静态相似度计算单元和动态相似度计算单元。
[0077]
抽样执行单元通过偏向随机跳转方法对图数据集进行抽样,获得样本图数据,然后对于像pagerank这样的收敛阈值会根据数据集大小而改变的迭代算法需要采用一种缩放函数来对其参数进行调整,缩放函数t的形式可描述为如下形式:
[0078][0079]
其中,conf
s
=>conf
g
表示配置参数的映射,conf配置参数,s原图,g抽样后的样本图,conv
s
=>conv
g
表示收敛参数的映射,sr为抽样比。然后在抽样数据集上快速执行经过参数缩放后的迭代算法来捕获该样本图迭代作业的离线特征。
[0080]
静态相似度计算单元通过抽样执行单元捕获的特征信息来计算我们在综合考虑迭代算法的执行过程的基础上定义的静态相似度。该静态相似度为当前图迭代作业job
run
和历史图迭代作业job
comp
间的相似度,包括以下2种:
[0081]
(1)计算相似度。在计算阶段,输入图数据的每个顶点都要用于执行用户所定义的迭代算法逻辑,对于大规模迭代算法来说,每个顶点进行一次计算的成本是固定的,那么运算阶段所花费的时间与待处理的消息数量成正比,也即与活跃的邻居结点数成正比。则计算相似度被定义为
[0082][0083]
其中,actvert
i
(job)表示作业在第i次迭代时的活跃结点数,totvert
i
(job)表示作业在第i次迭代时的总结点数,n表示抽样执行过程中的总迭代次数。
[0084]
(2)消息传递相似度。由于在消息传递阶段来自不同处理器的消息需要通过网络进行发送并添加到目的节点的内存,所以该阶段的运行时间与远程消息的数量和大小成正比,特别地,gaia系统的内存共享使得本地消息的通信代价可忽略不计。则消息传递相似度被定义为
[0085][0086]
其中,remmsg
i
(job)表示作业在第i次迭代时传递的消息数量,表示作业在第i次迭代时的消息平均大小,n表示抽样执行过程中的总迭代数。
[0087]
动态相似度计算单元通过对图迭代作业真正执行中捕获到的统计信息来计算我们在综合考虑领域知识和实验的基础上定义的动态相似度。同理,该动态相似度也为当前图迭代作业和历史图迭代作业间的相似度,这些动态相似度涵盖了图迭代作业在运行时层的整个过程。包括以下4种:
[0088]
(1)运行时间相似度。运行时间相似度比较的是图迭代作业从开始直到当前执行的各次迭代的运行时间。对于当前正在执行的图迭代作业来说,假设已经执行完成的迭代在运行时间上与历史图迭代作业有很大的相似度,那么我们有理由认为剩余迭代的运行时间也极有可能相似。运行时相似度是通过计算两个图迭代作业相对应的每次迭代的运行时间偏差的平均值得到的。运行时相似度被定义为
[0089][0090]
其中,step表示作业当前的迭代次数;
[0091][0092]
runtime(job,i)表示图迭代作业在第i次迭代时的运行时间。
[0093]
(2)资源分配相似度。资源分配相似度比较的是图迭代作业从开始直到当前执行的所有迭代使用的容器数量。就像在3.2小节中介绍的那样,这里的容器是资源管理系统对cpu内核数、内存、磁盘、网络带宽等基础计算资源的抽象表示。资源分配相似度可以充分利用资源管理系统的资源分配策略来反馈图迭代作业在执行过程中的性能消耗。资源分配相似度被定义为:
[0094][0095]
其中,step表示作业当前的迭代次数,cons(job,i)表示图迭代作业在第i次迭代所使用的容器的数量,cons
avg
(job,step)表示图迭代作业从开始到当前执行的所有迭代使用的容器数量的平均值。
[0096]
(3)收敛相似度。在不考虑分布式集群的并行能力以及数据分区影响的前提下,图迭代作业的收敛行为主要取决于输入数据集和系统参数。我们采用图迭代作业主动处理的数据的数量来直观地衡量其迭代行为,并且通过计算两个图迭代作业从开始执行直到当前状态的每次迭代时主动处理的数据数的偏差的平均值来得到收敛相似度。收敛相似度被定义为:
[0097][0098][0099]
其中,step表示表示作业当前的迭代次数,workset(job,i)代表图迭代作业在第i次迭代时主动处理的数据数。
[0100]
(4)资源利用相似度。资源管理系统会对迭代应用程序进行监控以及监督容器的生命周期管理,并通过心跳返回每个容器中这些资源的利用情况。然后我们根据返回的信息计算图迭代作业执行过程中容器和迭代次数两个角度下的资源利用率的算数平均值,并将这些平均值作为图迭代作业的状态维护在一个三维数组rsutil
job
[hw,step,containerid]中,该数组的三个维度从低到高分别表示系统硬件设备,迭代次数以及容器的编号,即rsutil
job
[i,j,k]表示图迭代作业执行到第j次迭代时在容器k中的硬件设备i的平均利用率。资源利用相似度被定义为:
[0101][0102][0103]
其中,step表示作业当前的迭代次数,cons是图迭代作业所使用的容器数量。公式8仅适用于使用相同数量容器的迭代,因为它是通过计算在每次迭代时成对的容器下的资源利用率的相对平均偏差来进行的。对于使用不同数量容器的迭代,直接计算它们在所有容器下的平均偏差。
[0104]
作业匹配模块包括相似度评估单元、训练点收集单元、参数训练单元。
[0105]
相似度评估单元通过建立评估函数来保证上述相似度管理模块的有效性。具体来说,对于历史图迭代作业集h,我们假设历史作业j(j∈h)当前正在运行,并且刚刚执行完第i次迭代,假设历史作业k(k∈handk≠j)已经在作业j开始运行之前就运行完毕,那么我们就可以计算出这两个作业在执行完第i次迭代时的作业相似度s={s1,...,s7},s1到s5分别对应作业的七项单个相似度。最后我们定义作业j和作业k的整体相似度dos为各个单项相似度的加权平均值:
[0106][0107]
其中,参数w
i
(i=1,...,6)分别对应作业的各个单项相似度s
i
的权重。然后假设本文的运行时间预测系统根据它们之间的相似度预测出了作业j的剩余运行时间那么我们就能计算出预测精度acc。因此通过多次重复上述模拟操作,我们最终可以得到一组点(dos,acc)的集合p。
[0108]
显然,p中的点表达了图迭代作业相似度与最终预测精度的关系。我们根据上述模拟得到的集合p定义了相似度评估标准:
[0109]
h(t):=avg{acc|(dos,acc)∈p,dos≥t}
ꢀꢀꢀ
(11)
[0110]
n(t):=|{acc|(dos,acc)∈p,dos≥t}|/|p|
ꢀꢀꢀ
(12)
[0111]
评估标准中的t是相似度的阈值,当前图迭代作业与所匹配的历史作业的整体相似度应该大于阈值t。具体来看,平均最优精度函数h(t)用于计算集合p中所有大于特定阈值t的相似度对应的精度的平均值。然后,最优相似度占比函数n(t)表示集合p中所有相似度大于特定阈值t的点所占的份额。
[0112]
训练点收集单元是用于收集训练相似度权重向量的数据点。首先,对历史图迭代作业集进行n次有序且不重复地抽取,每次从中抽取2个图迭代作业j
i
和k
i
(i=1,2,3,...,
n),并且假设作业j
i
正在运行且刚执行完第(m∈[1,m
i
])次迭代,m
i
是图迭代作业j
i
的最大迭代次数。然后假设作业k
i
是与j
i
相匹配的历史作业,这样就可以基于两个作业间的相似度通过运行时间预测模块预测出正在运行的图迭代作业j
i
的剩余运行时间,而作业j
i
真实的剩余运行时间是已知的,那么通过使用不同的当前作业和匹配的历史作业并假设当前作业处于不同的迭代次序就可以经过计算得到一系列元素形式为(predict(w),actual)的集合p(w)来作为训练点。其中predict(w)是以w作为权重向量后预测出的剩余执行时间,actual是当前图迭代作业的真实剩余执行时间。
[0113]
参数训练单元为当前正在运行的图迭代作业找到一个合适的相似度阈值t和一个相似度权重向量w=(w1,...,w6),使得相似度评估单元中的函数h(t)和n(t)的值都处于较高水平,来保证当前图迭代作业有足够多的匹配结果来进行运行时间的预测。
[0114]
训练相似度阈值。相似度阈值用来决定历史图迭代作业集中的哪些作业将被匹配。除了使用全局阈值t来剔除整体相似度不够高的历史图迭代作业以外,对于图迭代作业的各个单项相似度s
i
(i=1,...,6)均设置了对应的阈值t
i
,用于剔除在某个维度下相似度不够高的历史作业。参数训练单元使用相似度评估标准来对全局阈值t和各个单项阈值t
i
进行训练。具体来说,它通过设置最小相似度占比n
min
和最低平均精度h
min
来避免在参数搜索过程中因阈值过高而导致无法筛选出足够的历史作业,具体条件如下所示。
[0115]
t=max{t∈[0,1]|h(t)≥h
min
∧n(t)≥n
min
}
ꢀꢀꢀ
(13)
[0116]
t
i
=max{t
i
∈[0,1]|h(t
i
)≥h
min
∧n(t
i
)≥n
min
}
ꢀꢀꢀ
(14)
[0117]
训练相似度权重向量。为了能够快速地得到有效的超参数,我们通过采用hyperopt工具(训练参数向量的工具python)来对权重向量w进行分布式异步优化,数据集使用数据点收集单元收集的集合p(w),并使用训练集中的平均相对预测误差作为损失函数o:
[0118][0119]
其中predict(w)是以w作为权重向量后预测出的剩余执行时间,actual是当前图迭代作业的真实剩余执行时间。
[0120]
运行时间预测模块主要包括单个预测单元和最终预测单元,通过作业匹配模块所匹配的历史图迭代作业来预测当前图迭代作业的剩余运行时间,具体预测过程如图2所示。
[0121]
单个预测单元主要基于匹配的单个历史作业的来对当前图迭代作业的运行时间进行预测。首先,假设当前作业将与匹配的历史作业有相同的迭代次数。由于集群配置和程序逻辑通常不会存在完全相同的情况,造成了当前作业可能与历史作业虽然相似度已经很高,但在运行时间上仍略有差异。为此,通过单个预测单元可计算当前图迭代作业与每个匹配的历史作业的相对平均偏差系数δ,当前作业job
run
与匹配的第i个历史作业执行到第s次迭代的相对平均偏差系数计算过程如下:
[0122][0123]
其中,和分别代表当前作业和历史作业在第k次迭代的真实运行时间。
[0124]
假设截至当前迭代的运行时间的差异系数会维持到作业执行结束,则基于单个匹配的历史作业进行运行时间预测的计算如下:
[0125][0126]
单个预测单元的输出为一个估计集runtime
run
,其中的元素是一系列通过单个预测得到的对当前作业运行时间的估计值。end最大迭代次数。
[0127]
最终预测单元基于我们在上一步中计算出的估计集,通过对基于匹配的历史作业的单个估计值进行加权平均来合并成一个最终预测值,权重则使用匹配执行时每个历史作业对应的整体相似度值。综上,与当前作业相似度大的历史作业对最终估计值的贡献也大,则当前图迭代作业在执行到第s次迭代时的运行时间预测值runtime
s
的计算过程如下:
[0128][0129]
其中,dos
i
代表第i个历史作业与当前作业的整体相似度,end为总迭代次数,n为匹配的历史作业数。
[0130]
图迭代作业的运行时间预测方法的具体预测过程如下:
[0131]
步骤1:获取历史图迭代作业集、初始输入的数据集、待预测图迭代作业以及该作业的参数和迭代终止条件。
[0132]
步骤2:抽样执行单元对输入数据集进行抽样,抽样比为10%,然后按抽样比对待预测的图迭代作业的收敛参数进行缩放,缩放后对参数进行初始化。
[0133]
步骤3:将待预测图迭代作业的数据源设置为抽样后的样本集,将初始迭代次数设置为0,然后执行该作业,并将每次迭代过程中捕获到的统计信息存储到内存数据库中。
[0134]
步骤4:静态相似度计算单元根据步骤3中捕获的统计信息计算待预测图迭代作业和历史图迭代作业集中每一个作业间的计算相似度和消息传递相似度。
[0135]
步骤5:重新获取参数以及迭代终止条件,并将参数和六种作业相似度初始化。将待预测图迭代作业的数据源设置为初始输入的数据集,将迭代次数设置为0。
[0136]
步骤6:若迭代次数为0,则作业匹配模块根据步骤4中计算的静态相似度输出与待预测图迭代作业相匹配的历史图迭代作业,然后运行时间预测模块根据匹配出的历史作业计算出待预测图迭代作业运行时间的静态预测值,用于短时间内快速把握作业的运行时间。
[0137]
步骤7:运行待预测的图迭代作业,对输入的数据进行迭代计算。
[0138]
步骤7.1:迭代次数加1。
[0139]
步骤7.2:在集群的每个节点上并行执行迭代步函数,每个节点执行完毕后采用广播的方式将每个节点上进行数据同步,保证不同节点上数据的一致性。
[0140]
步骤7.3:数据同步完成后,将本次迭代过程中捕获的统计信息追加到内存数据库中进行更新。
[0141]
步骤7.4:动态相似度计算单元根据步骤7.4中更新后的统计信息计算待预测图迭代作业和历史图迭代作业集中每一个作业间的4种动态相似度。
[0142]
步骤8:作业匹配模块根据步骤4中计算出的静态相似度和步骤7.4中计算出的动态相似度来输出与待预测图迭代作业相匹配的历史图迭代作业,然后运行时间预测模块根
据匹配出的历史作业计算出待预测图迭代作业运行时间的动态预测值。
[0143]
步骤9:判断迭代次数或者迭代输出结果是否满足迭代终止条件,如果不满足重复执行步骤7,如果满足则执行步骤10;
[0144]
步骤10:计算不同迭代下对该图迭代作业运行时间的预测偏差,偏差最小的那个动态预测值即为最终预测值。
[0145]
实施例1:
[0146]
本实施例以如图3所示的集成到gaia系统上的运行时间预测系统来处理pagerank、connected components,sssp,adsorption四种迭代算法为实际的应用场景,上述迭代算法使用的数据集如表1所示。
[0147]
单源最短路径算法(sssp)计算从某一源结点到图中所有其它结点的最短距离。pagerank是著名的网页排名算法,它通过迭代递归计算来更新每个页面节点的重要性得分。adsorption算法根据random walk模型在图中扩散标签,直到标签在图中各结点的分布达到稳定。connected components算法通过迭代性地搜索来找出一个大图中的相互联通的各部分。表1中数据集均来自于真实世界,下载于斯坦福大型网络数据集网站。
[0148]
表1数据集
[0149][0150]
本实施例中,一种gaia系统中的面向图迭代作业的运行时间预测方法,如图4所示,包括:相似度管理模块、作业匹配模块和运行时间预测模块;
[0151]
相似度管理模块包括抽样执行单元、静态相似度计算单元和动态相似度计算单
元。
[0152]
抽样执行单元通过偏向随机跳转方法对数据集进行抽样,然后对于像pagerank这样的收敛阈值会根据数据集大小而改变的迭代算法需要采用一种缩放函数来对其参数进行调整,缩放函数t的形式可描述为如下形式:
[0153][0154]
其中,conf
s
=>conf
g
表示配置参数的映射,conv
s
=>conv
g
表示收敛参数的映射,sr为抽样比。然后在抽样数据集上快速执行经过参数缩放后的迭代算法来捕获该图迭代作业的离线特征。
[0155]
静态相似度计算单元通过抽样执行单元捕获的特征信息来计算我们在综合考虑迭代算法的执行过程的基础上定义的静态相似度。该静态相似度为当前图迭代作业和历史图迭代作业间的相似度,包括以下2种:
[0156]
1、计算相似度。在计算阶段,输入图数据的每个顶点都要用于执行用户所定义的迭代算法逻辑,对于大规模迭代算法来说,每个顶点进行一次计算的成本是固定的,那么运算阶段所花费的时间与待处理的消息数量成正比,也即与活跃的邻居结点数成正比。则计算相似度被定义为
[0157][0158]
其中,actvert
i
(job)表示作业在第i次迭代时的活跃结点数,totvert
i
(job)表示作业在第i次迭代时的总结点数,n表示抽样执行过程中的总迭代次数。
[0159]
2、消息传递相似度。由于在消息传递阶段来自不同处理器的消息需要通过网络进行发送并添加到目的节点的内存,所以该阶段的运行时间与远程消息的数量和大小成正比,特别地,gaia系统的内存共享使得本地消息的通信代价可忽略不计。则消息传递相似度被定义为
[0160][0161]
其中,remmsg
i
(job)表示作业在第i次迭代时传递的消息数量,表示作业在第i次迭代时的消息平均大小,n表示抽样执行过程中的总迭代数。
[0162]
动态相似度计算单元通过对图迭代作业真正执行中捕获到的统计信息来计算我们在综合考虑领域知识和实验的基础上定义的动态相似度。同理,该动态相似度也为当前图迭代作业和历史图迭代作业间的相似度,这些动态相似度涵盖了图迭代作业在运行时层的整个过程。包括以下4种:
[0163]
(1)运行时间相似度。运行时间相似度比较的是图迭代作业从开始直到当前执行
的各次迭代的运行时间。对于当前正在执行的图迭代作业来说,假设已经执行完成的迭代在运行时间上与历史图迭代作业有很大的相似度,那么我们有理由认为剩余迭代的运行时间也极有可能相似。运行时相似度是通过计算两个图迭代作业相对应的每次迭代的运行时间偏差的平均值得到的。运行时相似度被定义为
[0164][0165]
其中,step表示作业当前的迭代次数,runtime(job,i)表示图迭代作业在第i次迭代时的运行时间。
[0166]
(2)资源分配相似度。资源分配相似度比较的是图迭代作业从开始直到当前执行的所有迭代使用的容器数量。就像在3.2小节中介绍的那样,这里的容器是资源管理系统对cpu内核数、内存、磁盘、网络带宽等基础计算资源的抽象表示。资源分配相似度可以充分利用资源管理系统的资源分配策略来反馈图迭代作业在执行过程中的性能消耗。资源分配相似度被定义为:
[0167][0168]
其中,step表示作业当前的迭代次数,cons(job,i)表示图迭代作业在第i次迭代所使用的容器的数量,cons
avg
(job,step)表示图迭代作业从开始到当前执行的所有迭代使用的容器数量的平均值。
[0169]
(3)收敛相似度。在不考虑分布式集群的并行能力以及数据分区影响的前提下,图迭代作业的收敛行为主要取决于输入数据集和系统参数。我们采用图迭代作业主动处理的数据的数量来直观地衡量其迭代行为,并且通过计算两个图迭代作业从开始执行直到当前状态的每次迭代时主动处理的数据数的偏差的平均值来得到收敛相似度。收敛相似度被定义为:
[0170][0171][0172]
其中,step表示表示作业当前的迭代次数,workset(job,i)代表图迭代作业在第i次迭代时主动处理的数据数。
[0173]
(4)资源利用相似度。资源管理系统会对迭代应用程序进行监控以及监督容器的生命周期管理,并通过心跳返回每个容器中这些资源的利用情况。然后我们根据返回的信息计算图迭代作业执行过程中容器和迭代次数两个角度下的资源利用率的算数平均值,并将这些平均值作为图迭代作业的状态维护在一个三维数组rsutil
job
[hw,step,containerid]中,该数组的三个维度从低到高分别表示系统硬件设备,迭代次数以及容器的编号,即rsutil
job
[i,j,k]表示图迭代作业执行到第j次迭代时在容器k中的硬件设备i的平均利用率。资源利用相似度被定义为:
[0174][0175][0176]
其中,step表示作业当前的迭代次数,cons是图迭代作业所使用的容器数量。公式26仅适用于使用相同数量容器的迭代,因为它是通过计算在每次迭代时成对的容器下的资源利用率的相对平均偏差来进行的。对于使用不同数量容器的迭代,直接计算它们在所有容器下的平均偏差。
[0177]
作业匹配模块包括相似度评估单元、训练点收集单元、参数训练单元。
[0178]
相似度评估单元通过建立评估函数来保证上述相似度管理模块的有效性。具体来说,对于历史图迭代作业集h,我们假设历史作业j(j∈h)当前正在运行,并且刚刚执行完第i次迭代,假设历史作业k(k∈handk≠j)已经在作业j开始运行之前就运行完毕,那么我们就可以计算出这两个作业在执行完第i次迭代时的作业相似度s={s1,...,s7},s1到s5分别对应作业的七项单个相似度。最后我们定义作业j和作业k的整体相似度cos为各个单项相似度的加权平均值:
[0179][0180]
其中,参数w
i
(i=1,...,6)分别对应作业的各个单项相似度s
i
的权重。然后假设本文的运行时间预测系统根据它们之间的相似度预测出了作业j的剩余运行时间那么我们就能计算出预测精度acc。因此通过多次重复上述模拟操作,我们最终可以得到一组点(dos,acc)的集合p。
[0181]
显然,p中的点表达了图迭代作业相似度与最终预测精度的关系。我们根据上述模拟得到的集合p定义了相似度评估标准:
[0182]
h(t):=avg{acc|(dos,acc)∈p,dos≥t}
ꢀꢀꢀ
(29)
[0183]
n(t):=|{acc|(dos,acc)∈p,dos≥t}|/|p|
ꢀꢀꢀ
(30)
[0184]
评估标准中的t是相似度的阈值,当前图迭代作业与所匹配的历史作业的整体相似度应该大于阈值t。具体来看,平均最优精度函数h(x)用于计算集合p中所有大于特定阈值t的相似度对应的精度的平均值。然后,最优相似度占比函数n(t)表示集合p中所有相似度大于特定阈值t的点所占的份额。
[0185]
训练点收集单元是用于收集训练相似度权重向量的数据点。首先,对历史图迭代作业集进行n次有序且不重复地抽取,每次从中抽取2个图迭代作业j
i
和k
i
(i=1,2,3,...,n),并且假设作业j
i
正在运行且刚执行完第(m∈[1,m
i
])次迭代,m
i
是图迭代作业j
i
的最大迭代次数。然后假设作业k
i
是与j
i
相匹配的历史作业,这样就可以基于两个作业间的相似度通过作业预测模块预测出正在运行的图迭代作业j
i
的剩余运行时间,而作业j
i
真实的剩余运行时间是已知的,那么通过使用不同的当前作业和匹配的历史作业并假设当前作业处于不同的迭代次序就可以经过计算得到一系列元素形式为(predict(w),actual)的集合p(w)来作为训练点。
[0186]
参数训练单元为当前正在运行的图迭代作业找到一个合适的相似度阈值t和一个
相似度权重向量w=(w1,...,w6),使得相似度评估单元中的函数h(t)和n(t)的值都处于较高水平,来保证当前图迭代作业有足够多的匹配结果来进行运行时间的预测。
[0187]
训练相似度阈值。相似度阈值用来决定历史图迭代作业集中的哪些作业将被匹配。除了使用全局阈值t来剔除整体相似度不够高的历史图迭代作业以外,对于图迭代作业的各个单项相似度s
i
(i=1,...,6)均设置了对应的阈值t
i
,用于剔除在某个维度下相似度不够高的历史作业。参数训练单元使用相似度评估标准来对全局阈值t和各个单项阈值t
i
进行训练。具体来说,它通过设置最小相似度占比n
min
和最低平均精度h
min
来避免在参数搜索过程中因阈值过高而导致无法筛选出足够的历史作业,具体条件如下所示。
[0188]
t=max{t∈[0,1]|h(t)≥h
min
∧n(t)≥n
min
}
ꢀꢀꢀ
(31)
[0189]
t
i
=max{t
i
∈[0,1]|h(t
i
)≥h
min
∧n(t
i
)≥n
min
}
ꢀꢀꢀ
(32)
[0190]
训练相似度权重向量。为了能够快速地得到有效的超参数,我们通过采用hyperopt工具来对权重向量w进行分布式异步优化,数据集使用数据点收集单元收集的集合p(w),并使用训练集中的平均相对预测误差作为损失函数o:
[0191][0192]
其中predict(w)是以w作为权重向量后预测出的剩余执行时间,actual是当前图迭代作业的真实剩余执行时间。
[0193]
运行时间预测模块主要包括单个预测单元和最终预测单元,通过作业匹配模块所匹配的历史图迭代作业来预测当前图迭代作业的剩余运行时间,具体预测过程如图2所示。
[0194]
单个预测单元主要基于匹配的单个历史作业的来对当前图迭代作业的运行时间进行预测。首先,假设当前作业将与匹配的历史作业有相同的迭代次数。由于集群配置和程序逻辑通常不会存在完全相同的情况,造成了当前作业可能与历史作业虽然相似度已经很高,但在运行时间上仍略有差异。为此,通过单个预测单元可计算当前图迭代作业与每个匹配的历史作业的相对平均偏差系数δ,当前作业job
run
与匹配的第i个历史作业执行到第s次迭代的相对平均偏差系数计算过程如下:
[0195][0196]
其中,和分别代表当前作业和历史作业在第k次迭代的真实运行时间。
[0197]
假设截至当前迭代的运行时间的差异系数会维持到作业执行结束,则基于单个匹配的历史作业进行运行时间预测的计算如下:
[0198][0199]
单个预测单元的输出为一个估计集runtime
run
,其中的元素是一系列通过单个预测得到的对当前作业运行时间的估计值。
[0200]
最终预测单元基于我们在上一步中计算出的估计集,通过对基于匹配的历史作业的单个估计值进行加权平均来合并成一个最终预测值,权重则使用匹配执行时每个历史作业对应的整体相似度值。综上,与当前作业相似度大的历史作业对最终估计值的贡献也大,
则当前图迭代作业在执行到第s次迭代时的运行时间预测值runtime
s
的计算过程如下:
[0201][0202]
其中,dos
i
代表第i个历史作业与当前作业的整体相似度,end为总迭代次数,n为匹配的历史作业数。
[0203]
本实施例通过本发明的运行时间预测方法对由上述四种迭代算法在不同数据集下组成的多种图迭代作业的运行时间进行了预测,得到了随着迭代过程不断变化的预测相对误差,如图5所示。可以看到,每种图迭代作业运行时间的预测误差在稳定后基本保持在10%左右,但是在图迭代作业的开始阶段存在短暂的相对误差由低变高的趋势,这是因为在作业运行初期,静态相似度所占比重较大,然而随着迭代开始进行,动态相似度的比重也逐渐上升,但是仍然只能捕获到很少的统计信息,故动态相似度的准确度较低,从而造成了相对误差的上升。随着迭代的进行,用于构建动态相似度的统计信息被捕获到的越来越多,预测的相对误差也越来越低,在总迭代数的25%

30%左右达到最低。在图迭代作业运行末期,由于可预测的剩余运行时间较小,所以即使是很小的绝对误差也会带来很高的相对误差。
[0204]
针对于图5中的每个图迭代作业,本发明通过选取有代表性的样本点来计算该作业的平均相对误差,样本点的选择遵循以下规则:从总迭代次数的5%开始,以20%为步长,取5个样本点。图6显示了每个图迭代作业,即上述4种图迭代算法在每个数据集下的平均相对误差,可以看到,对所有作业进行预测的相对平均误差都在8%左右。
[0205]
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献