多核处理器会损害超级计算机的性能?

服务器在线12月19日报道 几年前,CPU厂商达到了性能的极限,不能进一步加快其处理器的速度,提高性能的解决方案就是采用多核。可是,这种做法对于提升性能并没有多少帮助。位于新墨西哥州的Sandia国家实验室的工程师进行的测试表明,多核处理器在高性能计算的某些方面甚至会破坏性能。

这个问题是两方面的。第一,正如500强超级计算机排行榜显示的那样,许多系统主要是以x86架构为基础的,而x86从来就不是超级计算机的处理器。x86架构有内存带宽和内存管理的局限性,这在PC上不会出现,但是,在超级计算机上就不一样了。

Sandia国家实验室的工程师发现,增加的内核数量越多,性能就下降得越多,因为内存跟不上CPU的性能。此外,英特尔和AMD现在的研发重点是时钟速度较慢的四核处理器,而不是双核。这样,CPU的速度也减慢了。

IDC负责高性能计算的高级分析师Steve Conway说,这个问题已经出现了很长时间,多核使这个问题更严重了。x86处理器从来不是为高性能计算设计的,因为处理器不能以很高的速度相互通讯。

IDC在调查高性能计算的使用问题,到目前为止,21%的接受调查的机构表示他们发现自己的应用程序在新硬件上运行时性能不如在老硬件上运行那样好。50%以上的受访者表示,在未来12至24个月里,HPC都将处于这种状态。

国际电气电子工程师学会(IEEE)出版的《IEEE综览》发表的一篇文章解决了内存的问题,Sandia国家实验室的工程师发现这个问题与CPU和内存之间的连接有关。

前端总线一直被认为是CPU与内存之间的瓶颈,因为所有四个内核都需要通过一个总线。虽然每个处理器上内核数量在增加(英特尔已经推出了6核Xeon处理器并且计划明年推出8核Nehalem处理器),但是,CPU与内存之间的连接数量没有增加。

还有其它一些引起性能下降的问题。许多应用程序不适合并行运行,它们在4GHz或者5GHz的单核处理器上运行的性能要好于在2GHz的8核处理器上运行,这完全取决于应用程序的性质。

一般认为,并行程序最适合在多核处理器上运行,因为工作能够分成许多份并且分配给所有的内核,并且每个内核都不依赖于其它内核完成工作的情况。

一些分布式计算计划是这种应用的理想使用环境,每一个客户从大量的数据中选择一部分数据并且处理这个数据,不依赖于其他任何人的工作。

但是,当步骤A的结果需要处理步骤B的时候,步骤B在得到它需要的数据之前停滞不前,所有的并行计算在这个领域都是没有用的。

超级计算机面临的第三个问题是它们庞大的物理体积。超级计算机现在由一排一排的机架式服务器或者刀片式服务器组成。当一个内核需要的数据在80英尺以外的一个机架上的内存中的时候,会出现什么情况呢?长时间的等待。

IDC分析师Conway说,这个问题在AMD的Opteron处理器上也存在,尽管AMD的这种处理器没有前端总线。采用单核处理器,你可以有x数量的内存。现在,处理器有四个内核,每个内核拥有四分之一的那个内存的带宽。