如何构建以应用为基础的HPC系统

应用还是性能?关于高性能计算集群的这一争论已经日趋激烈,本应该以应用为本的HPC集群系统由于Linpack峰值的备受关注逐渐走向性能为先的风向,也让人们对于HPC集群的选择更加迷惑:到底是以应用为主,还是性能为先?

在IDC举办的一个HPC用户的论坛上,纽约城市大学的HPC总监Paul Muzio曾说过,一个HPC软件工程师的理想就是有一个强大的处理器能够直接访问内存,再思及清华大学计算机系副主任陈文光教授提出的"面向应用的HPC系统测试"方法,以及英特尔中国服务器产品事业部产品经理顾凡曾多次坚持"超级计算机只是个工具,高性能计算应当回归应用"的观点,有理由认为"构建面向应用为主的HPC集群系统"时代已到来。

日前,英特尔HPC架构师陈健接受比特网(Chinabyte)专访,并讲述了如何构建基于应用实际性能的HPC机群设计方法。陈健表示,构建基于应用的的HPC应当遵循以下四大原则:

1、 确定合适的测试应用和负载–这个步骤主要由用户完成,毕竟最后的应用肯定用户最了解。比如石油行业,现在一般在选择应用作为测试的石油行业应用时,通常会选择地震资料处理软件GeoEast、Geodepth、GeoCluster等作为测试对象,主要的应用是地震资料解释、油藏模拟,而选择的原则是真实、有代表性、可重复;

2、 收集现有平台CPU/内存/Disk/网络的主要特征指标,CPU只是里面的一个环节,在系统级应当要计算CPU应用计算时间以及系统开销时间;Memory层面,选择内存使用率/SWAP使用率指标,因为一旦SWAP被使用就变相说明内存不够用了,这也说明了应用需要的真实的内存容量;Disk方面,测试磁盘读写;Network,网络收发,在网络层面,性能主要由这两个指标决定,因此可以不用去考虑太多指标;

而在微架构级,需要考虑代码效率,CPI等;浮点指令是个很重要的指标,因为石油绝大多数都是浮点运算;向量化,fVEC,这两个指标可以能够预测新处理器能带来多少提高;

另外还有两个指标就是向量访问,Memory Bandwidth,这被用来测试每秒钟从内存中取数据的速度量;

一般在这一步骤,就可以基本确定CPU选型。如果该用户多以计算密集型应用为主,那么英特尔至强5600系列服务器处理器会是一个很好的选择,至强5600系列处理器采用32nm制程工艺,这是英特尔处理器中首批采用该工艺、并最多集成了六个内核的芯片产品。除此之外,该系列处理器集成了上一代产品的智能计算特性,如使用英特尔睿频加速技术、英特尔超线程技术等。

在具体的时钟频率和功耗方面,至强5600系列中高端四核型号的最高主频可达3.46GHz,封装功耗为130w;高端六核型号的主频可达3.33GHz,封装功耗问95w。低电压版的四核及六核处理器功耗仅为40w和60w,该系列处理器已经成功打破12项与双路系统相关的性能纪录。

而用户如果多为内存敏感型应用,则可以选择以至强7500为基础搭建胖节点。凭借相当于至强处理器7400系列8倍的内存带宽,以及每个处理器搭配的16根内存插槽带来的相当于前一代产品4倍的内存容量提升,至强7500系列在四路服务器平台中能够支持高达1TB的内存容量,而整体性能平均比上一代产品提高三倍之多。

至强处理器7500系列是首款具备机器校验架构恢复功能的至强处理器产品,该功能可让处理器与操作系统和虚拟机管理器协作,将系统从致命的错误中恢复出来。而此前此功能仅用于安腾处理器和一些RISC处理器产品中。

同时,在这一步也可以基本上确定所需内存的类型以及大小。曾经有一个证券行业用户在使用至强7500系列处理器搭建的机器进行测试时,就出现过内存不足的情况,从而导致不能充分发挥处理器能力,因此,在这里陈健建议,需要根据实际应用的需求选择合适的内存容量,从而保证所选择硬件都能充分发挥性能。

3、 分析新平台与老平台的差异–对关键特征指标做POC验证,验证这些指标哪些是对应用运行最为关键,如果很清楚两个平台之间的差异以及新平台的性能指标,再综合老平台的指标,就可以预测新平台会达到的性能;

4、 综合考虑性能/价格/功率,设计最优化机群系统方案。

陈健表示,HPC的选择绝非硬件的单纯增加,在如果要更换平台的话一定要将软件代码以及软件优化、代码移植的成本和日后应用考虑进去。

不难看出,其实与之前我们提到的陈文光教授的《构建面向HPC应用的测试》一文中所描述相同,在面向应用的HPC系统搭建中,都会针对不同特性的应用选择相应的处理器。

如果大家也跟踪过此前的Top500 的话就会发现,排名靠前的系统趋势已经从只跑一个应用、负载一个应用,到现在负载越来越多不同的应用。而IA架构系统跨多个应用程序的能力非常强,服务于多个不同应用特征程序能力非常强,在构建面向应用的HPC系统中,相信IA架构系统已经会得到更多的青睐。

同时,英特尔提供了一整套基于HPC的函数库、编译器以及各种优化工具,这也意味着用来进行代码优化、应用调优的是同一套工具,减少了软件移植造成的代码损失,从而有效地保护用户的代码投资。