铁流:中国首摘超算应用最高奖 给发达国家上了一课
2016-11-22 09:28:12
11月14日,新一期全球超级计算机500强(TOP500)榜单在美国盐湖城公布,中国神威太湖之光蝉联冠军。
11月18日,中国科学院软件研究所杨超等人在美国盐湖城举行的2016年全球超级计算大会上领取了戈登·贝尔奖,他们的获奖应用名称为“千万核可扩展全球大气动力学全隐式模拟”。此次全球共有6项应用成果入围戈登·贝尔奖最终提名,其中3项均依托神威太湖之光完成。设立于1987年的“戈登·贝尔”奖被称为“高性能计算领域的诺贝尔奖”,是国际高性能计算应用领域的最高学术奖项,由美国计算机协会与美国电气电子工程师协会联合颁发。近30年来,该奖项一直被美国和日本垄断。
正如天河2号获得6连冠后却因为使用了Intel公司的至强Phi计算卡而被一些别有用心之徒百般诋毁,在神威太湖之光实现了包括处理器在内的所有核心部件国产化后,别有用心之徒又发明了神威存在的不足:
有人声称神威太湖之光和以往的中国超算一样,根本就用不起来,计算资源将来会大量闲置,成为摆设;
有人声称申威26010存在设计缺陷;
还有人声称美国不是做不到,只是不屑于做,或者美国比较低调,更强大的超算只是没公布而已;
更有网络媒体表示:“要知道此前的HP超算虽然浮点性能惊人,但真实环境中受到各种因素制约,可用性能与理论性能相去甚远,以太湖之光为例,其理论性能为125.4PFLOPS,Linpack浮点性能93PFLOPS,HPL效率是74.16%,但在更具实战意义的HPCG性能(高度共轭梯度基准测试)中,太湖之光只有0.371PFLOPS,效率则只有0.3%,这比天河2号的1.1%还要低”。
言下之意,就是神威太湖之光的可用性能与理论性能相去甚远,只能用来跑分。这种观点还颇有市场,误导了不少不明真相的群众。
当然,“找爹党”是永远不会缺席的,还有一些人把中国自主研发的申威处理器找了个美国爹……对此,笔者采访了数位业内专家,对上述质疑做一个回复。
申威处理器是自主研发
每当中国取得技术突破之时,网络上总会冒出一群“找爹党”,本次神威太湖之光超算刷榜也不例外——一些人声称申威26010使用了ARM指令集,一些人将申威26010与 DEC的Alpha联系起来,并将其“认爹”。
但实际上,申威26010是由上海高性能集成电路设计中心设计从指令集开始完全自主研发的国产CPU,经历了申威1、申威1600、申威410/1610、申威411、申威421/1621等数代产品迭代严进,和ARM完全没有任何关系。
至于DEC的Alpha,网络上盛传申威获得了Alpha21164的相关技术,诚然,DEC是一家传奇公司,Alpha21364在那个年代性能惊艳。可惜的是DEC已经于18年前破产,Alpha先被康柏收购,后被惠普雪藏,已经十多年没有发展了。由于在过去几十年的时间里,集成电路产业一直遵循着摩尔定律,当年的神器在今天近乎于玩具,而且也没有任何证据表明,DEC有做过类似于申威26010这种众核处理器。笔者咨询过申威的技术人员,他明确表示是自主研发的申威-64自主指令集,相关单位也明确表示与DEC的Alpha无关。此外,美国相关机构也证明Shenwei-64 Instruction Set (this is NOT related to the DEC Alpha instruction set)。因此,对于一家已经死亡18年的公司,大家还是放过它吧。
申威26010是否存在设计缺陷
有观点认为申威26010在内存带宽上存在缺陷——内存带宽仅有136.51GB,而且用的还是DDR3,相比之下,Intel的KNL和英伟达的Tesla都采用3D堆叠内存,内存带宽更是达到512GB(Intel PHI) 和 720GB(英伟达 Tesla)。因此,这会造成申威26010存在先天不足,只能用来跑分而不实用。
笔者联系过相关单位工作人员,他表示内存带宽相对于Intel的KNL和英伟达的Tesla确实小了一些,虽然对于某些对内存带宽要求高的应用,实际使用中确实会不如Tesla和KNL了,不过,神威太湖之光在设计之初就并非为运行访存密集型运算的存在,就神威太湖之光主要针对的那些应用来说,内存带宽是基本够用的。
申威26010
申威26010之所以能够在制造工艺落后2代的情况下取得媲美于Intel KNL的计算性能,原因就在于申威26010在设计上还有自己的独到之处。申威26010单独一片处理器就能完成Intel E5 phi的功能——申威26010集成了4个管理核心和256个运算核心,一片申威26010就是一个计算节点,管理核心执行类似于天河计算节点中E5的功能,而256个运算核心则发挥了类似于至强PHI的加速作用,相对于采用E5 PHI方案的超算,其加速器插在PCI-E上,这就会成为瓶颈,而申威就不存在这方面的问题。
另外,业内人士表示,“Intel的计算卡的存储模型很扯,需要在不同内存里移动数据”。换言之,就是指Intel的E5和加速器的内存是分离的,在计算时需要先将要处理的数据通过PCI-E传输至计算卡内存,然后计算卡才能计算,最后将结果通过PCI-E读回主处理器,这样数据的一来一回就造成了大量性能损失。相比之下,26010能够实现共享内存,这就避免了Intel E5 PHI,或Power Tesla必须面对的显式拷贝,免除了这方面的性能损失。
关于神威太湖之光根本用不起来
关于中国超算只是摆设的质疑曾经也被用于天河1号和天河2号。但实际上,无论是“天河一号”还是“天河二号”都不存在运算资源闲置的问题——早在2016年1月,新华社就报道过《中国超级计算机“天河一号”满负荷运行》,文章中称,“天河一号”目前已经处于一个满负荷,甚至是超负荷运行的状态,每天在线运行任务超过1400多项,这是欧美国家级超算中心都很难达到的一个业务规模……截至目前,天津超算中心已经给全国100多家重要企业提供服务或是形成了深入的合作,阶段性地实现节省企业研发投入上亿元,为企业带来相关经济效益超过20亿元。不仅“天河一号”处于满负荷状态,“天河二号”的大规模计算资源也不容易申请,必须排队,就连国防科大自己想测试下节点都经常没资源。
对于神威太湖之光根本用不起来的说法,其实只要关注新闻,就能明白这是彻头彻尾的谎言。凭借神威太湖之光强悍的计算性能,国内科研单位在天气气候、航空航天、海洋科学、新药创制、先进制造、新材料等重1要领域取得了一批应用成果——由中科院软件所、清华大学和北京师范大学申报的“全球大气非静力云分辨模拟”课题,由国家海洋局海洋一所和清华大学申报的“全球高分辨率海浪数值模式”课题,由中科院网络中心申报的“钛合金微结构演化相场模拟”课题分别入围戈登·贝尔奖,其中“千万核可扩展全球大气动力学全隐式模拟”还荣获了戈登·贝尔奖,使中国在该领域实现零的突破。戈登·贝尔奖是高性能计算应用领域的最高奖,神威太湖之光用事实说明,完全自主研发的超算不仅可以用起来,还能用的好。
可用性能与理论性能相去甚远?
某媒体指出,“要知道此前的HP超算虽然浮点性能惊人,但真实环境中受到各种因素制约,可用性能与理论性能相去甚远,以太湖之光为例,其理论性能为125.4PFLOPS,Linpack浮点性能93PFLOPS,HPL效率是74.16%”。这段话引用了几个测试的结果,并以74.16%的数据来说明中国超算可用性能与理论性能相去甚远,非常具有迷惑性。笔者简单的就Linpack测试做个简要说明。
Linpack指的是矩阵求解,为何超算大多以Linpack测试成绩论高低呢?原因就在于很多科学计算模型都包含了矩阵求解,比如解微分方程,因此在超算任务中具有不可取代性——像辐射流体力学就是求解微分方程;而核爆炸模拟其实就是辐射流体力学蒙特卡洛预测;雷达截面的矩量法计算也有赖于解微分方程……因此,linpack测试并非是一些跑分软件那样:不服跑个分,而是真正具有实战价值的测试。
那么,神威太湖之光Linpack测试成绩到底如何呢?我们做一个对比:
TOP500排行第一,中国,神威太湖之光,理论性能125.4PFlops,Linpack双精浮点性能为93PFlops,Linpack效率74.16%;
TOP500排行第三,美国,泰坦,理论性能27 Pflops,Linpack双精浮点性能17.6 PFlops,Linpack效率为65.19%。
这里要说明一点,就是超算的规模越大,Linpack测试效率的提高就越难——规模大到如一定程度,维持一段时间的稳定运行是非常难的,何况是太湖神威之光93PFlops的高性能。而神威太湖之光在Linpack测试性能是美国超算泰坦5倍以上的情况下,Linpack测试效率大幅领先于泰坦,这就非常可贵了!
总而言之,以神威太湖之光的规模,取得Linpack效率达到74.16%已经非常厉害了,在采用异构计算的超算中属于顶尖水平,大家千万不要被一些无良媒体误导了。
为何有媒体称日本的京为世界第一?
HPCG是美国正在推的一个新测试标准,目前还没有被业界广泛接受, HPCG比较重视计算性能和通信的平衡,如果计算性能和通信不是一个量级的,即便两项指标分开看都很强,但也会导致HPCG偏低的结果。另外,HPCG也存在一些缺陷,据业内人士介绍,“由于针对具体硬件结构修改共轭梯度算法很容易得到高得多的成绩,为了避免这一点,HPCG代码目前还在锁定状态,不准修改算法本身。但在使用中,用户是会修改算法的,这使得测试会脱离实际”。
在某媒体的报道中,“但在更具实战意义的HPCG性能中,太湖之光只有0.371PFLOPS,效率则只有0.3%,这比天河2号的1.1%还要低”,0.3%和1.1%的数据和该媒体的这种表述很容易让人误认为,天河2号和神威太湖之光的HPCG测试结果非常差,但实际上,在HPCG运算速度排行榜中,天河2号位列第一,而神威太湖之光位列第三,这其实是很不错的成绩。而且一位业内人士猜测,“也许神威还没有好好进行优化”。
那为何有媒体报道,“太湖之光保住了最强超算,但HPCG性能第一被日本K夺走”呢?原因就在于选择对比的参照,既没有选择在核爆炸模拟、深度学习方面具有实战价值的Linpack,也没有被该媒体认为“更看重实际性能”的HPCG运算速度,而是选择了HPCG/HPL这项参数来比较,按照HPCG/HPL的成绩,神威太湖之光的排名非常靠后。
那又为何在Linpack测试中性能顶尖和在HPCG测试中排名靠前的神威太湖之光会在HPCG/HPL这项参数上排名靠后呢?原因就在于计算性能和通信的不平衡。必须指出的是,这种不平衡并非是计算性能差,或者互联网络差——在计算性能上神威太湖之光无与伦比,在互联网络方面,神威太湖之光也不逊色于天河2号,目前属于主流水平(天河2号问世时互联网络属于顶级水平),还称不上顶级的互联网络。正是因为计算和通信上的不平衡,导致神威太湖之光HPCG/HPL参数偏低。而京在这项参数上之所以高,就是因为虽然在计算性能和通信并非顶级水平,但因为计算性能和通信属于一个量级,所以HPCG/HPL参数会比较高。
至于有媒体认为神威太湖之光HPCG/HPL参数偏低,所以只是跑分高但根本不实用,荣获戈登·贝尔奖的应用则是最有力的回击。实际上,脱离具体应用谈超算的可用性都是耍流氓,对于神威太湖之光而言,也许运行某些应用的效率相对会低一些,但是运行那些在神威超算所担负的任务而言,却是再合适不过的。虽然神威太湖之光并没有在所有的测试中获得第一,但以神威太湖之光的HPCG/HPL参数偏低就否定太湖之光,并认为“日本(超算)排名不敌中国,但有优势”,这种否定方式绝不是科学的态度。
美国不屑于做或没公开更强的超算?
对于一些人声称美国比较低调,更强大的超算只是没公布而已。对这种辩解,笔者就很无奈了。虽然笔者并不了解美国是否有未公开的100P超算,但笔者非常确信中国确实有未公开的大机器——其实就神威太湖之光而言,最迟在2015年就已经建成,只是选在2016年年中公布而已。
有人声称美国不是做不到,只是不屑于做而已。对于这种说法美国政府都恐怕未必会同意——据媒体报道,在2014年IBM签下了高达3.25亿美元的协议,并向美国能源部提供2台新型超级计算机,这两台超级计算机分别名为Sierra和Sum m it,将于2017—2018年被安装在劳伦斯利物莫国家实验室和橡树岭国家实验室。在2014年11月,美国能源部还宣布了另外一项1亿美元的计划,以继续研发更快的超级计算机。因此,美国不屑于做纯属无稽之谈,美国一直在重点发展超算,只是100P超算在研发进度上输给了中国罢了,用某位业内专家的话说,“神威太湖之光再一次证明了中国在超算领域有能力在自主创新中取得领先,也给某些秉持保守落后的技术发展思维的发达国家上了一课”。