【IT168 评论】谈到高性能计算机或超级计算机,不少人都会想到通过每秒多少亿次浮点计算能力或者用Linpack值来衡量系统的性能,并以此来衡量机器是否符合自己的需求。然而,这种观念已经过时了。在6月24日主题为“应用为本,寓智于衡”的2011年英特尔高性能计算研讨会上,英特尔提出的“平衡计算”理念受到了与会专家的一致认可。
根据此次研讨会上专家们讨论的情况,IT168服务器频道总结认为,所谓“平衡计算”,主要体现在以下四个方面:
一、CPU、I/O、存储之间的平衡
首先,从一套高性能计算机系统的硬件构成来看,它包含了计算节点、I/O节点、存储系统、连接网络等部分,系统整体性能的高低,并不简单取决于CPU能跑多快,尽管对于大多数高性能计算应用来说,浮点处理能力是一个最关键的指标。由于今天的CPU发展很快,如最新的至强处理器不仅主频能达到3GHz以上,而且在一个Socket中可以拥有10个核,可以同时执行多个线程,而相对来说,I/O与存储的发展要缓慢一些,加上实际应用中系统需要处理的数据量越来越大,数据交互越来越多,这些使得存储和I/O已经成为当今高性能计算系统的短板所在。【参考:高性能计算系统性能优化 打破存储瓶颈】
为此,早在两年前,英特尔就成立了数据中心事业部,开始将旗下服务器、存储和网络产品线的创新归入统一规划,以实现平衡计算的理念。
在此次研讨会中,英特尔高性能计算架构师David Scott博士就以石油勘探地震波计算为例,详细介绍了英特尔的平衡计算技术。David谈到,系统的设计主要取决于应用的特征,今天的地震波计算,由于采用了更加先进、优化的算法和软件,使得系统对于存储带宽、内存、网络带宽变得非常敏感,数据在系统中移动的成本变得越来越昂贵。
▲英特尔高性能计算架构师David Scott博士
为了应对存储、网络带来的新挑战,近年来,英特尔已经将至强处理器拓展到存储系统领域,2010年绝大部分存储厂商发布的新品,如HDS的VSP、IBM的Storwize V7000和NetApp的FAS/V6200及3200等中高端产品,都采用了英特尔架构。另外,英特尔也在引领固态硬盘(SSD)的创新,这种硬盘可以非常合适地充当高性能计算集群每台服务器在内存与硬盘之间的缓存,以让CPU和内存可以更快地读写数据。在网络领域,英特尔也在推动万兆以太网的产品创新与成本降低,让更多高性能计算用户能够早日借助到万兆网在增大带宽、降低延迟、提升可靠性、统一简化网络等方面的优势。【参考:万兆以太网普及 降低价格高门槛是关键】
▲英特尔万兆以太网带来的优势
二、性能、功耗与编程应用之间的平衡
随着高性能计算系统越做越大,百万亿次、千万亿次的机器开始被广泛采用,甚至英特尔还提出了在2020年前实现每秒百亿亿次浮点计算性能(ExaFLOP/S)的愿景——这比今天全球最快的超级计算机还要快上百倍。对于这些大机器的用户,如大型超算中心,仅仅考虑系统性能的扩展显然已经不够,还需要综合考量成本、功耗、稳定性、易用性、占地空间等多个条件的限制。
另外,随着处理器技术的飞速发展,如从多核到众核,从同构到异构,从千万亿次到百亿亿次,软件设计也开始面临极大的挑战,比如,传统的算法如何获得性能提升,软件系统设计需要重新思考。
David在接受采访时也谈到,要实现百亿亿次的梦想,除了要考虑能耗限制之外,还要着重考虑系统的稳定性,因为系统规模越大,出问题的概率也越高,加上低功耗的限制,一些部件也容易出问题,其次就是软件,因为系统规模加大,要跑成千上万的线程,目前还看不到这样的应用会是什么。
三、根据应用选择合适的处理器
不同的高性能计算应用有不同的特点,有的偏重内存带宽,有的是计算密集型,有的需要高度并行,因此不同应用对计算资源的需求不一样,为此,英特尔通过至强多核CPU和即将问世的众核处理器给出了不同的答案
▲不同应用有不同的计算特征
对于大多数的主流高性能计算应用来说,至强5600和即将在2011年下半年推出的至强E5都是很不错的选择。至强E5(代号为Romley)带来的提升主要表现在性能和能效上的提升,而这将主要源于它将采用的全新Sandy Bridge微架构。新添的AVX(高级矢量扩展)指令集,以及相对应的较高宽度矢量处理单元就是加速浮点计算密集型应用而生,该技术使用最小的核心面积实现了双倍的浮点吞吐量,之前一代产品,峰值浮点性能可翻一番。
对于有些需要大内存或共享内存的应用,比如,序列空间、油藏模拟、3D图像渲染等,不适合跑在传统的集群上,而传统的RISC小型机又太贵,则可以使用基于至强7500或至强E7的四路或八路服务器来充当胖节点,或用作单独物小型处理中心。
对于少量需要高度并行的应用,则可以选择CPU+GPU协同计算的模式,也可以等待2012年英特尔基于集成众核架构(MIC)的50核产品——Knights Corner。跟GPU最大的不同之处在于,MIC由于使用X86内核,从编译器、数学库到整个编程模型非常灵活,现有所有的至强模型同样适合于MIC,软件与应用移植更加容易。【参考:英特尔众核技术受关注 MIC比拼GPU】
David告诉记者,高度并行计算主要是通过多个小的定序执行的计算内核来获得高的整体积聚性能,这类应用特征包括:大量的并行以使用所有的小核,大量的SIMD操作,高密度计算等。目前来看,只有5-15%的应用符合上述特征。他建议用户可以首先为多核CPU优化,然后再考虑向众核进行扩展。
四、以应用特征分析为基础来优化系统
了解高性能计算系统的朋友知道,在系统测试与选型过程中,往往要考虑很多指标,包括CPU主频、缓存大小、核的数量、QPI数量与带宽、内存主频与容量、存储和文件系统、网络、加速技术等。而且根据应用不同,对于这些指标可能有不同的侧重,比如有的应用是浮点计算密集型,有的是I/O密集型,有的则需要大内存。
英特尔数据中心事业部亚太和中国区高性能计算/工作站方案架构师何万青博士在研讨会上谈到,建议用户基于自身的应用需求特征,通过一系列测试工具来对HPC系统进行精细化的研究分析,找到可以调整和优化的部分,然后通过“硬件升级、软件性能调优、应用扩展”等不同方法,来提高系统的整体性能,达到硬件系统与应用之间的平衡。
比如,针对高向量化的应用,主要关注单个线程的CPI、缓存命中率、浮点计算的向量化比例、内存带宽等因素,需要CPU的内核足够强大,如英特尔的至强处理器;针对大规模多线程并行的应用,主要关心多进程通信、同步、并发度、扩展性等问题,可以通过数量众多的小核来运行,如英特尔的MIC众核产品;而针对I/O密集型应用,需要重点关注的是磁盘写、网络带宽和延迟等指标,可以通过SSD固态存储或万兆以太网技术来优化。【参考:HPC系统优化 按应用特征分析对症下药】
总之,随着应用的发展,对计算规模、数据量、结果的精度与实时性等要求也来越来越高,因此,使得今天的一套高性能计算机要想发挥出最大的效能,需要综合考量与平衡多种因素,弥补相应的短板。在这一点上,产业界与用户已经达成了共识。