科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道服务器CPU性能的代价(下)

服务器CPU性能的代价(下)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

计算机行业已经准备接受芯片多处理技术,并将其作为桌面和服务器市场中的主流解决方案,但似乎业界对CMP的接纳仍然有一些不情愿。只有当厂商必须将CPU的温度保持在一个安全的热值包线内时,CMP并行技术才有可能成为必然的选择。

2008年1月15日

关键字: 处理器 CMP CPU 服务器

  • 评论
  • 分享微博
  • 分享邮件

缓慢的步伐

    在我们于2000年发表的第一份Piranha报告中,我们将芯片多处理技术看作微架构演化中的必然趋势。尽管在这方面已经不存在任何的争议,但这种观点用了这么长的时间才被人们广泛地接受,这一点让人感到多少有些惊讶。尤其让我感到惊讶的是,像Piranha这类更为激进的CMP架构牺牲了单线程性能来换取线程级的并行能力,而这类技术的商用产品7 直到时近才出现,而且很可能要花很长的时间才能正式上市销售。

    CMP商用产品的推出过程似乎遵循的是一种更有规则的方式,即随着晶体管预算的增加,较为复杂的核心被逐步添加到新一代的芯片上。如果CMP的前景如此诱人,为什么要用这么长的时间才让它的潜力变成现实呢?这里面的主要原因有四个:功率包线。事实证明,与我们在Piranha开发过程中的构想正好相反,仅凭设计的复杂性和性能并不足以促使人们转而采用CMP架构。功率才是真正的原因。为了避免采用昂贵的冷却技术,芯片开发商们不得不坚守在功率密度的边界之内,而要想利用传统的技术来实现这一目标已经变得越来越困难。市场因素。兆赫兹是一个非常容易理解的性能参数,厂商利用它也更容易说服消费者。尽管它只是一种很差的应用性能指标,但多数常用基准测试中所用到的参数也好不到哪去。如果有两种虚伪的评测指标摆在厂商面前,一种能够促进销售,另外一种对销售没有什么好处,那么厂商会选择哪一种呢?结果很容易预测。

    不幸的是,厂商在MHz上的竞争将处理器引向了另外一条道路 – 更大、更复杂的单线程系统。这与CMP的宗旨相去甚远,而且越来越远。执行问题。如果要将传统的复杂核心变成成功的产品,我们中的许多人可能会低估其工程方面难以想象的难度。因此,似乎用退而求其次的方式才能得到成功的解决方案,将才智、动力和执行这些因素通过适当的组合变成真正的产品。线程并非无处不在的。虽然服务器一级的工作负荷在很多年以前就可以实现多线程运行,但桌面工作负荷中却很少出现这种情况。因为桌面系统的数量巨大,而服务器CPU的开发和制造成本又极其高昂,桌面处理器的收益有很大一部分都被用于补贴服务器 CPU的研发工作。由于桌面系统缺乏多线程能力,CMP就不可能轻松地实现广泛的应用,其推广的急迫性也就不复存在。我将在本文的后面的部分对这一问题进行详细的探讨。

采用可怕的线程

    业界采用CMP设计的步伐非常缓慢,这反映出人们对CMP机遇的担忧。业界担心,只有当有足够的线程时才能够充分发挥CMP的优势。这种担忧的根源主要是两方面的因素:并行编程的复杂性和普通应用的线程级加速潜力。并行软件的复杂性很可能会降低程序员的生产效率,使程序员很难写出正确的、有效率的程序。计算机科学专业的学生对并行编程的了解是很有限的,而且也没有哪一种常用的语言与生俱来就可以支持并行计算技术。另外自动编译器并行技术的发展也相当缓慢,这些因此都使人们担心很多应用根本来不及充分发挥多线程芯片的优势。

    当然,也有乐观的一面。小型多处理器的使用范围正在逐步扩大,这使得更多的程序员能够接触到并行处理硬件。而且市场上也出现了越来越多的工具,可以帮助程序员查找错误和性能问题(例如线程检查程序8和性能调试程序9)。另外,一些专家级的程序员能够编写与效率较高的线程代码,其中程序员也可以充分利用这些资源。快速锁定和线程高效内存分配库就是这类编程杰作中的典型例证,而且它们也被广泛地利用。从更大的规模上来说, Google的MapReduce10 等库使程序员可以更容易地编写高效的应用,并让这些应用使用数百个,甚至数千个线程在在大型数据集中完成采矿任务。的确有些算法是很难实现高效并行运行的,但多数需要CMP提供额外性能的问题级并不存在这种情况。除了一些特例外,基本上要想获得并行加速是比较容易实现的。这也就是为什么数据库应用的并行工作负荷在过去的十年中一直能够成功地运行。在Google公司里,我们通常可以对我们的CPU密集型工作负荷进行调整,使其可以在需要的时候使用更多的硬件线程。也就是说,只要硬件资源数量较大的服务器在经济上具备了足够的吸引力,我们就会毫不犹豫地选择多线程处理技术。

    CMP面临的真正挑战并不是在服务器上,而是在桌面一级。许多常用的桌面应用都不具备并行处理能力,这部分是因为它们使用的数据集较小,另外也是因为直到最近几年多线程CPU才出现在桌面系统市场中。随着越来越多的数据密集型工作负荷(如语音识别)成为桌面系统的常见应用,CMP系统对这部分市场的吸引力也会变得越来越大。需要注意的是,对于那些并行处理能力较左的应用来说,CMP仍然是一种非常友好的目标平台。在CMP中,并发线程之间的通讯比传统的SMP系统要高得多,尤其是使用共享在片上缓存时,这种差距更是明显。因此,如果工作负荷需要在线程之间进行大量的通讯或同步,整体性能所受到的负面影响要小得多。如果用户需要对已经建立的代码库进行初期并行处理改造,那么在改造的过程中,CMP架构的这种特性将会使编程的负担大幅度减轻。

CMP逐步得到主流的接纳

    对于Google提供的这类大规模服务来说,高性价比的分布式计算系统是必不可少的。在这些系统中,由于工作负荷的分布式特性,单线程的性能并不重要,重要的是整个系统的综合成本/性能比。芯片多处理技术非常适合满足此类要求。在运行原生并行工作负荷时,CMP可以比传统的乱序(wide-issue)单核心架构更好地利用片上集成的资源和内存系统,因此可以在芯片预算不变的前提下带来更高的性能。基本上,CMP比传统的CPU设计拥有更高的功率效率,因此可以帮助用户在未来的几年中有效控制能源消耗的成本。

    然而,值得注意的是,单凭CMP并不能解决功率效率方面的挑战,但可以至少可以在未来的两至三代CPU上减轻这方面可能出现的问题。从长远趋势上来看,只有基本线路和架构上创新才是解决这类问题的根本道路。计算机行业已经准备接受芯片多处理技术,并将其作为桌面和服务器市场中的主流解决方案,但似乎业界对CMP的接纳仍然有一些不情愿。只有当厂商必须将CPU的温度保持在一个安全的热值包线内时,CMP并行技术才有可能成为必然的选择。这种方法虽然可以将单线程性能方面的损失减至最低程度,但它也很可能无法实现芯片多处理技术完整的成本效益潜力。一些厂商都将赌注押在了速度较慢的核心上,希望它们能够对高性能系统的经济性产生积极的影响,但事实上这种赌博的风险更大。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章