Page 127 - 《软件学报》2021年第8期
P. 127
杨世贵 等:基于强化学习的温度感知多核任务调度 2409
scheduling algorithms based on reinforcement learning do not effectively model the system, and it is difficult to achieve a better trade-off
among temperature, performance, and complexity. Therefore, this study proposes a new multi-core temperature-aware scheduling
algorithm based on reinforcement learning—ReLeTA. In the new algorithm, a more comprehensive state modeling method and a more
effective reward function are proposed to help the system further reduce the temperature. Experiments are conducted on three different
real computer platforms. The experimental results show the effectiveness and scalability of the proposed method. Compared with existing
methods, ReLeTA can control the system temperature better.
Key words: temperature-aware; multicore system; reinforcement learning; Q-Learning
随着计算机在日常生活中的普及,人们对其高性能和便携性的需求日渐增强,由此推动着现代计算机不断
向多内核、高集成度的方向发展.芯片中晶体管尺寸缩小(最新晶体管达到 nm 级别),因此在同一尺寸内可以放
置更多的处理器.高集成度让多核系统的处理器比以往具有更高的功率密度,可以带来较高的性能,但也使系统
的运行温度大幅度提高且难以耗散,从而导致了芯片的老化不均匀,加速芯片磨损和故障,降低系统的可靠性以
及性能.通常采用两种方法来帮助多处理器系统有效的管理系统温度.
1) 物理方式:通过加散热效果更好的散热设备来降低系统温度,然而散热效果更好的散热设备不可避免
地提高系统的整体制造成本以及系统的能耗,从而使得芯片成本效益降低;
2) 软件方式:通过设计一个温度感知的程序调度算法来优化系统温度,即:任务进入系统时,调度算法为
程序选择合适的处理器来运行程序,从而达到控制系统温度的目的.
因灵活性高且不需要任何外部设备的辅助,基于软件方式的温度控制方法一直是多处理器研究领域的一
个热门研究课题.
[3]
[4]
早期的研究多采用基于线性规划 [1,2] 、动态规划 或者启发式算法 设计温度感知的调度算法,然而随着计
算机内核数量的快速增长,以及各种复杂计算任务的出现,传统的温度感知调度算法不能够有效地适应不同的
[6]
[5]
复杂计算环境 .与此同时,随着机器学习 的兴起,机器学习技术在不同的领域展现出了很强的自我学习能力,
[7]
因此有很多工作开始研究基于机器学习的温度感知调度算法 .使得温度感知调度算法研究工作朝着智能化
的方向发展.首先是基于监督学习的方法:线性回归 [8,9] 和分类算法 [10] ,虽然这些方法在特定的情况下取得了很
好的效果,但是模型的准确率依赖高质量及多样化的标签数据,且训练模型泛化性能不佳,即,针对一个硬件训
练的方法很难直接使用到新的硬件平台.另一方面,强化学习的出现,在一定程度上克服了监督学习存在的数据
依赖问题以及模型泛化性弱的问题.强化学习不需要大量的训练数据,而通过和运行环境的动态交互来学习一
个策略,在面对完全陌生的情况时,强化学习可以根据自己学习的策略来进行最优的决策,比监督学习的方法灵
活性更强.出于以上原因,强化学习被广泛应用于各种复杂的动态决策的场景,并且在各个领域取得很好的效
果,例如,DeepMind 在 2015 年提出的强化学习玩游戏完胜人类 [11] ,DeepMind 提出的基于强化学习的 AlphaZero
击败了顶级的职业围棋选手 [12] ,围棋在之前一直被认为是一个复杂度很高、机器很难击败人类的项目.计算机
系统状态有较强的动态性以及程序调度本身是一个复杂的决策问题,适合采用强化学习来解决.一些工作已经
研究了基于强化学习的温度感知任务调度算法,但是目前存在的基于强化学习的系统温度优化方法中均存在
一些问题,如环境建模不合理、奖励设置不合理,因此未能够使基于强化学习的温度感知调度方法达到最好性
能,此部分将在后文中详细讨论.
针对现有方法中存在的问题,针对多处理器系统,我们提出了一种全新的基于强化学习的温度感知任务调
度算法来进行系统温度的管理和控制,根据其英文名(reinforcement learning temperature-aware task allocation)
将其命名为 ReLeTA.本文具体的研究贡献如下:
1) 针对现有方法存在的缺点,本文提出了一种新的系统状态建模方法,新状态可以更准确地反映系统运
行状况与温度之间的关系;同时,提出了一种新的奖励函数用于协助优化强化学习算法;对比了现有
的两种基于强化学习的研究方法.实验证明,我们的建模方式更加有效.基于新的状态模型和奖励函
数,本文提出了一种新的基于强化学习的温度感知多核任务分配算法——ReLeTA.
2) 我们在不同的真实系统上对所设计的算法进行了评估,对比了现有的两个基于强化学习的温度感知