ChinaGrid2009:HPC的本质回归与全新测试理念

DOIT山东烟台报道:ChinaGrid 2009学术年会在8月21日下午进入分组讨论,英特尔的两位发言人——服务器平台事业部产品经理顾凡、亚太客户响应团队技术经理何万青分别就《用英特尔领先产品技术构建高性能计算环境》和《高性能计算系统基准测试及评估经验分享》为题向与会代表介绍了有关英特尔公司对于高性能计算、网格计算方面的进展和观点。

在山东烟台召开的本次ChinaGrid 2009学术年会,不仅仅得到了ChinaGrid专家组、教育部和众多大学的积极响应和全力支持,更得到了像英特尔这样的业界厂商的支持,而由于英特尔在全球的TOP500高性能计算排行榜中占有的绝对的平台数量优势,双方的互补效应显然将十分的强烈。

事实上,顾凡和何万青两位演讲嘉宾的主要核心议题,就集中在高性能计算方面非常重要两个方面:高性能计算的发展及应用趋势、高性能计算系统的测试标准。

顾凡:让高性能计算回归本质

“让HPC回归本质,将HPC作为一个工具,这台HPC到底是在用什么,做什么,这样也许大家也就不会在看到指标的时候再去惊诧。”顾凡认为,高性能计算系统的本质在于“工具”和“使用”,而不是不断的追求评测数据和排行榜——在ChinaGrid2009学术年会的主题演讲上,同样来自英特尔公司的千万亿次产品线架构师David Scott博士也表示,他很希望看到那些排行榜前面的超级系统能够有应用程序在上面跑的满满的(言下之意就是“而不是无法充分利用”)

顾凡认为,HPC应该回归“工具”的本质

与此同时,基于我们都了解“永远希望同样的任务算的时间越短越少,同样的模型能够解决更多的问题。”的HPC“刚性需求”——因此,顾凡表示,高性能计算要充分的去考虑“来自HPC的挑战”在增大问题规模、缩短运算时间和增大物理复杂度的方面因素,而不是单纯的去追求浮点运算量的提升——“因为这三个方面,哪个方面可以提升都对HPC是有益处的。”

顾凡表示,这也就是说,要想让高性能计算回归本质,成为“工具”,在提升浮点运算、追求单节点性能最高的同时,需要同时考虑总线速度、内存带宽,而对于英特尔来说“英特尔始终不遗余力的做系统、产品和软件编译器。”就是为了满足这样的一个需求——“所有的包括多核、众核、AVX都是为了提高浮点计算能力,提高总线速度。QPI解决处理器喂饱的问题,总线带宽、内存带宽能够匹配的上。”

英特尔全面化高性能计算战略

也正是基于此,在本次ChinaGrid2009学术年会上,英特尔方面不断的提出“英特尔所提供的是“平台”而不是单纯提供处理器”的概念——“英特尔核心价值在于处理器、编译器以及生态环境的相关部分,英特尔在进入酷睿架构之后,走向了一个正确的方向,选择了四核的阶段去做了更新(QPI)。随着核心越来越多,内存通道、QPI的带宽也要越来越大,进行匹配。”显然,顾凡认为,正是基于对整体、对平台以及除浮点计算之外的更多应用需求的认知,英特尔能够满足“让HPC回归本质,变成工具”的要求。

所以,在演讲开始之前,顾凡展示了一副三年前用的PPT:英特尔希望,在数模优化、并行化、数值计算、数据管理、结果可视化方面能够为高性能计算用户提供支持,让他们能够减少在这方面的压力,将更多的精力放在“物理模型、数学模型、理性分析”上面。

何万青:基于特征分析的评价标准

在年初的文章中,我曾多次分析了目前高性能计算的评价体系,尤其是TOP500所采用的Linkpack,并一直期待能够出现一个或是一种更加客观、贴近用户应用的高性能计算系统性能评价方法,而在本次ChinaGrid2009学术年会上,何万青的演讲因此也就对我产生了极大的吸引。

对于TOP500所采用的Linkpack,何万青却在演讲开始时给予了肯定,这显然出乎我的意料——他表示:“专门来测试浮点性能的,能够榨取最后一点性能,验证系统进行“体验”,简单和趁手的工具进行系统性能的测试。很多系统的bug都是Linkpack找到的。”

何万青认为,Linpack还是有用的,可以做TOP500的指标,但是不适合实际应用中的系统评价

因此,“本身作为TOP500的指标是非常好的。”——这句话的意思再简单不过:对于TOP500有用的Linkpack,对于在实际中评价高性能计算系统或许是不合适的。

何万青所提出的面向对象的Benchmark,基本可以理解为“针对不同的应用,把应用特征摘取出来,进行针对性的测试。”对此,何万青举例表示,在香港天文台,采用Linkpack进行测试其应用的时候,hypertown和Nehalem是一样的,但是具体到三个特殊的针对应用的测试,Nehalem的提升是非常高的,在气象上这一点非常常见,因为气象应用往往更多是对内存敏感型的,而不是频率敏感型的——当然,这个问题我已经在此之前在文章《Nehalem:改变千万亿次计算的未来》讨论过。

言归正传,我们回到对何万青对高性能计算的评价标准上。

何万青将高性能计算的应用场景划分为四个,分别为:单一应用程序、多个同类型应用程序针对特别的应用程序、通用的高性能计算中心(HPC Center),因此,测试应该根据不同的应用场景和应用特征来设定——四类测试方法为:针对应用程序的特点来进行Benchmark测试、根据一类应用程序的共同特点来进行针对性的测试、运行就绪的系统选择正确的Benchmark子集、运行通用的HPC Benchmark获得平均的指标。

何万青的“雷达图”其实道理很简单:看明白某一个应用在哪方面最敏感,一方面可以用来进行优化,另一方面可以评价高性能计算系统的性能——当然是针对某一个或一类特定的应用。

因此,我们在何万青的四个例子上,都看到了由多种应用特性组成的“雷达图”:在一个雷达图上,各个方向上都代表了一个特性,或者说是特征,这正是让应用显示出其“特性”的地方——就此,用户可以根据这个特性来完成对高性能计算系统的针对应用特征,或者说针对实际情况的测试,而不是无论在何时何地都是用Linpack,毕竟并不是所有的,甚至不能说大多数高性能计算应用都是浮点敏感占主要地位的。

何万青的方法简述起来就是找到影响应用性能的几个重要技术指标,设计相应的性能评估模型(变动某个指标会对性能造成什么样的影响),确定合适的测试应用和负载,而不是单纯的使用Linpack,