Page 128 - 《软件学报》2021年第8期
P. 128
2410 Journal of Software 软件学报 Vol.32, No.8, August 2021
任务调度算法和 Linux 默认的调度算法,本文所提新方法能够在基本不损失性能的基础上降低系统
温度:最好情况下降低平均峰值温度 6°C,降低平均温度 3°C.
本文第 1 节讨论温度感知调度方面的相关工作.第 2 节介绍了强化学习相关的理论知识方便理解本文的贡
献.第 3 节详细讨论现有方法的缺陷,以此说明新方法的必要性.第 4 节详细介绍本文算法的模型和参数设置.第
5 节详细展示了在真实平台的实验结果.第 6 节对本文进行总结并讨论了未来工作的方向.
1 相关工作
[7]
目前,温度管理技术在学术界和工业界都受到了极大的关注,已有很多研究致力于控制芯片的温度 .早期
[4]
[3]
的研究多采用基于线性规划 [1,2] 、动态规划 或者启发式算法 设计温度感知的任务调度算法,然而随着计算机
内核数量的快速增长,以及各种复杂计算任务的出现,传统的温度感知调度算法不能够有效地适应不同的复杂
计算环境.
随着机器学习的发展,各类机器学习算法被广泛地应用在各个领域内,解决着大量过去难以处理的问题,展
[6]
现着巨大的应用潜力.因此,更多的研究将 ML(machine learning )利用到多核系统温度管理领域,提出了多种系
统温度优化算法.本文总结了目前主流的温度优化方法,分别从静态和动态两方面介绍.
• 静态方法通常利用监督学习,通过训练大量的数据得到温度、性能预测模型,在设计系统的过程中训练
好一个固定的算法模型,并将其应用于任务调度中 [13] .文献[14]基于自适应学习树算法来预测空闲期
开始时间并选择性地将其调至低功耗睡眠状态,从而达到降低系统功耗、降低系统温度的目的.另外,
还有一种使用贝叶斯分类技术的电源管理框架 [15] ,利用监督学习来预测处理器的性能状态,查找并执
行最优的电源管理操作,从而达到降低系统温度的目的.文献[9]提出一种基于线性回归模型的方法,通
过采集任务运行时性能计数器的值和传感器的值来训练预测模型进行任务映射.以上使用监督学习
的方法需要大量的训练数据,然而高质量且多样化的训练数据集往往难以获取,导致了这些方法对于
数据集外其他任务的分配效果未必能够达到预期目标;同时,基于一个硬件训练的模型很难移植到其
他不同的硬件上.
• 动态方法区别于静态方法,其能够在运行过程中持续地学习改进自身算法.在温度感知调度中,动态方
法能够在运行过程中优化温度,不会受到训练数据和系统硬件的局限.目前已有的动态算法,如借用松
弛技术动态管理峰值温度 [16] 、基于神经网络的自适应技术来降低温度 [17] 、基于强化学习的自适应技
术通过迭代温度变化来控制任务映射以优化核心温度等.其中,强化学习能够更灵活地处理动态决策
问题,在性能和复杂性方面达到一个均衡.因此,利用强化学习进行芯片温度管理的研究工作逐渐增多.
一种启发式的基于强化学习的温度管理方法在文献[18]中被提出,该方法通过设置温度阈值和功耗阈值来
限制状态空间和动作空间.该方法每个内核有一个属于自己的 Q 表,能有效提高算法的收敛速度,但是随着内核
的增多,存储 Q 表会带来巨大的空间开销.此外,如何有效保证每个内核的 Q 表都能收敛是最大的问题.文献[19]
提出一种根据当前芯片温度状态来预测并执行能最大限度降低未来最高温度的任务分配策略算法,但是该方
法算法模型的设置不合理,对于奖励和状态模型的设置过于简单,没有全面考虑到影响芯片温度变化的多个因
素,造成了算法的效果和性能不能达到最佳,且该方法只是在仿真平台运行和测试.文献[20]设计了一个基于强
化学习的温度感知调度算法,同时加入了系统动态调频方法,该方法基于温度循环,并将系统的延迟作为奖励的
一个部分.虽然该方法同时考虑了温度和性能,但因其奖励函数设置不合理导致其很难实现温度和性能的最佳
权衡.后面我们在真实的系统上对比了这两种方法.
温度感知的调度方法有些时候也可以和系统能耗控制方法结合在一起,首先是动态电源管理(dynamic
power management,简称 DPM) [21] 技术根据工作设备的负载情况动态的选择各个内核的电源状态,切换各个处
理器的工作模式(活动模式或低功耗模式等).另一种是动态电压频率调整(DVFS) [22] 技术,利用了芯片的特性,可
以根据内核的实际功耗来调节其工作电压或频率.这两项技术的本质都是降低系统功耗,达到有效控制芯片整
体温度的目的.在后面的工作中,我们会考虑将 DPM 和 DVFS 技术与 ReLeTA 相结合,探索更优的任务分配算法.