英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
基于多核平台使用实时能量策略的节能任务调度技术
摘要
本文展现了节能操作系统在多处理器任务调度方面上的巨大进步,并通过在标准Linux多核计算平台上进行实验证明。能量感知调度(EAS)引入以每焦耳能量(OPJ)的微操作的度量来表示运行时任务能量效率。一种新颖的架构平台允许对事件解析实时能量测量。能量感知调度通过焦耳能量值来调度任务以减少能耗。与Linux任务调度程序(完全公平调度)相比,EAS提高了超过30%的能量效率,执行时间多出24%。
关键词
能量效率;资源争夺;能量感知调度
1.引言
操作系统的任务调度策略对计算机平台的性能和能源效率有广为人知的深刻的影响[1]。任务调度的发展面临的挑战有,确保低延迟,满足任务期限,提高任务分配资源的平等,和处理器之间负载均衡[2,3]。然而,多核处理平台的大规模部署仍需要将资源冲突最小化来确保资源的有效使用。本文介绍了一项用于实现多核处理平台的超能源效率的能量感知调度策略(EAS)。
2.背景和相关工作
2.1多进程和资源争夺
多处理CPU架构对于从移动嵌入式设备到服务器系统的各种平台的计算性能的提供至关重要的作用。对称多处理(SMP)CPU架构被广泛部署,以通过并行执行实现能效和性能的提高[3,4]。 然而,如果多个任务在多核CPU上频繁地争取资源,如CPU缓存,并导致性能下降,称为共同运行降级,则这些优势的完全潜力就不会实现[5]。
图1.四个基准应用程序的共同劣化
图1中示出了使用UnixBench套件[6]的四个基准测试,这些基准测试在与Linux 2.6.32内核的四核x86平台上并行执行。 将并行执行的执行时间与单独执行基准测试的执行时间进行比较。 图中最差和最好的情况对应于在千次重复实验中观察到的不同任务计划。 重要的是要注意,由于资源竞争中的运行时动态,共运行退化必须在运行时或之后确定[5]。 因此,EAS利用直接能源测量以及标准CPU性能监视单元来识别在运行时遇到资源争用的低效进程。 与这些低效过程相对应的任务调整了调度优先级,以减少协同降级并提高能源效率。
2.2完全公平的调度程序
完全公平的调度程序(CFS)已被采用作为2.6.23内核的Linux中的任务调度程序[7]。 CFS不断尝试在分配的CPU时间方面保持任务之间的公平性[8]。因此,如果任务使用最少量的CPU时间,则CFS将为此任务分配最高调度优先级。为了有效地执行优先级分配并维护可执行任务列表,CFS构建一个称为红黑树的平衡二叉搜索树[9]。红黑树数据结构的每个节点表示可执行任务,其中密钥是任务使用的CPU时间。由于树是平衡的,调度器可以在具有n个任务的树的O(log n)时间复杂度中执行调度操作。对于多处理平台,CFS为每个CPU内核维护一个红黑树结构。任务通过负载平衡的机制在核心之间分配,任务可以通过使用任务迁移从一个核心移动到另一个核心[8]。
2.3性能监测单位
现代CPU架构通过性能监控单元支持对计算平台事件的详细监控。 性能监视单元提供访问专用CPU寄存器,称为性能计数器,可以计数重要事件,如高速缓存未命中。 它们被认为是绩效监测和改进的重要资源[10]。 EAS使用两种类型的性能计数器:1)时间戳计数器(TSC)用作平台事件高分辨率定时的时钟,2)性能计数器用于测量执行中执行的CPU操作次数 一个任务。
2.4 DEEP能量测量
以前的工作,对计算平台的能耗进行了估算。 直接能量测量[11],平台/设备能量模型[12]或两者的组合[13]都已成功应用。 在本文中,EAS利用能量数据,使用称为DEEP [11]的直接能量测量平台,将电流感测仪器添加到计算平台。 使用高频(10kS / s)数据采样器或数据采集单元(DAQ)来获取整个平台和诸如CPU,存储器(RAM),存储系统,网络和外设的重要计算组件的能量测量。
3.能量值表
3.1架构
EAS架构基于具有主要CFS功能的CFS,例如负载平衡和任务迁移,并且大多数内核调度器基础架构都不进行重大修改。
3.1.1 OPJ
EAS使用OPJ作为任务能效的运行时指标。 OPJ代表由平台每焦耳消耗的任务执行的CPU微操作(mu;ops)[14]的数量。 每个CPU内核使用一个性能计数器来计算每次调度任务执行的mu;op数。 然后使用时间同步的能量测量来确定在任务计划的时间范围内平台的能量消耗。 mu;ops的数量除以能量消耗,以获得最新的任务OPJ。
3.1.2优先级分配和高效协同调度
EAS使用红黑树,如图2所示,以维护其任务列表。 红黑的每个节点代表任务,并使用任务的OPJ作为其关键。 更大的OPJ值代表了更高的优先级,因为这些任务在以前的协调时表现出更高的能量效率。 为平台上的每个CPU内核维护一个红黑树,并且负载平衡的机制以及任务迁移在CPU内核之间分配任务。
3.1.3任务推进
EAS使用的优先级分配方案具有高效的任务协同调度的优点,但是由于任务行为在运行时变化,因此其他任务的争用可能不是,因此OPJ值降低的低效任务也需要重新安排机会现在了这是通过任务推广完成的。对于具有n个任务的红黑树,任务促进随机选择每n个调度器时间量子的自然数kle;n,使得第k个最低优先级任务的OPJ值被设置为比树中的最大OPJ值大一个。这导致任务被提升为后续调度量的最高优先级。为了保持红黑树操作的算法效率,执行任务升级的时间复杂度必须限于O(log n)。因此,EAS使用修改的红黑,其中每个节点包含一个额外的值,称为Size,如果该节点是树的根,则表示树的大小。这样的树如图2所示。
图2. EAS使用修改的红黑树作为其任务列表
3.1.4计划细节
由于定时器/中断事件或任务的控制产生的调度器时间量度结束,EAS在调度下一个任务之前执行几个步骤:1)表示时间结束的时间戳计数器(TSC)值量子被记录,2)从性能计数器读取上一次量程期间执行的CPUmu;op的数量并记录下来,3)最新的能量测量与TSC值同步并记录,4)最新的OPJ值由数据计算5)先前计划的任务的OPJ值被更新为最新的可用值,6)将任务插入到红黑树中,并将适当的更新更新为Size值,7)执行任务升级自上次任务推进以来,n个时间量已经过去了,8)记录下一次量子开始时的TSC值,9)从树中选择最高优先级任务,并调度在CPU内核上执行。这些重要步骤如图3所示。
图3. EAS执行的重要上下文切换步骤
3.2实施
3.2.1对CFS的修改
EAS是基于CFS的Linux调度器基础架构实现的,具体做法是:1)用于记录所用CPU时间的任务的VRUNTIME被替换为OPJ,2)每个红黑树节点都有一个附加条目,称为SIZE 为了有效的任务推进,3)红黑树插入和删除功能正确地更新节点的SIZE值,4)应用了一个固定的调度量为4ms,5)调度器功能和控制流程被修改为包括图3中的步骤。
图4. EAS在内核中创建一个新的调度类
3.2.2与标准任务计划程序的共存
模块调度器的概念是现代Linux内核的一部分[15],用于实施EAS。 因此,EAS与Linux内核中的其他任务调度程序共存,如图4所示,通过创建自己的调度类。 这允许抽象繁琐的EAS实现细节,同时将所需的调度程序功能暴露给内核。
图5.任务调度器的基准执行时间
图6.任务调度程序的平台能源使用情况
3.2.3平台支持
本文中实现EAS是基于现代x86平台及其提供的一些功能[16]。 除了DEEP能源监测基础设施之外,EAS依靠标准平台功能。 性能监视单元提供性能计数器,用于计算每个CPU内核在任务时间范围内执行的mu;ops数,同时排除PAUSE和NOP指令,因为这些指令不代表任务执行的工作。 TSC需要平台事件的时间和能量测量的时间同步。
4.结果
与CFS相比,EAS在能效和执行时间方面进行了评估。 这里报告的调查使用英特尔x86四核平台上的Linux内核2.6.32。 如第2节所述,将能量测量基础设施添加到平台中。当测量CFS的能耗时,使用DAQ的另一个平台使用正在观察的平台的仪器进行测量,以使能量测量开销不会在 数据。 对于EAS,由于测量基础设施是EAS的一个组成部分,因此这种开销被包含在数据中。
已经选择了八个应用程序来创建一个紧凑而又全面的基准测试:1)Apache,2)AES-256,3)Tpcc-mysql,4)Java LINPACK,5)Bzip2,6)BlogBench,7)VirtualBox, 和8)TPoX。 每个基准测试的输入工作负载都被归一化,因此当没有其他基准测试并行执行时,使用CFS的基准测试平均执行时间为100秒。
图7.任务调度程序的CPU能耗
图8.任务调度程序的内存能量使用情况
在图5至图12中,SOLO-RUNS表示使用CFS单独执行每个基准的情况,从而不存在资源争用。 EAS表示基准测试并行开始执行,EAS用于调度它们。 CFS代表CFS用于安排基准测试的情况。每个案例的实验重复一千次,平均值在图中报告。 BEST-OBSERVED表示在CFS和EAS实验的千次重复中观察到的能量消耗和执行时间的最小值。该值表示在任务之间存在资源争用时实现的最佳计划。 TOTAL表示执行所有基准的值,而各个值代表每个基准中TOTAL的分解。此外,单个基准的能源数据并不代表由于该基准的能源消耗,而是在执行基准期间发生的能源消耗。这是因为可以并行执行多个基准测试。
图9.没有L2 CPU缓存争用的执行时间
图10.没有L2争用的平台能源使用
图5至图8说明了EAS和CFS之间的比较结果。 EAS展示了对CFS的巨大收益,平均执行时间提高了24.7%,能效提升了30.2%。 此外,EAS的能源消耗和执行时间更接近BEST-OBSERVED值。
该评估中使用的平台有四个CPU核心排列成两对,每对共享一个二级(L2)缓存。 因此,如果两个任务在不同对的核心上进行调度,则L2高速缓存争用不存在。 这使得能够进行评估,其中仅使用平台上的四个核心中的两个来执行八个基准。 在一种情况下,允许基准测试在共享二级高速缓存的一对核心上执行,而在另一种情况下,基准测试仅在每对的一个核心上执行,具有单独的L2高速缓存。 在实验中使用CFS和EAS,结果如图9至12所示。在使用CFS时共享L2缓存的情况下,执行时间和能耗较大,但EAS有效减少了L2缓存争用的影响 因为当L2缓存不共享时,能量消耗和执行时间都接近值。
图11. L2 CPU缓存争用的执行时间
图12.具有L2争用的平台能耗
参考文献
-
- Zhuravlev, S., Saez, J. C., Blagodurov, S., Fedorova, A., and Prieto, M., 'Survey of energy-cognizant scheduling techniques.' IEEE TPDS, 2013.
- Davis, R. I., and Burns, A., 'A survey of hard real-time scheduling for multiprocessor systems.' ACM CSUR, 2011.
- Shiva, S. G., Advanced Computer Architectures. CRC Press, 2005.
- Woo, D. H., and Lee, H. H. S., 'Extending Amdahls law for energy-efficient computing in the many-core era.' IEEE Computer, 2008.
- Blagodurov, S., Zhuravlev, S., and Fedorova, A., 'Contention-aware scheduling on multicore systems.' ACM TOCS, 2010.
- Smith, B., Grehan, R., Yager, T, and Niemi D. C., 'Byte-unixbench: a unix benchmark suite.', 2011.
- Wong, C. S., Tan, I. K. T., Kumari, R. D., Lam, J. W., and Fun, W., 'Fairness and interactive performance of o (1) and cfs linux kernel schedulers.' IEEE ITSim, 2008.
- Wang, S., Chen, Y., Jiang, W., Li, P., Dai, T., and Cui, Y., 'Fairness and interactivity of three CPU schedulers in Linux.' IEEE RTCSA, 2009.
-
Hinze, R., 'Constructing red-black trees.' WAAAPL, 1999.<!--
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[142035],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。