基于集成学习的计算集群作业时长预测与调度方法

摘要

【目的】本文的研究是为了提升作业时长预测的准确度,改善作业回填调度的性能,进而提高计算集群的计算资源利用率。【应用背景】作业调度在提升计算集群计算资源利用率方面发挥着重要作用,而作业时长预测是作业回填调度策略的关键判断依据。【方法】本论文基于集成学习方法对计算集群作业时长进行预测,集成了支持向量回归、随机森林、梯度提升回归树和自动机器学习等算法,并且采用本论文预测的作业时长进行了作业回填调度实验。【结果】采用本方法分别在HPC2N、CEA Curie和KIT FH2三个典型数据集上进行了测试,作业时长预测值的均方根误差比用户预估方法分别降低60.30%、51.91%、63.51%,比线性回归方法分别降低44.37%、31.98%、52.69%。【结论】作业回填调度模拟实验结果表明,本方法能够大幅提升作业时长预测的准确度,作业平均等待时间比用户预估方法分别降低9.07%、8.80%、1.83%,并且能够改善作业回填调度的性能,平均有界减速值比用户预估方法分别降低7.72%、0.96%、9.05%,提高了计算集群的计算资源利用率。

关键词: 集成学习; 计算集群; 作业时长预测; 回填调度策略

引言

作业调度在计算集群进行高性能计算时发挥着重要作用。计算集群需要高效的作业调度策略,计算集群的作业才能够被更好的分配,计算集群的资源利用率才能实现最大化。作业调度策略[1]的相关研究已经广泛地被学者所重视,作业回填调度策略中的关键判断依据是对作业时长的预测。

传统的作业时长预测方法很难达到较高的准确度。传统的作业时长预测方法包括基于用户预估的方法和基于传统的线性回归方法。由于作业在实际运行中存在的大量不可控因素,所以基于用户预估的方法会受到许多随机因素的影响,预测得到的作业时长准确度不够。而基于传统的线性回归方法对作业时长进行预测时,很难利用大量的作业历史记录,缺乏对先验知识的学习。因此这两种方法都不能精准地预测作业的运行时长。

本论文是基于集成学习的方法,来进行作业时长的预测。集成学习是通过构建多个学习器来完成学习任务的,它往往采用某种策略将个体学习器结合起来,主要策略有平均法、投票法和学习法等。本论文采用基于集成学习的方法进行作业时长的预测,主要优势是能够把多个方法的预测结果进行结合,解决单一方法无法预测到最优值的问题。除此之外,本论文在数据处理部分,还把作业的运行时特征与原始特征进行融合,筛选出与作业时长相关性较大的特征。本论文在三个计算集群的数据集上进行了实验,作业时长预测值的均方根误差比用户预估方法和线性回归方法都显著降低,这说明本方法的预测值更加准确。在作业回填调度实验中,作业平均等待时间和平均有界减速值比用户预估方法明显降低。这说明使用本方法预测的时长进行作业回填调度,计算集群的计算效率更高。

本文的组织结构如下:第一部分是相关工作;第二部分是整体架构,该方法集成了支持向量回归、随机森林、梯度提升回归树和自动机器学习TPOT模型;第三部分是数据处理,包括数据获取、数据清洗、数据挖掘等;第四部分是模型训练,包括误差评估和参数调优;第五部分是实验和结果分析;最后是结论和展望。

1 相关工作

作业时长预测是指对某个作业执行的时间长短进行预测。对作业时长的预测目前主要有三种方法:基于代码的预测方法、基于传统数学公式的预测方法、基于集成学习的预测方法。本论文采用基于集成学习的方法对作业时长进行预测。

1.1 基于代码的预测方法

基于代码的预测方法,是根据用户之前运行程序所使用的代码进行预测。根据代码中的执行逻辑以及代码的长度,对接下来的作业执行时长进行预测。Wang等人[2]提出的混合框架能够准确地估计在GPU上运行的 OpenCL内核的性能。Amaris等人[3]提出了BSP方法,通过研究程序在GPU上的运行时间,进而预测作业的执行时间。然而,这种方法需要用户提供源代码,并且需要特定的专家领域知识,在不同类型的运行环境下,作业脚本不能够很好地进行迁移。

1.2 基于传统数学公式的预测方法

基于传统数学公式的预测方法,是通过分析作业历史日志的统计学规律,利用传统数学公式对作业的运行时长进行建模。Lublin等人[4]根据每个时间段内平均到达的作业数量,来获得作业在工作日运行的周期属性,并采用伽马分布来对作业的运行时长进行模拟。Li等人[5]通过分析作业请求资源和内存利用率之间的关系,综合进行分析,进而预测作业时长。但是,上述这些方法都高度依赖于作业的并行性质,并且是基于线性相关关系来进行作业时长预测,因此很难进行准确的作业时长预测。

1.3 基于集成学习的预测方法

集成学习是通过构建和组合多个机器学习模型来完成学习任务的一种方法。基于集成学习的预测方法能够避免单个机器学习模型泛化性差的问题。前人的研究大多基于单个学习器对作业时长进行预测。Guo等人[6]采用集成学习的方法对不平衡数据集进行测试。Pinel等人[7]通过深度神经网络,预测GPU加速器上每个训练批次的执行时间,来进行作业时长的预测。Rezaei等人[8]根据作业提交时间的先验概率分布来预测作业时长。Wu等人[9]使用贝叶斯分类器作为上层方法,并综合各个子方法的投票结果进行作业时长的预测。Wang等人[10]使用径向基网络对作业之间的相似度进行建模。Xu等人[11]通过SVR回归技术对相似作业的执行时长进行建模。以上这些方法都是基于单个学习器来进行预测的,但是单个学习器由于自身预测方法的局限性,往往不能够充分地学习数据的特征。本论文基于集成学习的方法进行预测,采用支持向量回归、随机森林、梯度提升回归树和自动机器学习进行集成学习,能够更加充分地学习到数据的特征。

2 整体架构

整体架构包括三部分,第一部分是特征构造与筛选,第二部分是方法集成,第三部分是时长预测与作业调度,如图1所示。第一部分将作业原始特征与作业运行时特征相结合,然后筛选出相关性较高的特征。第二部分把支持向量回归、随机森林、梯度提升回归树和自动机器学习方法的结果进行平均,然后采用bagging方法得到最终值。因为作业时长的预测值不是二分类问题,而是连续值问题,所以选择支持向量回归和梯度提升回归树。选择随机森林是为了提取多种决策树学习到特征。选择自动机器学习是为了更加快速的得到超参数的值。然后采用Bagging方法得到最终的结果值。Bagging方法的主要策略是先分别训练几个不同的模型,然后综合所有模型的输出结果。第三部分先使用训练好的模型进行作业时长预测,然后使用预测得到的作业时长进行作业调度。

1

1   整体架构图

Fig.1   Overall architecture diagram


 

2.1 特征构造与筛选

第一部分是特征构造与筛选。特征构造是为了让数据覆盖面更广,特征筛选是为了去除冗余特征。因为作业的提交具有时序性质,并且是持续不断进行的,所以需要作业运行时的特征。但是计算中心SWF格式数据集并没有包含作业运行时的特征,所以本论文根据作业的提交时间以及计算中心的作业设置,采用作业模拟器进行模拟。通过模拟之后找到了作业运行时的特征,并与作业原始SWF格式的特征进行合并,最终构造得到总特征。特征筛选能够有效地减少数据的维度,加速方法的训练。因为特征构造阶段得到的特征中有部分相关特征,也有部分无关特征和冗余特征。这些无关特征和冗余特征不仅会减弱算法的效果,而且会减慢方法的训练。本论文使用过滤法将它们删减掉。

2.2 方法集成

第二部分是方法集成。本论文选择支持向量回归、随机森林、梯度提升回归树和自动机器学习TPOT[12-13]进行集成,原因如下。

支持向量回归(support vector regression, SVR)被选择,是因为作业日志特征和作业运行时长之间不是简单的线性关系,而是非线性关系。支持向量回归算法与一般的回归方法不同的是,该算法中仅有支持向量参与损失的计算。在带有软间隔的支持向量机回归算法中,落在间隔内的样本被认为是预测正确的,并不参与损失的计算,只有落在间隔外的样本参与计算。支持向量回归算法的计算复杂性仅仅取决于支持向量的个数。并且对于非线性的问题,支持向量回归算法能够使用核函数的方法,将高维空间映射到低维空间。从算法的理论上来讲,支持向量机算法得到的解为全局最优解。因此,本论文选择支持向量回归方法提取作业日志特征中的高维数据。

随机森林(decision tree, DT)被选择,是因为树结构对于缺失值不太敏感,并且树结构具有较好的可解释性。随机森林算法通过训练多棵决策树,并将这些决策树的预测结果进行整合,得到最终的预测结果。随机森林算法的随机两个字主要体现在两个方面。一方面体现在训练每一个子树的时候,所选择的分裂属性都是随机选择的。而决策树算法划分特征时按照一定的准则,选择最优特征进行划分。另一方面主要体现在,随机地选择训练数据。随机森林算法在模型训练的时候,从训练数据集中有放回地抽样,进而确定训练每棵决策树所需要的数据。因此,本文使用随机森林算法建立回归树,并将多棵树的预测结果进行整合。

梯度提升回归树(Gradient Boosting Regression Decision Tree, GBRT)被选择,是因为该算法中的每一棵树,都是针对上一棵树的拟合残差进行计算的,能够沿着损失函数的负梯度方向进行。梯度提升回归树在训练的时候会为每棵树选择一个权重值,来控制模型更新,通过每一个小部分的迭代逐步找到最优解。因此,本论文采用梯度提升回归树进行作业日志特征之间的各种组合。

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗伯特之技术屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值