面向多核系统的节能调度策略研究与实现文献综述
2020-04-14 19:47:56
近年来,随着计算机技术的飞速发展,计算机技术被引入到各行各业中,发挥着至关重要的作用,已经成为了各行业中不可或缺的一部分。随着各个领域对计算机性能要求的不断提高,且单处理器的性能受到体系结构和功耗问题的限制很难得到进一步提升。多核处理器在单个芯片封装多个完整的内核(微处理器/计算引擎),又称为单芯片多内核处理器。通过这样的方法,可以有效解决单核处理器为提高性能而提高主频所带来的高功耗问题,并且对平衡系统性能和功耗之间的关系起到一定的作用。随着多核技术的成熟,多核处理器必将取代单核处理器,应用在各个领域当中。随着多核处理器的应用、普及,随之出现了不少新的问题。例如,任务负载的分配不均,功耗过高。一个合理的任务调度策略可以有效的解决任务负载分配不均的问题,同时还可以降低能耗。移动互联网的各项技术蓬勃发展,各种多核移动终端和生活息息相关,比如多核智能手机、多核笔记本电脑等,各类移动终端设备,此外一些新兴技术,比如云计算、云资源、数据挖掘等,都离不开基于多核的高性能计算机的支持。
在这信息化的时代中,社会信息化水平的快速发展,社会、经济、军事、政府等各行各业对信息系统的依赖程度也来越高,信息行业的能耗也日益增加。在计算机行业中,以节能环保为重点的“绿色计算”的新型计算模型被提出,“绿色计算”要求系统的软硬件的设计都符合绿色节能的要求。在硬件方面,要求采用低功耗,绿色环保的部件。而在系统软件的节能方面主要还局限于通过对系统状态(待机、休眠、运行)的切换来降低功耗。根据研究表明处理器的“计算”过程是系统能耗的主要来源之一。通过对系统状态的检测和切换并不能降低“计算”过程中的能耗。节能调度策略的研究就是针对处理器“计算”过程中减少功耗的途径,这是符合“绿色计算”的要求,同时是对其的扩充。
在生活当中,对于配备有多核处理器的移动电子设备而言,降低功耗意味着更长的续航时间。同时,降低功耗也就意味着降低产热量。对于电子设备来说,过高的产热量会使电子设备的工作温度过高,这将影响电子设备的性能和使用寿命。不仅如此,过高的温度往往会使各硬件设备(如 CPU,显卡)的性能显著下降,出现卡顿现象,影响设备的整体性能,严重时还可能出现烧毁内部元件的情况。因此在便携式电子设备的设计而言,能耗也是首要考虑的因素。而对于互联网中众多分布式大型服务器而言,降低能耗也意味着系统的稳定性、实时性、安全性的提高以及节能环保效果的优化。所以在任务调度策略的研究时越来越多的学者将能耗作为必要考虑因素。
目前,一般从软件和硬件方面去降低功耗的目的。在降低多核系统运行功耗方面,通过硬件技术来降低功耗的主要做法就是提升电路设计工艺,应用新的节能材料,和优化系统的硬件结构来实现。比如优化门电路之间的排列方式、处理器体系结构的改进、减少寄存器间传输能耗、优化 cache 存储设计、优化芯片之间的互联结构。
软件方面来看主要是利用动态电压频率调整技术(Dynamic voltage and frequency scaling:DVFS)和调度策略结合来降低功耗。DVFS 则是根据通过计算 CPU 的负载和应用所要求满足的截止时间得到一个相对较低的运行频率和电压(对同一芯片而言,电压和时钟频率越高执行速度越快,能耗也就越高)从而达到节能的目的。DVFS 技术目前在多核处理器上的应用按照调频方式可以分为 global DVFS(全局调频)和 local DVFS(本地调频)。Local DVFS 技术单独地为每一个核设置时钟频率和电压。Global DVFS 技术为整个处理器提供一个运行时钟核电压,处理器上的每个工作中的核都采用同样的运行时钟和电压。Global DVFS 技术在现实的应用中更为常见,因为 Global DVFS 比 Local DVFS 在硬件上的实现更为容易和便宜。但是 Local DVFS 比 Global DVFS 在节能上的效果更好,因为它在频率的选择上更加的自由。但是就目前来说多核系统中 Global DVFS 技术才是目前的主流。因此如何确定多核处理器在 DVFS 技术下的运行频率成为了又一个热门的研究方向。
在任务调度策略方面,普遍采用表调度(List Scheduling)技术来减少功耗,虽然还存在其他的典型的调度技术,比如遗传算法 [15],布谷鸟搜索算法),粒子群算法,模拟退火和在此基础上的优化算法,但是所取得的效果并不明显,而且这类算法都过于复杂系统开销过大不适合应用于实时系统的任务调度。
{title}2. 研究的基本内容与方案
{title}
基本目标:降低多核系统任务调度的能耗,对基于多核环境的任务调度
策略进行研究。
基本内容:多核系统中基于DVS的实时节能调度问题的研究可以归结为以下三个子问题的求解:
(1)任务分配问题,即实时任务应该分配至哪一个处理器核上执行。
(2)任务调度问题,即每个任务应该在哪个时间以相对于其他任务的顺序执行。