扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
ZDNetChina服务器站 服务器芯片/组件技巧 Barroso是Google公司的首席工程师,并且领导该公司的平台工程小组。他曾经为Google的系统基础设施做出过多方面的贡献,其中包括负载平衡、错误探测及恢复、通讯库、性能优化和计算平台设计。在加盟Google之前,他曾经在Compaq和DEC公司承担研究工作,主要研究商业工作负荷的处理器和内存系统架构,并且与他人合作设计出Piranha系统。Barroso拥有南卡罗来纳大学计算机工程博士学位,以及巴西里约热内卢PUC大学的电气工程学士及硕士学位。
芯片多处理技术的经济性因素:
成本
在1990年底,越来越多的小组都倡议使用CMP(芯片多处理技术)来替代复杂性较高的单线程CPU,而我们的DEC研究小组正是其中的一个。我们当时正在设计Piranha系统,1 这种系统在当时的CMP设计领域绝对是一种超前设计,因为我们使用了非常简单的核心(类似80年代末的早期RISC设计),并利用它来提高更高水平的线程级并行处理能力。我们的主要目标是利用有限的芯片预算来实现最佳的商业工作负荷性能。今天,在开发Google的计算基础设施过程中,我们的焦点已经变得更加广泛,超越了简单的性能问题。为了评价某个特定架构的优劣,我们首先必须回答下列的问题:对于您所需要的计算能力,您在经济上是否能够承受?Google的多数服务所提出的计算需求都非常高,因此我们必须首先开发出一套思路,深入理解计算的总体成本,并且不断地寻找合适的硬件/软件设计来优化每个成本单位的性能。本文探讨的正是大规模服务基础设施中的各类成本趋势,并且重点了基于CMP系统在改善整体计算平台费效比的过程中所面临的各种机遇与挑战。
理解系统成本
系统设计界已经开发出了体系完备的各类工具,能够对性能进行全面的测量、建模、预测和优化。然而,这一领域对成本因素的理解与认识仍然处于初级阶段。如果对成本的问题没有全面的考虑和理解,那么任何一种技术或产品的优势都无从谈起,而且也不可能得到验证。我们可以将一个大规模计算群集的TCO(总体拥有成本)分解为四个主要的组件:硬件的价格、能源消耗(数据中心的初始和后续投资)、数据中心的后续运营成本,以及软件基础设施的成本。在商业性部署中,通常最主要的TCO组件就是软件。如果我们将TPC-C基准档案中使用的系统价格进行粗略的分解,我们就会发现,每个CPU的成本中,操作系统和数据库引擎的成本约为4000至20000美元。
如果算上其它操作系统组件、应用和管理软件的授权费用,相对来说其它组件的成本变得几乎不值一提。如果在部署过程中使用的是中档和低端服务器,那么这种情况就会变得更加明显。由于这类部署中的廉价服务器数量众多,但却会导致软件成本的上升,因为按CPU或按服务器数量确定授权费用的策略目前仍然是一种非常流行的作法。
Google选择的作法是,将软件基础设施的生产保留在公司内部,并且与开放源代码社团进行合作,通过这种方式来降低软件的成本,从而改变这种成本分布的局面。虽然软件开发成本仍然存在,但在大型CPU部署中这种成本已经被分散开来。因此,Google就需要对剩留的那些组件特别留意。下面,我们将集中讨论那些更有可能对成本组件产生直接影响的系统设计选择:硬件和能耗成本。
HG1表示的是连续三代Google服务器平台的性能、单位服务器价格性能比和性能功率比趋势。Google的硬件解决方案中也包括低端服务器的使用。这些系统是基于数量巨大的PC级组件,因此各代的系统都能够以基本相同的成本提供逐步提高的性能,从而产生了单位服务器价格性能比曲线的逐步上升。另外, Google的容错软件设计方法也使这些可靠性相对较低的系统组件能够提供可用性很高的服务。然而,功率性能比却呈现出一种浮动的趋势,虽然人们已经采用了很多方法,努力在设计中提高单位功率下的性能,但这种效果似乎并不明显。换句话来说,每一次性能的提升都伴随着成比例增长的总体平台功率消耗。因此,在总体拥有成本中,与功率有关的成本一直呈现增长的趋势。这些趋势会对计算成本产生重大的影响。
下面的分析中忽略了其它间接的功率成本,将注意力完全集中在能源成本方面。今天,基于典型低端x86处理器的服务器成本约为3000美元,平均功耗为200瓦(峰值功耗可以达到300瓦)。通常情况下,由于无效率工作时间和制冷所消耗功率通常会使能源成本预算翻倍。如果我们假设基本的能源成本为9美分/瓦小时且服务器的寿命周期为4年,那么在今天,该系统的能源成本已经占到了硬件成本中的40%。
更糟糕的事情还在后头。如果单位功率性能在接下来的几年中保持连贯性,那么功率成本将会很容易地超过硬件成本,而且很可能会超出很多。HG2描绘的便是这种推演的结果。我们在其中假设会出现四种不同的年度性能及功率增长率。对于最为极端的情形(年增长率达到50%),在十年使用周期即将结束时,服务器的价格将只占很小的一部分。但需要注意的是,这个推论中并没有考虑能源成本在未来几年中可能出现的增长。在这种极端的情况中,机器所消耗的功率成本比机器本身的成本要多得多。也许我们可以设想,有一天供电企业会创造出一种奇怪的商业模型:如果企业愿意与其签订长期的供电合同,这些供电企业将免费向企业提供硬件。
计算机设备功耗失去控制的可能性很可能对计算的总体经济性产生巨大的影响,当然对地球总体环境的不良影响也是显而易见的。需要注意的是,尽管从全局来看 CPU所消耗的功率只占整体系统功耗预算中很小的一部分,但在低端服务器平台上,这类功耗所占的比率很可能会高达50%至60%。
效率CMP和计算效率
为了避免出现上面设想的那种可怕未来,我们有必要对采用CMP技术的处理器进行全面的介绍,而且充分了解这方面的情况将是避免出现不良后果的最佳(很有可能是惟一的)途径。正如我们在本期第一篇文章(“多处理器的未来”,作者:Kunle Olukotun和Lance Hammond)中所讨论过的,如果我们能够利用线程级并行技术,能够通过增加晶体管的数量并提高能源预算,我们完全可以增加核心的数量,从而更有效地提高性能。这种性能提高是其它任何已知技术所无法比拟的。在这种多线程环境中,预测和推测技术必须极为精确,只有这样,额外的功率和不动产投资才会显得物有所值,因为其它线程都准备执行非预测性的指令。但不幸的是,许多服务器级的工作负荷所表现出的指令级并行能力都是相当差的,
因此,它们很难适应今天那些常见的预测性乱序核心。Google的一些关键工作负荷就包含此类的行为。例如,我们的索引服务应用在新型处理器上每两个CPU周期里平均只收回一条指令,对多个发起槽(issue slot)和可用功能单元的利用率很低。导致这种现象的原因是索引服务应用所使用的数据结构太大,处理器芯片上的缓存无法处理,而且与数据关联的控制流程会将管线暴露给较大的DRAM延迟。这类行为还会导致内存系统的利用率过低,因为在上一个内存访问不可用时新的内存访问不可能发出。在控制流程和内存访问流中也存在足够的不可预测性,这就使得预测技术相对失效。然而,如果采用的是传统的多处理器、并发多线程系统和CMP5,那么同一工作负荷的级程级速度会发生很明显的提升。
在Piranha的实施过程中充分借鉴了商用工作负荷行为的教训:如果有足够的(硬件和软件)线程,我们就根本不需要去预测。它所采用的8个CPU核心事实上是早期RISC设计的一次再生:单发起、顺序、非预测性。第一颗Piranha芯片将比其它最新CPU的性能高出两倍以上,而功耗只有后者的差不多一半。这一点非常重要,因为我们的小组在设计时完全忽略了功率效率,没有将其作为一个设计目标,但却得这样的成绩确实让人感到激动。这可以算是一个非常好的例证,充分说明CMP模型与生俱来的功率效率优势。最近,一些厂商都发布了新的产品,这些产品可以帮助我们深入了解CMP微架构的功率效率潜力。AMD和英特尔都推出了CMP设计,其功率包线与上一代的单核心产品基本相同。例如,AMD报告称,根据一系列的基准测试6,其双核心Opteron 275型处理器的性能比对等的单核心处理器(Opteron 248)要高出约1.8倍,而功率包线的增长幅度不超过7%。即使我们悲观地假设整个平台的功率增长幅度相同,双核心平台的功率效率(单位功率性能)仍然比单核心平台提高了近 70%。的确,在确实这些进步的过程中,进程技术方面的改进扮演了非常重要的角色,但事实是,人们第一次开始重视处理器的功率效率,并试图寻找合适的方法来大幅改善这方面的性能。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者