Page 132 - 《软件学报》2021年第8期
P. 132
2414 Journal of Software 软件学报 Vol.32, No.8, August 2021
根据图 5 所示的结果,在该程序执行 850 次后,DSM 方法在训练很多次之后仍然不能够达到一个较为稳定
的结果,出现了很多延迟低但温度很高和延迟高却温度很低的情况.这是因为该方法的奖励函数中虽然同时考
虑了温度和性能,但是并未对二者进行有效的权衡,造成了系统的温度波动以及程序的程序执行时间变化,并不
能够满足制定的延迟约束条件.
从本节对现有方法的讨论可以看出,现有的基于强化学习的温度感知调度算法仍然存在一些问题.为了改
善现有方法的缺陷,本文提出了全新的温度感知调度算法 ReLeTA,通过全新的建模方式来实现高效的温度感
知多核处理器调度.
4 ReLeTA 温度感知调度方法
本节将对提出的算法进行全面的讨论,包括对算法的总体设计以及建模方法都进行了详细描述.
4.1 模型概述
图 6 展示了 ReLeTA 的整体框架,目前,ReLeTA 的调度算法是在用户空间(user space)实现,在未来考虑将其
实现于操作系统内核中.作为一个多核系统的任务调度器,当一个新的应用程序到达后,ReLeTA 从底层硬件获
取状态信息,随后与操作系统进行交互,通过 CPU_affinity 将程序分配到对应的处理核心上.系统完成程序分配
之后返回奖励值,并根据奖励值来更新策略.其中,底层硬件是处理器的内核,现代 CPU 在每个计算内核上都设
有传感器,可以直接读取处理器当前的运行温度.在工作过程中,操作系统将所获取的处理器频率、利用率以及
温度信息传递给 ReLeTA 来优化调度策略.整个 ReLeTA 算法的系统开销较小,通常在 1ms 之内,详细的系统开
销实验结果可见第 5 节表 8.在下面的章节中,将详细介绍 ReLeTA 如何使用从底层获取的系统信息.
Fig.6 ReLeTA framework model
图 6 ReLeTA 框架模型
4.2 温度感知的强化学习建模
对 Q-Learning 来说,最重要的部分就是设置有效的环境状态模型、动作空间及奖励函数,使智能体也就是
温度感知调度器可以快速地学习到一个策略来有效降低系统的温度.本节将详细介绍 ReLeTA 如何对这几个方
面进行建模.
(1) 环境状态模型
强化学习需要一个精确的环境模型,可以准确地反映出系统变化和奖励以及智能体动作之间的关系,从而
帮助智能体快速学习到一个最优的策略.因此,环境状态模型是否能精确地体现当前系统的状态,是任务调度器