高性能计算的变与不变 百家争鸣的时代

  基于集群的高性能计算技术在过去的二十年中将传统的单机高性能计算赶下了神坛,其性能在二十年间也提升了成千上万倍。根据预测,2018年到2020年之间,峰值性能为E(Exascale,相当于1000PB)级的高性能计算产品将会问世,相当于天河二号系统的33倍。目前,天河二号的峰值性能大约是33.83PFlops,在最新的全球高性能计算榜单上的峰值计算性能排名第一。但是,随着高性能计算系统的性能不断提升,系统规模也在不断扩大,相应的技术难点和瓶颈也发生了变化。北京大学信息学院计算机系副系主任陈一峯表示,系统可扩展性和可靠性问题将是E级高性能计算系统上所关注的几个核心问题之一。

  高性能计算现在是百家争鸣时代

  陈一峯表示,目前的高性能计算仍旧处于高速发展期,是百家争鸣的时代。“这串行计算领域,业界很容易就达成了共识,理论体系也相对固定。”他说,“但高性能计算目前是应用并行计算体系,而并行计算体系当中就有多种不同的流派,象征计算机学科里面最高荣誉的图灵奖就曾颁发给好几个涉及到并行计算领域的项目。也就是说,现在在学界也没有在并行计算领域形成共识,这就导致现在出来的硬件也是多种多样,编程工具和语言也同样是多种多样。举例,在众核方面,就有大小核之分;在存储上,有多层次的存储级别之分;这都意味着高性能计算今后会越来越复杂。”

北京大学信息学院计算机系副系主任陈一峯

北京大学信息学院计算机系副系主任陈一峯

  显然,百家争鸣意味着不同的技术路线,也意味着更多选择,但陈一峯首先强调,高性能计算的体系结构最终还是需要通用。“高性能计算的投入特别大,这需要衡量好社会效率和经济效益。英特尔不仅会听取我们的意见,也会听取很多其他用户的意见,从而以最好的工程实现来造出符合大部分人需求的高性能芯片,实现社会效益的最大化。因此,这就要求我们把现有的机器理解透彻,竭力用好。”他说,“这也意味着应用需要根据硬件的发展步骤进行必要的调整。”

  以“有限元”运算为例,这是将本来规则化的东西变成不规则了,其目的是减少计算量。但是,在新的并行体系结构下,把规则的变成不规则的会有额外的代价,很可能会导致从数学上看的计算量在减小,但实际映射到机器当中进行运算要比原来慢很多。因此,在高性能计算的体系结构发生变化以后,这意味着计算的假设已经发生了变化,这就需要学科在新的假设下研究数学方法。

  再回到最开始的E级高性能计算机,当系统规模扩大之后,如何让应用匹配如此大规模的集群架构,让性能保持相应增长,这是业界最关心的核心问题之一。换言之,需要研究应用哪些不同的方法,使得在扩大了系统规模之后仍旧能够高效利用系统的资源。其次,当系统规模扩大之后,也很可能会开发出新的计算方法和模式来提高整体系统的稳定性。

  高性能计算软硬发展依旧不同步

  相对高性能计算在硬件方面的飞速发展,高性能计算在软件编程和人才培养方面就显得有些滞后了。陈一峯表示,软件发展跟不是硬件发展确实是一大挑战,但这并不是软件技术开发或者编程经验进展慢,而是硬件发展太快——在硬件方面,现在是几个月推出一个新产品,而且其特点也不断更新,会有不同的模型、不同的架构、不同的产品链,做计算机的都需要有一段时间来理解和消化,才能将其用好,传递到最终用户的应用端,需要的时间可能会会更长。

英特尔中国公司软件与服务集团客户响应团队经理乔楠

英特尔中国公司软件与服务集团客户响应团队经理乔楠

  英特尔中国公司软件与服务集团客户响应团队经理乔楠表示,高性能计算服务器集群当中所应用的处理器从单核发展到双核、四核到多核,甚至到现在的众核,一方面是核数在增加,另一方面是每一个核的复杂度在提升,跟内存打交道的部件也在变得越来越复杂。英特尔也在尽可能弥补硬件发展过快导致的软件问题。首先,是在人才培养方面投入资源。英特尔的大学合作部组织了很多多核培训,面向大学教师提供多核的基本培训内容和材料,用于相应的课程教学中;同时,英特尔也提供了一些专才培养课程,例如商业领域中的地震资料处理、DCC动漫渲染等。其次,英特尔提供了很多工具来帮助开发者降低开发成本,提升开发效率。这些工具包括VTune、Thread Profiler等多线程的工具、多进程的工具,集群工具等等,这些在MIC上的工具和在CPU上的工具是统一的,这可以打通所有的环节。再次,英特尔会从硬件的角度尽可能让它们去融合,实现指令集完全兼容,从编译器的角度把指令集的不同给屏蔽掉,应用本身来捕捉硬件平台的不同来自动适应,这方面也在不断发展。最后,有赖于各方努力,共同呼吁来组织活动来培养人才。