Nehalem:改变千万亿次计算的未来

DoSERV服务器在线 3月27日原创报道:Nehalem的出现几乎是一种必然:传统的FSB已经越来越捉襟见肘,无论是内存带宽还是内核之间的通信,如果Nehalem新的微架构不出现,我们几乎难以再看到处理器的性能能够往前迈出如此一大步。

隶属于至强系列之下的Nehalem,是未来1~2年英特尔公司在服务器及企业关键型运算平台上最强有力的武器,这项武器的出现被许多媒体解读为跨时代或是“具有突破性”的,毕竟,在目前所能见到的各种关于Nehalem的评测数据中心,它已经给了我们太多的惊喜。

不过,既然Nehalem已经出现,我们不免想到一个至强必然会进入且会深度切入的市场——高性能计算,而当人们对Nehalem的发布一直都关注在直连架构上的时候,我们是否应该考虑一下Nehalem对高性能计算市场会造成什么影响呢?

尤其是在现在我们谈起千万亿次的时候,我们是否能够从Nehalem身上看到哪些千万亿次的影子呢?

千万亿次与Nehalem的亲密接触:为未来设计处理器

在此之前与英特尔公司顾凡的采访文章中,我曾提到顾凡对于目前高性能计算市场的一些看法和对千万亿次计算的前瞻性讨论,顾凡在谈起千万亿次计算的硬件准备时曾谈到,单从处理器性能上来说,处理器的硬件储备几乎已经完成,换句话说,如果用简单的堆积方法的话,制造一台千万亿次计算机并非是难事,但问题是,如何让硬件架构,让今天的架构能够成为明天的架构,甚至为明天的计算在今天就构建处理器架构。

顾凡的话并没有错,现在TOP500的冠军Roadrunner已经可以达到千万亿次,但问题是,最根基和大众化的非金字塔尖上的高性能计算如何能够保证从百万亿次到千万亿次的过度,用户能够保证在合理的拥有成本和架构延续性下,完成未来的千万亿次。

我们可以试想一下,如果我们今天单纯为了今日的百万亿次计算就构建一套难以在未来迁移到千万亿次计算的系统,我们将会在每一次高性能计算发展的阶段,进行一次几乎全新的架构升级与系统解构,这样的工作量恐怕不是一件简单的事情——而最可怕的是,但我们的硬件架构不断改变的同时,我们的应用程序则将会更加频繁的跑来跑去,最终的结果,必然会导致应用程序与高性能计算集群架构的脱节。

之所以说Nehalem是“为未来设计的处理器”,其来源可以追溯到英特尔公司2008年的IDF大会上,当时,英特尔高级副总裁兼数字企业事业部总经理帕特基辛格在《从千万亿次运算到毫瓦》的演讲中曾经提到,Nehalem是英特尔可动态扩展的全新处理器微架构+这就是重中之重:借助高达 8MB 的三级缓存、7.31 亿个晶体管、Quickpath 互连技术(数据传输率最高达每秒 25.6GB)、集成内存控制器和可选的集成图形处理功能,采用 Nehalem 微架构的处理器将彻底从笔记本电脑一直扩展到高性能服务器领域。

在采访顾凡时,他曾经提到,高性能计算对处理器的要求,或者说对整体平台的要求之一,就是可以“由小变大”——我们认为,由于Nehalem将会是一种注重Scalability可伸缩性的架构,一方面它可以根据需要动态地管理核心、线程,另一方面它的架构可以根据需要变得很复杂,可以满足高性能计算的要求。Nehalem还增强了缓存的共享性以及能源管理特性,并再次提供了超线程技术。Nehalem最令人印象深刻的就是其可扩展性了,这个特性由两部分组成:Intel QuickPath Architecture快速路径架构和Integrated Memory Controller集成内存控制器。

因此,Nehalem完成了我们对千万亿次计算的一个最主要的要求:可以动态的扩展,可以从很小的节点数增加到很多的节点数。

Nehalem影响千万亿次的关键点:QPI与IMC

未来,Nehalem可从双核扩展到八核,并通过同时多线程(SMT)技术实现 4 到 16 个线程的并行处理,而Nehalem 微架构产品的内存带宽将是当前性能最高的英特尔至强处理器系统的4倍。

这只是Nehalem的性能和指标的一小部分:它的其他特性包括支持 DDR3-800、1066 和 1333 内存,SSE4.2 指令集,每个内核拥 32KB 指令缓存、32KB 数据缓存、256KB 二级数据和指令低延迟缓存,以及全新的二级 TLB(旁路转换缓冲)层级。

在Nehalem中,英特尔加入了智能加速技术和新的被称为HTT的超线程技术,通过使处理器主频适应应用需求,扩展性能以满足峰值性能需求,英特尔智能加速技术可以随时随地提供所需性能。该技术支持每个处理器内的特定内核在设定的范围内以超出额定频率的频率运行,根据需要提升频率以提高执行速度。而对于超线程技术来说,多种应用均可适应并行多线程执行。英特尔超线程技术支持每个处理器内核中的同步多线程,即每个内核两条线程,或每个四核处理器八条线程。超线程技术可以大幅减少计算延迟,从而充分利用每个时钟周期。例如,当一条线程在等待结果或事件时,另一条线程可在该内核中执行任务,从而最大限度地缩短中断周期。

但这些都不是对千万亿次计算会产生影响的最重要的部分,在LS-Dyna、Fluent、SPECfp*_rate_base2006和Stream等几个模拟碰撞、流体力学计算、科学计算模拟和内存带宽性能测试中,Nehalem所带来的性能提升从2.02到3.63不等,这显然是巨大的——我在之前已经说过,处理器的性能准备已经就绪,但Nehalem的出现所存在的意义并不在此。

好吧,下面我们才会谈到Nehalem真正的对千万亿次计算的影响:QPI和IMC。

我们首先来谈QPI——这实际上是一个已经老生常谈的问题:为了达到最高的应用性能,您需要最佳的处理速度和足够的数据带宽,使每个 CPU 都能够全速运转。直联架构不仅仅意味着处理器与内存直接相连,还让处理器之间也直接联系起来。Hyper-Transport总线的使用让Operton进入了高性能计算市场,QPI所作的事情是一样的。通过QPI总线,处理器之间可以直接相连,不再需要经过拥挤、低带宽的FSB共享总线,多处理器系统运行效率大为提升。 对于多处理器系统而言,QPI提供的巨大带宽对性能提升很有作用——Nehalem的未来特性甚至被认为可能出现内核之间难以想象的智能通信。

由于英特尔QPI技术是一个平台架构,因此,可提供微处理器与外部存储器,以及微处理器与 I/O 中枢之间的高速点到点连接。每个处理器均可通过集成内存控制器直接访问自己的专用内存。如果某处理器需要访问另外一个处理器上的专用内存,可通过连接至所有处理器及其内存的一致的高速、低延迟英特尔快速通道互联技术进行访问。

下面我们来谈IMC——集成的内存控制器:这个被英特尔成为为不同目标市场优化内存控制器的技术,带来了微处理器对内存的跨时代控制,对于Nehalem而言,IMC集成内存控制器,它使CPU到内存的路径更短,大幅度降低了内存的延迟,同时每一个CPU都具有自己专有的内存带宽。这一点在数据库应用中表现非常显著,数据库应用对存储器的延迟很敏感。

根据媒体报道,直联架构还隐含的一点是,去掉了FSB(或类似总线)对内存存取的限制,FSB时代,存取内存需要处理器经过FSB总线访问MCH,再访问内存——而FSB总线已经限制了内存带宽的提升。在使用IMC之后,Nehalem的内存控制器立刻提升为三通道(每处理器),同时不同的处理器都具有独立的内存带宽。

你可知它如何影响千万亿次计算?

Nehalem的影响力的来源就是QPI与IMC,而这种影响力来源的出生,要与我们当今的计算方式有着莫大的关系。

在与顾凡的沟通中,他曾提到,“在高性能计算的过去中,有两类性格完全不同的应用。”顾凡所指,就是对于主频敏感型和内存带宽敏感型两类应用的不同。在高性能计算中,不同应用程序对处理器的浮点能力的要求和对内存带宽的要求是不同的,这种情况不仅常见,而且往往出现在同一个领域中。

比如说,对于能源行业来说,油层模拟的应用程序就需要极高的内存带宽,而地震资料处理则需要极高的主频——传统的处理器由于架构的问题,在主频提升之后,往往出现“喂不饱”的问题,FSB架构并不能将数据及时送给处理器,从而导致喂不饱处理器的问题,对于这个问题,很显然在八核时将会十分突出,另一方面,对于主频敏感型来说,QPI架构提高了处理器之间的通信能力,处理器间的通信能力的增强,对于发挥主频自然大有裨益。

于是,我们发现了Nehalem影响高性能计算的最重要的部分:Nehalem将能够兼顾不同类型的应用程序,同时满足主频敏感型和内存带宽敏感型两类应用——这在之前是难以实现的,也就是说,千万亿次计算中,Nehalem将首次将不同类型的高性能计算——千万亿次计算统一起来,千万亿次计算获得了跨时代的两种不同应用融合的可能。

FSB走了这么多年,现在终于要退休了,让位于新的Nehalem架构,QPI与IMC,带来了更多的核心和更多的内存,处理器的性能获得了更为完全的全方位的释放,“闸门全打开了。”——Nehalem出现之后,高性能计算市场将面临一场可观的市场变革,而千万亿次计算将与现在的百万亿次计算显著不同。