下载本文的PDF版本 PDF

迈向节能计算

David J. Brown,Sun Microsystems

Charles Reams,剑桥大学

如何才能使服务器端计算更节能?

现在,大多数人都意识到能源问题的严重性:我们的主要能源正在枯竭,而商业和家庭环境对能源的需求都在增加,能源使用的副作用对全球环境产生了重要的影响。温室气体(如二氧化碳)的排放,现在大多数气候学家认为这与全球变暖有关,这只是其中一个问题。

世界顶级的科学家和思想领袖可能最关注一个战略解决方案:如果我们最终要克服能源问题,就需要开发新的清洁和可再生能源。英国皇家学会会长里斯勋爵在2008年发表的年度演讲中强调了其紧迫性。13

然而,对可持续能源新来源的实际预期至少还需要三十年。史蒂文·朱,他在最近被任命为美国能源部长之前曾担任劳伦斯伯克利国家实验室主任,他对此进行了背景说明:3

“解决能源问题需要双重策略:(1)最大限度地提高能源效率并减少能源使用;(2)开发新的清洁能源。在未来几十年内,第一点仍然是最容易实现的目标。”

计算领域的能源

计算机设备在能源需求中扮演什么角色?我们必须关注哪些方面来减少消耗并提高能源效率?

2007年8月,EPA(美国环境保护署)向国会提交了一份关于服务器和数据中心能源效率的报告。5 该报告的一些主要发现包括

EPA 报告的摘录如图 1 和表 1 所示。数据中有两个特别值得注意的点。首先是站点基础设施消耗的能源与计算设备本身消耗的能源一样多。这种基础设施主要代表 HVAC(供暖、通风和空调)设备,以及用于转换和传输电力并保持其连续性的设备(后者包括变压器和建筑物内的电力开关和传输设备,以及电力调节和维持设备,如不间断电源)。这个因素非常重要,但可能不是计算专业人员最容易解决的领域。

figure 1

然而,在计算设备本身内部,是第二个值得关注的点。在研究的五种 IT 设备类型中,仅批量服务器就占用了大部分(68%)的电力。假设批量服务器 17% 的复合年增长率 (CAGR) 继续保持,这表明它们是服务器领域减少能源消耗的主要目标。此处显示的存储设备 20% 的增长率——最近的数据表明这个速度正在加快——表明了另一个重要趋势。

如果这项研究揭示的数据中心计算设备呈指数级增长的趋势继续下去,预计到 2011 年,数据中心的电力需求将比 2006 年增加大约一倍。这带来了超出明显经济影响的挑战。例如,峰值瞬时需求预计将从 2006 年的 7 吉瓦增加到 2011 年的 12 吉瓦,需要 10 个新的基本负荷发电厂才能满足这样的需求。

电力可用性的物理限制已经成为某些地区数据中心的制约因素;摩根士丹利 IT 部门的一位董事总经理最近表示,该公司在曼哈顿已无法获得运行新数据中心所需的电力。情况很严重。eBay、谷歌、亚马逊、微软和雅虎等公司一直在寻找合适的地点,以便建造运行其当代 Web 应用程序和服务所需的数据中心。9 其中许多公司已经与美国以及国际上的某些州进行了谈判,以建造这些设施以及为其供电所需的发电厂。几年前,谷歌在华盛顿哥伦比亚河沿岸建立了一个新设施,引发了一些记者所谓的“现代军备竞赛”。较低的土地成本、较低的外部环境温度以及可用于冷却和水力发电的流动水等综合优势,可以解决谷歌迫切的能源可用性问题和成本问题。

有一些证据a 表明,移动和桌面计算设备消耗的能量与数据中心服务器消耗的能量大致相当,尽管我们没有相应的全面和权威的最新研究可供参考。此处提供的 EPA 数据提供了一些关于能源在重要的且不断增长的服务器计算领域中的去向的详细视角。此外,由于 EPA 的能源之星计划早期关注包括计算机系统在内的消费电子产品,因此在移动和桌面计算领域已经奠定了一些基础。

figure 2

当今计算机系统中的电源及其管理

对于当今的计算机系统,可能需要考虑的关键因素是,它们消耗的功率量不会根据系统正在执行的工作量进行平稳调整。迄今为止,大多数通用计算机系统的主要设计目标一直是最大化性能——或者,也许是在给定的价格点上实现性能——而很少考虑能源使用。这种情况正在迅速改变,我们正接近这样一个临界点:除非我们关注节能的系统设计,否则即使在其相对较短的(3 到 5 年)摊销期内,购置计算设备的资本成本也将超过运行它的能源成本。

尽管已经提出了能源比例计算2 的观点——意味着所需的功率量与系统(或组件)的利用率直接对应——但这与当前情况相去甚远。当今计算机系统的许多组件在低利用率水平下表现出特别差的效率,并且大多数系统的大部分时间都在相对较低的使用水平下运行。电源以其低效而臭名昭著,尤其是在低负载时,风扇在粗心操作时会浪费大量能量。然而,在短短四年内,电源的效率得到了提高1,并且正在出现一些算法,这些算法可以根据热需求更连续地调整风扇速度,而不是仅仅使用几个离散的速度点。然而,当今计算机系统中的大多数硬件组件仍然必须进行显式管理,并且当前广泛部署的计算机系统电源管理概念和设施仍然是初步的。

电源管理

电源管理有两种基本模式:运行与挂起(非运行)方面,其中组件(或整个系统)可以在不使用时(即一旦它变得空闲)关闭电源,但在需要时再次打开电源;以及性能调整方面(在运行时),其中可以根据观察到的利用率水平或工作负载的其他需求来降低或提高组件的性能水平。

运行与非运行的选择通常称为组件(或系统)的电源状态。虽然有一个状态表示运行,但可能有多个挂起状态。如果组件(或系统)的实现中存在一些重要的电源相关结构,则后者允许从与组件(或系统)关联的更多硬件中逐步移除电源。例如,CPU 可以通过停止指令的发布或关闭其时钟电路来简单地暂停其执行。然而,“更深”的电源状态可能会依次从处理器的缓存、TLB(转换后备缓冲区)、内存控制器等中移除电源。虽然移除组件更多硬件的电源可以节省更多能量,但重新开始其操作的延迟会更长,或者需要额外的能量来保存和恢复硬件的内容并重新启动它,或者两者兼而有之。

运行时的性能调整选择最自然地称为组件的性能状态。调整性能的一种广泛应用的技术是改变组件的工作频率。当时钟速度减慢时,也可以降低工作电压,这两个因素共同作用——通常称为 DVFS(动态电压和频率调整)——会产生复合的节能效果。性能状态最初是为 CPU 引入的,因为处理器是硬件平台上功耗最大的组件之一(当代多核 CPU 的典型功耗范围为 35 到 165 瓦)。性能状态也可以用于控制活动缓存大小、内存和 I/O 互连的数量和/或运行速率等。

ACPI

最广泛实施的电源管理架构是 ACPI(高级配置和电源接口)。它与英特尔架构、基于最广泛可用的商品 CPU 和相关组件的硬件平台共同发展。尽管该规范有很多详细方面,但 ACPI 主要提供实现刚刚描述的两种电源管理模式所需的控制。它定义了电源状态:系统级的七种,称为 S 状态(S0-S6);以及每设备级的四种,称为 D 状态(D0-D3)。b 零编号状态(系统的 S0 或每个设备的 D0)表示运行(或活动)状态,而编号较高的状态是非运行(非活动)状态,功耗依次降低——可用性(运行就绪性)也相应降低。ACPI 还定义了性能状态,称为 P 状态(P0-P15,每个设备最多允许 16 个),这些状态会影响组件在运行时的运行性能。电源状态和性能状态都会影响功耗。

计算中的能源效率

尽管 ACPI 是一项重要的事实标准,并得到了制造商的广泛支持,但它仅提供了一种机制,通过该机制可以控制系统的各个方面以影响其功耗。这实现了能源效率,但并未明确提供。需要更高层次的整体系统架构来利用这种机制或任何类似的机制。

节能计算与电源管理有何不同?如何知道您已经解决了计算机系统的能源效率问题?这是一个简单的愿景:“系统消耗执行任何任务所需的最少能量c。”

换句话说,能源效率是一个优化问题。这样的系统必须动态调整系统的硬件资源,以便仅提供执行这些任务所需的东西(无论是按时完成任务,还是类似地,提供维持既定服务水平所需的吞吐量),并最终最大限度地减少总能源消耗。

传统上,系统被设计为实现工作负载的最大性能。在节能系统上,在某些情况下仍然希望获得某些任务(或整个工作负载)的最大性能,但系统现在还必须最大限度地减少能源使用。重要的是要理解,性能和能源效率并非相互排斥。例如,即使在实现最大性能时,任何可以停用的资源,或其各自的性能可以在不影响工作负载的最佳可能完成时间或吞吐量的情况下降低的资源,都构成能源优化。

实际上,在任何系统中,硬件资源的全部容量(即,全部以其峰值性能水平运行)都被利用的情况都很少(即使有)。始终力求实现最大性能的系统通常过度配置(并相应地利用不足)。然而,从事实际计算机系统设计的人员可能会注意到,我们的科学在这方面很薄弱。(这个领域可以称为“动态容量规划和动态配置”。)

能源优化显然受到某些约束。以下是一些示例。

必须保持所需的性能水平

具有截止日期的任务必须按时完成。 在一般情况下,为任务或工作负载指定了截止日期。当指定的任何截止日期小于或等于系统使用任何或所有硬件资源可以实现的最佳截止日期时,这意味着最大性能。这实际上是退化的情况。

任务或工作负载的最大性能隐含地规定了最佳截止日期 (to),或“尽可能快”。d 在这种情况下,能源优化仅限于那些可以停用的资源,或其各自的性能可以在不影响工作负载的最佳可能完成时间的情况下降低的资源。

如果指定的截止日期晚于最佳可实现的截止日期,则计算可能需要任何长度的时间直到此截止日期,并且系统可以为任务(或工作负载)寻求更全局的能源最小值。截止日期可能被认为是“硬性的”,在这种情况下,系统的节能资源分配器必须以某种方式保证满足它们(这会引发难以实施的问题),或者“软性的”,在这种情况下,可以容忍尽力而为。

服务必须以所需的吞吐量运行。 对于在线服务,为了表征所需的性能水平,吞吐量的概念可能比完成截止日期的概念更合适。由于服务在其实现中最终可以分解为完成的各个任务,我们期望存在技术上的类似物(尽管指定其性能约束的最合适方法可能不同)。

系统必须对不断变化的需求做出响应

实际工作负载不是静态的:随着它们的运行,提供的工作量和实现给定性能水平所需的资源将发生变化。动态响应是与服务水平相关的重要实际考虑因素。

吞吐量 (T) 必须在延迟 (L) 内实现。 指定可以激活保留的硬件容量或提高其性能水平的最大延迟似乎是一个明确的要求,但这还必须与相关任务或工作负载的性能需求相关。

吞吐量取决于任务的类型。诸如 TPS(每秒事务数)之类的指标可能与数据库系统操作相关,每秒三角形数与图像生成子系统的渲染组件相关,或者与文件服务、I/O 互连或网络接口的相应度量相关。交互式使用施加了实时响应标准,媒体交付也是如此:满足所需音频和视频交付速率所需的计算、存储和 I/O 容量。下面提出了一种在实践中可能处理如此多样化的吞吐量要求的方法。

可用功率不得超过

瞬时功率绝不能超过功率限制 (P)。 可以指定最大功率限制,以尊重功率可用性的实际限制(无论是针对单个系统还是整个数据中心)。在某些情况下,短暂超过此限制可能是允许的。

这些约束的组合意味着在某些情况下必须预期过度约束,因此还需要一种约束放宽策略。可以选择约束的严格优先级,或者在它们之间进行更复杂的权衡。

接近解决方案

鉴于节能计算的这个概念,如何构建这样的系统?您希望节能系统如何运行?

系统有三个主要方面可以解决这个问题

第一个方面相对容易构建。第三个方面肯定是可以立即着手的,尤其是在优化技术基于启发式方法的情况下。第二个考虑因素是最令人生畏的。它代表了节能计算的一个重要的颠覆性后果,并且可能需要一个更正式的(程序化的)基础来将工作负载的要求传达给系统。工作负载基本配置需求的描述,以及一种指示其性能要求和当前性能的方法,似乎是这方面的基础。指示先验其对各种系统资源配置变化的预期敏感性的方法也可能很有用。幸运的是,在类别 2 中希望的发展所实现的改进之前,有很多可行的节能方法可以追求。

功率模型

为了管理系统的硬件以提高能源效率,系统e 必须知道其控制下的物理设备的具体功率细节。可进行功率管理的组件必须公开它们提供的控件,例如它们的功率状态和性能状态(ACPI 架构模型中的 D 状态和 P 状态)。然而,为了允许对功率相对于性能和可用性(即,相对于其激活响应性)进行建模,组件接口还必须至少描述以下内容

一旦系统拥有了这样一个由其所有可进行功率管理的硬件组成的功率模型,它就拥有了优化能源运行的基本基础。重要的是,它了解了那些功耗最大的组件以及那些具有最灵敏的控件的组件,这些控件可用于影响功率使用。

工作负载约束和性能评估

为了限制活动硬件的数量并降低其性能以最大限度地减少能源消耗,系统如何知道正在运行的任务是否仍在实现足够的吞吐量以维持适当的服务水平或实现其截止日期?

吞吐量的评估取决于所讨论的任务或应用程序。操作系统可以观察到其各种资源的已使用程度和当前使用程度,并且它可以将这些观察结果用作预测未来资源需求的最佳基础——从而缩小或扩大可用资源。这对于确定工作负载将需要什么是一个相对薄弱的基础,特别是要预测其动态响应敏感性。因此,系统在减少可用资源或其性能水平方面将不得不更加保守。似乎很明显,如果应用程序评估它们自己的吞吐量相对于它们的服务级别要求或完成截止日期,并且可以通过接口将该信息传达给操作系统,那么将实现最佳结果。然后,系统可以使用此信息来做出可能更积极的资源调整,并相应地实现改进的整体能源优化解决方案。

这是关键的二分法:系统负责解决能源优化问题,但受其分配的资源限制,而应用程序负责监控其自身的性能水平并通知系统,以便可以提供适当的资源来满足它们。

系统进行的能源优化

一旦提供了硬件的功率特性,并且可能提供了来自应用程序级软件的关于其约束的描述性信息,操作系统必须开始动态调整硬件的性能和可用性级别的过程,以控制功耗并提高全系统能源利用率。操作系统如何做出这样的决定?

启发式方法。 在某些情况下,为最大吞吐量配置资源可以优化能源。这就是“[最大]性能是绿色的”的推测,反映在竞速到空闲或竞速到睡眠的想法中。8 尽管有一些证据表明这种方法在系统变为空闲状态时在客户端计算中具有优势——特别是对于嵌入式和移动系统,如果可以将整个系统置于挂起状态,则可以节省 95% 的能源——但尚不清楚这在服务器端计算中有多适用。在某些情况下,获得线性加速(吞吐量)所需的功率呈非线性增长——英特尔当代 CPU 上的睿频模式就是一个例子——因此,在所有情况下,能源最优值都不会在与最大吞吐量相称的配置和性能点上找到。

在活动系统上用于提高能源效率的广泛使用的启发式方法是根据硬件的当前利用率动态调整其性能水平:低利用率时向下调整,高利用率时向上调整(利用率低于或高于某个阈值持续一段时间)。这可能是一种有效的技术,但仅限于状态更改的延迟和能量都非常低以至于可以忽略不计的情况。

作为一种方法的基于约束的优化。 在某些情况下,可以将问题简化到可以提供完整的分析解决方案的程度。例如,如果我们只考虑单 CPU 上的单个任务,并且对功率/性能权衡有充分的了解,那么相对容易完全指定一个计划,在该计划中,任务将以最小的总能量满足其截止日期;更一般的形式结果也是可能的。12 然而,这依赖于许多假设,例如对进程所需的总工作量的良好估计,而这些估计在实践中经常站不住脚。较弱的假设需要在线优化算法来执行节能调度。在这个领域已经有一些现有的工作,但还不足以支持通用操作系统。17

为了使基于优化的方法具有普遍适用性,将需要一系列技术。在最简单的情况下,可以实现自主的设备级操作;例如,在硬件级别,GPU 可以仅根据对其利用率水平的瞬时评估来积极地关闭未使用的硬件管道,因为在需要时重新启动这些管道的延迟是微不足道的。类似的实践似乎也适用于 CPU P 状态的使用(基于电压和频率调整的 CPU 性能和能耗调整),因为状态转换能量和延迟都非常低。

影响功率但表现出更大的延迟和/或更大的状态更改能量的硬件状态更改需要不同的处理方式。一个明显的例子是硬盘驱动器的停转,考虑到将其恢复运行的漫长延迟,但重新激活延迟并不是唯一的问题。在半导体存储器系统中,如果不需要,可以关闭部分物理内存的电源,并且电源开启延迟可能接近于零,但仍然会产生重要的转换能量,因为可能需要大量内存事务来将工作集收集到那些将保持活动的物理页面中。f 此类资源需要更多地了解任务或工作负载行为,以及对所需硬件资源的预期处理,以确保可以容忍或管理激活延迟,并且状态更改能量将超过在该状态下节省的能量。

一些常见的优化技术可能基于状态更改延迟、它们的能量需求等等,并且可能会由此产生此类技术的分类法——一些是形式化的或分析性的,一些是基于更多数值或启发式方法的。

尽管我们期望适用于不同硬件资源或子系统的特定节能优化技术会因所讨论的硬件资源的属性而有所不同,但希望所有此类资源的节能优化器的组合将累积起来,形成整个系统的效率方案。g

实现目标

不能通过一步到位的方式来实现全系统让步于能源效率的愿景。今天的系统软件没有以所描述的方式配备,应用程序也没有以可以利用该能力的方式编写。从务实的角度来看,我们如何期望实现这一结果?已经采取了哪些步骤?

操作系统的考虑因素

作为首要考虑因素,需要修改系统以关注其能源使用;操作系统本身一直在运行,但尚未在其自身的能源使用方面进行优化。迄今为止,几乎所有软件,包括系统软件,都针对性能、鲁棒性和可扩展性进行了优化,而没有考虑能源。因此,第一步是重新设计和实施操作系统,使其运行节能。这是一项重要的任务,其全部含义尚未得到充分理解。

修改现有操作系统以将能源作为首要约束是否可行尚不清楚,尽管这当然是更可取的。系统安全方面的经验表明,事后尝试引入如此基本的考虑因素会带来诸多复杂性。我们当然可以预见到系统软件内部的基本新结构,甚至可能由于节能压力而出现新的操作系统。

至少,必须调整操作系统内的资源管理设施以提高能源意识,然后进行能源优化。

处理器。鉴于当代计算平台上归因于 CPU 的功率占很大一部分(以及因此在其上早期引入的电源管理功能),操作系统调度程序/线程调度程序已经取得了很大进展。必须消除在没有有用的工作要做时粗心地激活硬件的情况。操作系统(或应用程序)内的轮询是一个明显的例子,但使用高频时钟节拍中断作为定时器事件、计时和线程调度的基础也可能同样有问题。目标是保持硬件静止直到需要时。Linux 中的“无滴答”内核项目16 引入了动态滴答的初始实现。通过重新编程每个 CPU 的周期性定时器中断以消除空闲期间的时钟滴答,可以在每次空闲状态进入后将 CPU 保持在其空闲状态的平均时间提高 10 倍或更多。除了 Linux 中动态滴答和可延迟定时器所代表的非常好的想法之外,OpenSolaris 中的 Tesla 项目也在考虑操作系统内软件开发向更广泛的基于事件的方案过渡可能意味着什么。

现代处理器上的功能——CMT(芯片多线程)、CMP(芯片多处理器)和 NUMA(非统一内存访问),用于具有多个插槽的多处理器系统——的融合,引发了大量新工作来实施最佳放置线程调度程序。6 鉴于能够改变性能水平,能源效率和异构多核 CPUh 的预期引入只会增加其吸引力。15,7

存储。与 CPU 相比,磁盘驱动器消耗的功率似乎并不特别大。典型的 3.5 英寸、7200-RPM 商品磁盘消耗约 7 到 8 瓦——仅占典型多核 CPU 消耗量的 10% 左右。尽管更高性能的 10,000-RPM 主轴消耗约 14 瓦,而 15,000-RPM 驱动器可能使用约 20 瓦,但有什么可担心的呢?如前所述,存储的惊人相对增长率可能会迅速改变存储设备占总功率的百分比。性能和可靠性因素已经导致即使在桌面系统上(为了实现简单的 RAID 解决方案)也普遍应用多个主轴。在数据中心,存储解决方案的扩展速度更快。低端批量服务器机箱现在通常容纳十几个或更多驱动器,Sun 的一个 4U 机架式存储阵列产品示例可容纳 46 个 3.5 英寸驱动器。后者的单个实例,如果它使用 10,000 或 15,000-RPM 工业驱动器,则可能占 1,088 瓦到 1.6 千瓦,这是一个更重要的能源使用情况。

存储子系统现在显然在关注能源的人的视线范围内。至少可以采取两个直接步骤来帮助提高存储设备的能源消耗。第一个是直接关注传统磁盘存储中的能源使用。磁盘硬件供应商已经开始进行这项工作的一部分,他们开始引入磁盘驱动器电源状态,而操作系统开发人员也开始进行这项工作,他们致力于当代文件系统(如 ZFS)和存储资源管理。第二个,特别是最近引入的大型廉价闪存设备,是对内存/存储层次结构的更全面的审视。闪存填补了主存储器设备和磁盘之间重要的性能/容量差距10,11,而且与旋转机械介质相比,还具有巨大的能源效率优势。

内存。主存储器由于其相对较低的功率需求(例如,每个 DIMM 2 瓦),乍一看似乎比磁盘更令人担忧。然而,其在当代硬件平台上的平均大小可能会更快地增长。由于硬件系统制造商主要关注性能水平(以跟上多核 CPU 的相应性能需求),因此保持全 CPU 到内存的带宽至关重要。结果是从单通道 DIMM 发展到双通道 DIMM,现在又发展到三通道 DIMM 以及相应的 DDR、DDR2 和 DDR3 SDRAM 技术。尽管工艺特征尺寸的缩小(DDR3 现在采用 50 纳米技术)使时钟频率得以提高,并且每个 DIMM 的功率有所下降,但通过增加每个内存通道的 DIMM 来获得更高性能的愿望仍在增加内存系统消耗的总功率。

例如,一个当前的四路服务器系统(基于八核 Sun Niagara2 CPU)每个插槽使用 16 根 DIMM,采用 DDR2 双通道内存技术,总共有 64 根 DIMM。如果其更快的后继产品使用 DDR3 三通道内存,这将增加到每个插槽 24 根 DIMM(总共 96 根)。一根典型的 DDR2 DIMM 功耗为 1.65 瓦(或每对 3.3 瓦),而当前 DDR3 DIMM 的最低功耗版本功耗为 1.3 瓦(或每三根 3.9 瓦)。结果似乎是功耗仅增加了 20%——在我们的示例中,总功耗从大约 100 瓦增加到 120 瓦。

然而,考虑到下一代 CPU 每个插槽的内核数量也将翻倍,一种可能的场景是也希望每个插槽的内存组数量翻倍(总共可能达到 192 根 DIMM),以平衡整体内存系统性能。因此,结果可能是功耗从 100 瓦增加到 240 瓦(整个内存系统的功耗增加了 140%)!这种趋势甚至在桌面级机器上也正在被观察到,虽然规模小得多,但包含四核超线程 CPU(如 Intel 的 Nehalem)的系统已经出现。

如果要启用和禁用可用的物理内存,并且可能在系统处理能力动态调整时相应地重新配置,那么操作系统的内存管理子系统将需要一些新功能。面向未来的虚拟内存系统的设计,该系统能够感知能量并在运行时调整物理内存资源,这是一个尚未解决的问题。

I/O。硬件平台上 I/O 系统的能量方面也可能变得越来越重要。举一个简单的例子,当前的局域网互连和子系统在两个重要方面得到了发展:链路聚合越来越多地用于增强网络带宽和可靠性;单个互连速度已从 1 GB 提高到 10 GB,并且 40 GB 也指日可待。一个 10-GB 网卡的收发器现在可能需要高达 14 瓦的功率才能全速运行,而当其链路速度降低到 1 GB 或更低时(1 GB 时约为 3 瓦,100 MB 时为 1 瓦),功耗会相应降低。诸如 InfiniBand 之类其他高速互连预计也会对整个系统产生类似的能量影响。在各种架构形式(从片上到广域网络)的通信互连的能量影响方面,人们的关注度仍然很低。

应用软件的演进

节能计算最具有战略意义的方面将是应用软件的演进,以促进系统范围的能源效率。虽然我们当然可以期待新的应用接口与系统软件交互,从而支持开发新的节能应用,但历史的和当今的应用的转型代表着长期的演进。我们将如何在过渡时期解决现有安装基础的更高能源效率问题?显然,这不会通过对所有现有应用程序的实现进行独特的变革来实现。

解决现有应用程序对能量漠不关心的一种可能性是对其运行时行为进行外部分析。可以收集经验数据,了解应用程序性能i 对不同级别和类型的资源配置的敏感程度。例如,可以观察到通过增加 CPU 资源或分配具有更高性能微架构的 CPU 等方式,性能提高了多少。15 然后,可以根据其测量的敏感程度,在其二进制形式中对应用程序进行标记,而无需更改其现有实现。然后,操作系统可以使用这些数据来分配追求特定指定性能级别的资源,或者找到合适的性能与能耗之间的权衡。

不可避免地,我们预计需要结合使用多种技术:显式技术,其中应用程序本身告知系统其吞吐量和资源配置需求;以及隐式技术,其中使用静态和动态分析来建模相对于性能和能耗的资源需求。

结论

我们仍处于节能计算的起步阶段,行业的大部分注意力都集中在单个硬件组件中电源管理机制和控制的引入和使用上,而不是更广泛的能源效率问题:最大限度地减少在系统上运行计算工作负载所需的总能量。本文提出了计算系统中能源效率的总体方法。它建议在系统软件中实施能源优化机制,该机制配备了系统硬件的功耗模型,并由应用程序告知资源配置调整,以便它们可以达到其所需的吞吐量水平和/或完成期限。

在短期内,一些旨在减少与最高功耗组件(如 CPU)相关的最明显能源浪费的启发式技术可能仍然实用。从长远来看,为了更有效地实现总能量优化,我们认为能够建模相对于系统硬件配置(以及由此产生的能耗)的性能的技术,以及对工作负载的改进理解和一些预测性知识,将变得越来越重要。

注释

a. 美国能源信息署 (www.eia.doe.gov) 的数据显示,2001 年美国家庭中的 PC 和打印机每年消耗 23.1 太瓦时。4 2006 年的数字也类似。14

b. 奇怪的是,CPU 的电源状态称为 C 状态 (C0-C3)。无论如何,每个非运行电源状态的语义都特定于所讨论的设备(或设备类别)。

c. 能量是功率的时间积分,因此对于恒定功率,能量 = 功率 x 时间。功率和能量是不同的概念,不应混淆。

d. 截止时间的所有值D = ti小于最短可实现的截止时间to等效于
设置D = to(即{∀ tι | ti < to, [D = ti] ≈ [D = to]})。因此,我们可以用D = 0.

表示最大性能

e. 此处的“系统”最自然地暗示了操作系统,尽管很明显,这必须包括虚拟化系统的 hypervisor。人们可以合理地预期,这个概念将需要扩展到包括固件甚至硬件组件(在低端)和重要的运行时环境的某些方面,例如 Java 虚拟机,它们对资源分配负有责任和/或具有特定的知识。

f. 考虑一下传统的启发式方法(如五分钟规则),旨在优化内存层次结构以获得性能,是否在能量优化方面有类似的方法,这很有趣。

g. 我们认识到,如果不同子系统分配的资源之间存在交互,并且在“每一焦耳都很重要”的系统中可能需要更全面的方法(例如,大型动态规划方法),那么这种还原论可能过于乐观。

h. 异构在此处指的是多核 CPU,其中不同性能级别(不同 CPU 微架构)的内核被放在同一个多核封装中,因此它们的功耗后果非常不同。

i. 这假设可以定义一些客观的外部性能指标,这可能有问题。

参考文献

1. 80plus.org。电源效率的最新标准;http://www.80plus.org

2. Barroso, L., Holzle, U. 2007。能量成比例计算的案例。《IEEE 计算机》(12 月):33-37。

3. Chu, S. 2008。能源问题和劳伦斯伯克利国家实验室。向加州空气资源委员会发表的讲话(2 月)。

4. 能源信息管理局,美国能源部。2001。居民能源消耗调查;http://www.eia.doe.gov/emeu/recs/recs2001/enduse2001/enduse2001.html

5. 环境保护署。2007。EPA 向国会提交的服务器和数据中心能源效率报告(8 月);http://www.energystar.gov/ia/partners/prod_development/downloads/EPA_Datacenter_Report_Congress_Final1.pdf

6. Fedorova, A. 2006。芯片多线程处理器的操作系统调度。哈佛大学博士论文(9 月)。

7. Fedorova, A., Saez, J. C., Shelepov, D., Prieto, M. 2009。使用非对称多核系统最大化每瓦性能。《》(11 月/12 月);https://queue.org.cn/detail.cfm?id=1658422

8. Garrett, M. 2007。降低功耗。《》(11 月/12 月);https://queue.org.cn/detail.cfm?id=1331293

9. Katz, R. H. 2009。科技巨头建设热潮。《IEEE Spectrum》(2 月);http://www.spectrum.ieee.org/green-tech/buildings/

10. Leventhal, A. 2008。今天的闪存存储。《》6(4): 25-30(7 月/8 月);https://queue.org.cn/detail.cfm?id=1413262

11. Mogul, J., Argollo, E., Shah, M., Faraboschi, P. 2009。NVM+DRAM 混合主内存的操作系统支持。《Usenix HotOS XII 会议论文集》(5 月)。

12. Reams, C. 2010。节能计算——能源成本最小化的形式化技术(即将发表的论文)。

13. Rees, M. 2008。向伦敦皇家学会发表的周年讲话。

14. Roth, K. W., McKenney, K. 2007。美国住宅消费电子产品的能源消耗。TIAX LLC,马萨诸塞州剑桥市(1 月)。

15. Shelepov, D., Saez, J. C., Jeffery, S., Fedorova, A., Perez, N., Huang, Z. F., Blagodurov, S., Kumar, V. 2009。HASS:异构多核系统的调度器。《 操作系统评论》43(2): 66-75, 2009。

16. Siddha, S. 2007。最大限度地利用滴答声。《Linux 研讨会论文集》(6 月),加拿大渥太华:201-208。

喜欢还是讨厌?请告诉我们

[email protected]

David Brown 目前致力于 Solaris 操作系统的核心电源管理功能,特别关注 Sun 的 x64 硬件平台。在此之前,他在 Sun 领导了 Solaris ABI 计划:一项为基于 Solaris 构建的应用程序开发和交付实用二进制兼容性方法的活动。他获得了剑桥大学计算机科学博士学位,其博士论文介绍了用于在高性图形子系统集成到通用计算架构中的“统一内存架构”方法。这个想法现在被广泛应用,尤其是在当前的 Intel 处理器和内存系统架构中。

Charles Reams 是剑桥大学计算机科学博士生。他的研究兴趣在于编程语言的定量和涌现方面,例如能源效率和抗错性。他希望最终将关于能源和成本效率调度的学术工作推向商业领域;这项工作的数学基础将出现在即将发布的技术报告《廉价计算:高效调度的形式化方法》中。

© 2010 1542-7730/10/0200 $10.00

acmqueue

最初发表于 Queue vol. 8, no. 2
数字图书馆 中评论本文





更多相关文章

Andy Woods - 数据中心散热
发电占美国和英国一次能源供应的约 40% 到 45%,其中很大一部分用于建筑物供暖、制冷和通风。该领域一个新的且日益增长的挑战涉及计算机数据中心和其他用于冷却计算机数据系统的设备。2006 年,美国数据中心使用了大约 60 亿千瓦时的电力,约占该国电力消耗的 1.5%。


Eric Saxe - 节能软件
电源管理功能的演进速度简直令人惊叹。如今,几乎每种尺寸和级别的计算机系统,从最小的传感器和手持设备到数据中心中的“大型机”服务器,都提供了无数功能来降低、计量和限制功耗。如果没有这些功能,风扇噪音将主导办公室氛围,而未连接电源的笔记本电脑将只能使用几个小时(前提是人们可以忍受高温),而数据中心的电力和冷却成本以及容量将变得难以管理。


Alexandra Fedorova, Juan Carlos Saez, Daniel Shelepov, Manuel Prieto - 使用非对称多核系统最大化电源效率
在计算系统中,CPU 通常是最大的能量消耗者之一。因此,降低 CPU 功耗已成为过去几年学术界和工业界的热门话题。为了创建更节能的 CPU,一些研究人员提出了一种非对称多核架构,该架构有望节省大量电能,同时提供与传统对称多核处理器相似的性能。


Matthew Garrett - 降低功耗
电源管理是每个人都感兴趣的话题。最初是台式电脑。它以固定速度运行,并且比连接的显示器消耗更少的电能。在便携式电脑方面,它们的庞大尺寸和重量意味着您更有可能受到体力限制而不是电池寿命的限制。那不是电源管理的黄金时代。现在考虑一下现在。笔记本电脑的速度提高了 5000 多倍。可悲的是,电池容量却没有。然而,随着硬件变得越来越移动化,用户要求电池寿命开始与他们的工作方式相匹配。





© 保留所有权利。

© . All rights reserved.