【IT168 专稿】近日,笔者在跟一些业内朋友交流的过程中,经常听到这样一种观点:多核化很可能会对机群(Cluster)市场造成冲击——原来想购买小规模机群的用户发现,市场上的四路以上双核/四核服务器已经能够满足要求。国外一家开发数据库软件的Pervasive公司CTO Mike Hoskins就很赞同这种观点。他认为,多核处理器会同机群计算之间形成一些冲突。随着在芯片上集成的核心数量越来越多,构建纵向扩展(scaled-up)的SMP系统比横向扩展(scaled-out)的Cluster更有价值。
![]() |
商用软件语言的限制
Hoskins认为,cluster和grid模式一直都不太适合他所从事的数据密集型计算领域。因为这一领域中所用的传统技术大多是C语言和JAVA应用,大多运行在大型机或大型SMP服务器上。而Cluster和MPI编程通常被当做边缘技术。由于Cluster本身难以部署和管理,而且编程模型又很古老,不能很好地支持商业应用开发环境。
对Hoskins而言,要想把数据密集型和计算密集型应用带入JAVA世界,障碍最小的途径就是通过SMP架构。
中科院软件所研究员张云泉博士也颇有同感,他对IT168记者说,不能广泛支持商业应用开发环境确是机群存在的一个问题,比如采用OpenMP并行的应用程序一般只能在SMP节点上运行,如果要在机群的节点间运行,就需要通过购买Intel 公司的支持Cluster OpenMP的编译器,成本也就提高了。
另一动因:多核SMP的性能在“疯长”
从系统性能来看,多核SMP也是越来越强。尽管今天主流的多核处理器还只是双核芯片,但不久四核就会取代双核成为主流。如果我们按照摩尔定律曲线来看,到2010年,一个标准的通用处理器就会达到16核心。如果你把四个这样的处理器放进一个SMP机箱中,你的机器性能就会达到甚至超过今天的大多数工作组级和部门级Cluster系统。
由于工作组级和部门级系统是HPC中增长最快的一块市场,因此,向SMP转换也就意味着市场格局的变化。如果多核SMP系统能取代低端Cluster市场,就会促使Cluster进入高端、但量更小的容量计算(capacity computing)领域。
Azul和Sun就是纵向扩展SMP系统的两大重要支持者,他们似乎比其他芯片厂商更热衷于推动多核发展。Azul在其768路的Compute Appliance系统中使用了拥有48个内核的Vega 2芯片,而SUN则在其T1000和T2000服务器中大量使用了拥有8个内核、32个线程的UltraSPARC处理器。就在上个月,SUN宣布成功使用即将推出的核心代号为“Rock”的16核心UltraSparc处理器启动了Solaris 10操作系统,这将意味着SUN能够在2008年下半年推出第一款基于Rock处理器的系统。由于当前X86处理器最多还只有4个内核,所以,通用的大型多核SMP还较少。但是,我们看到,SGI的F1240服务器已经可以提供48核的X86 SMP架构,并可扩展到96核心。
到2010年,我们将迎来更多内核的时代,这种趋势最终会迫使capacity机群向高端发展,从而侵蚀承担超级计算重任的capability系统。
针对国内的情况,记者采访了曙光技术支持中心总经理邵宗有,他表示,从理论上说,多路SMP确实会在一定程度上冲击机群系统,但从市场表现来看,主要是4-8个节点的小机群卖得少了,16个节点以上的机群还是主流,目前没有受到太大冲击。另据了解,虽然HPC机群是曙光的看家本领,但从几年前开始,曙光也明显加大了四路、八路SMP系统的研发力度,如2005推出的A950,能支持八颗AMD多核皓龙处理器。(参看邵宗有以前的文章:SMP 对决 Cluster:融合还是取代?)
多核SMP本身也存在问题
当然,这也许并不意味着机群系统会消失。因为,就象在集群中扩展节点会存在种种问题一样,在一个机器中扩展内核数和处理器数也会面临这样或那样的问题。
SMP系统向上扩展最大的障碍在于内存墙(memory wall)。从定义上看,SMP系统共享内存空间以及进入每个处理器的数据带宽,因此,每个内核的性能会受制于内存系统的性能。随着争抢内存资源的核心数越来越多,每一个核心所能获得的带宽也会成比例地减少。虽然内存技术并不是停滞不前,但是,RAM速度是每10年才翻一倍,而多核CPU是以摩尔定律的速度发展,每18个提升一倍,因此,CPU的发展速度远远快于内存技术。当前,我们看到,有些旨在提升内存访问的新技术已经出现,比如IBM的3D chip stacking、Intel的on-chip photonics以及Sun的proximity communication。不管哪一种技术最终能够得到大规模应用。就短期来说,内存墙却是阻止SMP向上无限扩展的一只拦路虎。
另外,随着你在一个系统中放入的核心数和处理器数越来越多,系统架构也必然会要求你增加额外的内存,以保持计算性能和内存容量之间的平衡。问题在于,当你的内存容量达到TB级时,你就不得不考虑频繁发生硬性错误的可能性。虽然类似memory scrubbing这样的技术可以解决这一问题,但相应的系统成本也会随之攀升。
HPC应用是否会给SMP机会?
综上所述,语言和性能上的优势确实会给SMP带有一定的机会,但共享内存带宽的结构又会阻止SMP无休止的向上扩展。而且,一个未可知的大问题就是未来HPC应用对性能会有多大的需求。如果当前那些运行在低端机群上的应用不会发生特别大的变化,那么,几年内,相应的软件代码也可以运行在SMP工作站上面。而如果这些应用对性能的要求越来越高,那么,随着节点和互连网络的发展,它们就有可能迁移到更强大的机群上面去。
在HPC领域中,有些大型问题如气象模拟和其他类似的大型模拟,对性能的要求是永不满足的。随着你对这类模型的时空精度要求越来越高,工作负载也会相应地增加。但是对于商用性HPC领域,情况要复杂一些。有些问题受到学科领域发展水平的限制,如对细菌病原体的染色体分析。这类应用一般不会扩展。但是工程模拟之类的应用却会同气象模拟一样,性能也是越高越好。
张云泉也认为,一般来说,需要大内存、强CPU计算能力的应用更适合SMP些,而对存储访问带宽要求较高的应用则更适合机群系统。随着多核的发展,一台四路多核的SMP系统在性能和成本上都会优于由数个节点构成的机群。
总的来看,对于那些既希望转向高性能计算平台,又因为软件模型的困难度和系统的复杂性,不愿意迁移到机群或网格计算系统的用户而言,相信多核SMP系统将是个不错的选择。
