Page 139 - 《软件学报》2021年第8期
P. 139
杨世贵 等:基于强化学习的温度感知多核任务调度 2421
我们在 20 核的平台使用 Hyper-Threading 技术将逻辑内核数扩展到 40 核开展进一步的测试.因篇幅有限,
我们在此处不展示详细的温度变化图,统计的实验结果总结在表 5 中.可以看出,在两种方法下,峰值平均温度相
差 0.9°C,平均温度相差了 1.4°C,运行任务所在内核的平均温差较大达到了 3.5°C.在 40 核的情况下,峰值平均温
度差相比于 20 核有所下降.这是因为在 40 核下,我们使用了与 20 核实验中相同的任务集,相比于 20 核的运行
环境出现了更多的空闲时间,导致系统峰值温度和平均温度降低.
Table 5 System temperature of LTB and ReLeTA running 15 tasks in the 40-core system
表 5 LTB 和 ReLeTA 在 40 核系统中运行 15 任务组的系统温度情况
方法 平均峰值温度(°C) 平均温度(°C) 运行任务所在核温度(°C)
LTB 41.4 35.0 35.3
ReLeTA 40.5 33.6 31.8
(2) ReLeTA 与 DSM、LTB 和 Linux 之间的比较
在第 2 个实验中,加入了 DSM 和 Linux 的 CFS 调度方式 [31] 来进行对比.本次实验采用了 4 核实验平台,选
用了 3 个运行时间存在一定差异的程序:canneal、dedup、facesim 来进行实验.因为 DSM 需要指定任务的延迟
约束,通过在系统上进行测试,将 3 个程序的约束依次设置为:2ms,43ms,5s.每个任务各执行 400 次,执行过程中,
我们采集了所有程序的运行时间以及每次程序运行结束时的系统温度.针对 ReLeTA、LTB 和 Linux,直接使用
Linux 默认的“ondemand”调频模式来控制系统频率.
实验结果展示在图 13 中,可以看出,整个实验过程中,DSM 运行温度较低.这是因为 DSM 使用了主动调频,
使用较低的运行频率来控制温度,但同时导致单个程序运行时间更长.该方法下,运行完所有程序所需要的时间
大约为 3 000s;而其他方法以较高的频率运行程序,运行完所有程序的时间为 1 500s 左右.运行完所有程序后,系
统进入空闲状态从而降低系统温度.我们以 DSM 的执行时间为周期,计算了在这段时间间隔内 4 种方法的平均
系统温度,结果汇总在表 6 中.在整个任务执行周期,本文所提算法相对于 DSM 仅高出 0.6°C;而相对于其他两种
方法,我们的方法降低的平均峰值温度分别为 5.8°C 和 2.5°C.
Fig.13 Experimental results of ReLeTA, LTB, DSM, and Linux default scheduling methods
图 13 针对 ReLeTA、LTB、DSM、Linux 默认调度方式的实验结果
Table 6 Comparison of various methods with DSM
表 6 多种方法与 DSM 对比
方法 Linux ReLeTA LTB DSM
平均温度(°C) 46.4 41.2 43.7 40.6
VS DSM (°C) 5.8° 0.6 2.5 −
DSM 的目标是在满足性能约束的前提下进行系统温度优化,然而正如我们在图 5 所展示,DSM 复杂的奖励
函数很难实现温度和性能的平衡.表 7 对所有方法中不满足性能约束的情况进行了总结,DSM 方法下,任务
canneal、dedup、facesim 分别有 41%,5%和 4%的情况下不满足延迟约束,而本文所提方法只有极少量的情况下
出现约束不满足的情况.综合温度和性能的考虑,相比于其他两种方法,ReLeTA 能在保证性能的情况下,将系统