Page 130 - 《软件学报》2021年第8期
P. 130
2412 Journal of Software 软件学报 Vol.32, No.8, August 2021
好的策略.
初始化 Q 表
选择动作
迭代更新 q 值, 执行动作
学习到较好策略
计算奖励
更新 Q 表
Fig.2 Flow of the Q-Learning algorithm
图 2 Q-Learning 算法的流程
3 动机案例
本节将讨论当前流行的两种基于强化学习的温度管理算法,并通过在真实系统上运行来评估这两种方法
存在的问题,以此作为 ReLeTA 方法的动机.
3.1 LTB
文献[19]与 ReLeTA 的调度方式相似,本节首先对该文献进行讨论.为了方便后文进行讨论,将文献[19]中的
算法命名为 LTB.算法 LTB 通过温度传感器读取所有处理器的温度,而将这些温度用作强化学习中的环境状态
模型,智能体将程序分配到不同的处理器上运行.假定有 CPU 有 n 个处理器核心,则动作空间与处理器核心数一
致都为 n.在 LTB 中,奖励函数 r 定义如下:
r=T em −T max (2)
其中,T em 为内核的最高阈值温度,T max 为当前所有内核的最高温度值.式(2)中,奖励函数存在奖励和智能体动作
之间关联度较低的缺陷.当系统中运行多个任务时,当前分配任务的内核不一定就是温度最高的核.这样导致奖
励函数与动作之间相关性不够高,根据奖励函数优化的温度感知调度算法就很难达到一个最优的效果.
为了展示 LTB 方法存在的缺陷,我们在真实的系统上评估了其性能.实验平台设置如下:处理器为 Inter
Core i7-4790 8 处理器,其最大频率为 3.6GHz;实验操作系统为 Ubuntu 18.04 LTS 的 4 核计算机上使用 Parsec
benchmark [26] 中的 facesim 应用程序来进行实验验证(本文将该任务设为单任务组合,在第 5 节实验配置部分说
明).重复执行该程序 1 000 次,并记录系统温度变化数据.为了避免温度波动影响图像的展示,将每 5 个单位数据
取平均值绘制成图,因此,1 000 次程序执行总共采样温度 200 次.图中 step 指采样的次数,y 轴是系统的峰值温度.
作为参考方法,本组实验选用了本文所提出的状态模型和奖励函数作为对比.当使用相同的奖励函数和不同的
环境状态模型(即本文所提出的环境状态模型)时,如图 3 所示,使用 LTB 环境状态模型的多核系统温度管理方式
与本文提出的方式相比,处理器中内核的最高温度提高了平均 1.3°C.这是由于 LTB 所设计的环境状态模型仅仅
考虑了所有内核的当前温度,该方式太过简单,无法准确地展现处理器内核的负载变化以及温度的变化趋势,因
此对温度的控制效果略有不足.
图 4 展示了使用相同的环境状态模型和不同的奖励函数(即本文所提出的奖励函数)时,处理器内核最高温
度的变化情况.使用 LTB 奖励函数下的内核的最高温度增加了平均 2.0°C,这是由于该奖励函数考虑的是某一状
态下所有内核的最高温度值 T max 与阈值温度的差值,而在真实的系统中,不同的动作(任务分配)可能会产生相
同的 T max ,导致模型不能很好地区分不同动作的效果,使得该奖励函数不能准确地帮助模型进行策略选择.
这里可以看出,LTB 的状态模型没能有效地反映系统温度变化,其奖励函数与任务分配关联度较低,导致了
其效果不佳.而本文所提出的环境状态模型同时兼顾了系统负载信息和温度以及温度变化趋势(详细信息见第
4 节),能较为全面地反映当前的系统状态.同时,新提出的奖励函数相比于 LTB 中的奖励函数不仅考虑到了整体
的温度,也提高了动作与奖励的相关性,从而产生更优异的温度控制效果.