或许这个标题过于挑衅,有时候我经常会想到高性能计算集群的发展方向,而必须要承认的是,事情似乎还有点不可思议。尤其当谈到并行计算的时候我更容易认为这是重要的一点。一个单独的核(CPU),大内存以及快速的内部互连是我关心的重点。
在我看来,这种设计使得编程更加容易。我猜想,CPU之间的通信行为是一致的,就是本地内存之间的访问。在现代的CPU设计中,有很多内核,多个记忆库,以及快速的网络,本地开始变得很重要,于是本地编程就必须变成一种很"恶心"的方式。
商业HPC集群特性
提及商业HPC集群特性,我倒是很乐意支持使用市场提供的那些恰好我们需要的"触发器"。近年来,GP-GPU也改变了我们对于高性能计算的看法。可能GP-GPU是一种SIMD陈列处理器连接多核心的方式,当前的问题是,GP-GPU可能是伟大的,但是何处去寻找软件。曾经困难的事情(并行编程),现在看起来变得越发困难了(尤其是多核节点、多核处理器以及GP-GPU下的并行编程)。
我讲述了一些有关使用更加低功耗的Atom处理器搭建服务器的建议。可能有人说需要更多的数据,但是我相信这是值得的低功耗/多处理器搭建集群的方法。
而且,看起来我并不孤独。在我发表文章之后,SeaMicro就发布了使用了512个Atom处理器搭建的一个10U的HPC集群,主要的目标市场是"服务器"产业,但是任何HPC的用户都能想到这个设计和我曾经讲过的设计非常相似。当然,Atom处理器并不像它们的大哥哥至强处理器那样性能强劲,但是就像我之前提到的一样,Nehalem运行速度的1.8倍,就会导致7.3倍于Atom D510处理器的热量和22倍的时间。如果Nehalem的性能是7.7倍的话,那么同样的性能Atom的解决方案实现了3倍于Nehalem的性价比 (双核Atom与四核Nehalem相比较)。初次此外,还有一些事情需要好好想想。
HPC集群实验
下面我将要做一个实验,我将一个标准的八内核的X86服务器和一个GP-GPU显卡做示范。首先,我将这个处理器切割成单独的核心(译者偷笑:原作者够彪悍的~)。接下来,我把GP-FPU切割成单独的块。这个看似并行的架构比多核处理器更允许这种分离。
接下来,我将要把主内存和GP-GPU的缓存连接在一起,最后我就得到每个单独块都有独立的核心,一些融合的处理器和一些内存。
我再把这些处理器在Mini ITX主板上做成八个计算节点,每个节点都是一个完整的系统,如果我使用万兆以太网去连接的话,那么每个节点上一个小陈列处理器做并行处理,就更完美了。编程仍然不是那么完美,但是跟容易管理。
在我的重组中可能有一些事情被放慢了,但是这确实是容易的方案。幸运的是,也有其他的人出于不同的原因有这样类似的想法。
英特尔也在开发融合处理器,但是Nvidia肯定不会在这一点上努力,设计生产CPU是很困难的事情。但是我觉得这个概念非常有趣,集成的CPU/GP-GPU的商业处理器更像是理想中的更容易进行程式集群的产品。
计算机集群概念
计算机集群简称集群,是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。