多核处理器调度方法研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多核处理器调度方法研究

【摘要】在多核处理器蓬勃发展的今天,温度过高成为制约其性能和稳定的关键因素。本文首先在单核处理器上,以热传递理论为基础,以温度与时间的一个简明等式详细分析了任务组的各种排列方式对单核处理器的峰值温度可能造成的影响,并提出了简单易行免于复杂计算的调度方法;然后将该方法拓展到多核处理器环境,通过合理分配、核上调度和核间迁移,达到了降低各核峰值温度的目的。

【关键词】多核;温度感知;调度;热传递

0.引言

多核处理器是当前及未来处理器发展的主要趋势。单个处理器中集成的核的数量已经由两个发展到四个、八个甚至更多。核的数量的增多提高了处理器的计算能力,但也带来了处理器功耗过大和温度过高的问题。有一些研究致力于减少多核处理器的功耗,而另一些研究则着眼于解决温度过高的问题。功耗问题和温度问题并不完全相同,两个处理器的功耗总量相同时温度的变化曲线却不一定相同。减耗的直接目的是节能,通过减耗有可能间接实现降温的目的,但不能保证没有温度过高的时刻。一个过高的温度会直接导致处理器性能降低及故障率升高,所以相对而言,降低温度比减少功耗有更为重要的意义。本文着眼于解决峰值温度过高的问题。

为了解决这一问题,在硬件上一般常采用动态电压调节(DVS)和clock gating 等技术。DVS适时地降低电压与频率以减少功耗,clock gating当温度达到某个阈值时暂时停止指令的执行。这两种方法尤其是后者严重牺牲了处理器性能,只能在必要时刻合理使用。国内外也有一些文献提出软件方法,但往往没有与温度直接相关的模型,或只是通过简单的迁移进程来降温,而且常以取得较低的平均温度或平坦的温度曲线为目标。然而为保证处理器正常工作,重要的是保证温度不超过某个阈值,平均温度的高低相对次要。有实验表明,不同任务对处理器的温度有不同程度的影响,其差别甚至十分巨大,所以通过任务在不同核间切换和单个核上的调度降低处理器的峰值温度是可行。本文以数字温度传感器(DTS)为硬件基础, 以基于热传递原理的模型为理论出发点,以任务调度为手段,以降低处理器的峰值温度为目标。首先探讨任务调度在单核上的性质,提出了热优先排序和冷任务插入方法,然后将得到的结论扩展为多核,提出了任务分配原则和冷任务迁入方法。该方法性能损失较小,而且可与DVS和clock gating方法共同使用。

1.多核调度

多核调度是单核调度的扩展,多核处理器每个核上的调度都保有上节所讲的性质。多核调度从一般可以分为全局调度和局部调度。目前局部调度应用较广泛,本文采用局部调度,将调度步骤主要划分为分配、核上调度和核间迁移。

1.1分配

矩阵(3)中每个任务Pi都能找到最小的稳定温度Tij,对应的核是Cj,最直观的做法就是把Pi分配到Cj上。但是,这样做很可能导致某些核拥挤而其他核空闲,所以有时需要做次优选择。当任务选择的核上已经有明显多于其他核的任务数量时,就要选择对应于第二小稳定温度的核。本文中选取多出25%的比例为限。这并非随意的选取,因为Linux用于多处理器的负载平衡器也是这样做的,我们相信有充分的道理。但不能依赖Linux或其他操作系统本身的负载平衡功能,因为它们不具备温度感知能力。

1.2 核上调度

首先将核上任务按稳定状态温度由大到小排为一列(或者参考Linux 2.6的O(1)调度算法的数据结构),依次运行;每完成一个任务,比较当前温度与队尾任务的稳定温度,如果当前温度较大,则由队尾继续向队头方向的任务比较,直到等于或小于时,此时一般可将尾部所有稳定温度比当前温度小任务的全部按原序插入当前任务后,继续执行。

1.3核间迁移

一般情况下不应频繁的迁移任务,但是如果有核的温度太过,超过了某个阈值,而本核队尾又没有冷任务时,不得不通过迁移来降温。过去解决该问题时,往往只是把过热的核上的一些任务迁移到温度最低的核上,但迁移常比较盲目,迁出太多会使负载不平衡,本核空闲,效率降低,迁出“热”的任务会加重别的核的负担,迁出“冷”的任务反而丧失了自降温的可能,而且那些作为目标的温度最低的核之后也许温度会升很快。的另有文献通过公式预测来寻找合适的迁移对象,但计算成本较高。本文另辟蹊径,不迁出,反而尝试通过冷任务迁入来降温。

冷任务不能在各个核的队尾寻找,因为队尾的冷任务常常被提前插入到队头。我们设计用一个简单的计数器,记录被提前的冷任务的数量,每完成一个任务,计数器就减一,归零后不再减。通过计数器就可以从队头或队尾(当计数器为零时)找到别的核上最冷的,然后比较其在本核的稳定温度和本核的当前温度,由于核的硬件差异,别核最冷在本核未必最冷,所以可以多比较几个。为保持平衡,分别从各核选取,单个核不应选过多。如只选一个,选最冷的,否则按由热到冷顺序迁入(性质3)。

2.结论

为降低多核处理器的峰值温度,本文基于热传递理论,根据温度-时间等式,首先研究了任务的不同排列在单核上的性质,提出了可以降低峰值的方式,并给以证明;然后再分析了多核的环境下任务选择核的原则,并提出了用迁入冷任务来给热核降温的具体做法。文本的调度方法有坚实的理论基础,而且通过运行时的动态调整,通过简单的比较,避免了复杂的运算。实验表明,该方法是有效的。

相关文档
最新文档