开始异构化的超算
尽管FPGA已经经历了多年的应用,但在HPC上亮相的次数可谓少之又少,这并非是缺乏尝试,而是传统FPGA硬件上存在限制,开发工具也相对特化,对于尝试数据科学的开发者来说上手难度较高。
然而近年来,在各大FPGA厂商的努力下,FPGA已经有了长足的发展,其性能足以支撑起HPC应用的运行,FPGA编程也终于有了软件开发而不是硬件设计的样子。英国的ExCALIBUR项目就开始利用FPGA作为HPC应用的测试平台,所用硬件有Xilinx的Alveo、Versal,也有英特尔的Stratix-10。神经形态芯片也想要取代GPU的位置,美国桑迪亚国家实验室就利用了5000万片英特尔的Loihi神经形态芯片进行了研究,证明了这类芯片不仅仅适用于解决AI上的挑战,在分子模拟、生物学建模这些超算应用也能做到极高的能效比。即便如此,我们在TOP500上看到利用新硬件的情况还是很少,英特尔、AMD和英伟达还是占据了绝对的主导。
实际应用与软件移植的痛点
但说到头来,TOP500所奉行的HPL测试标准并不是衡量超算性能的唯一标准,还有专注于带宽的HPCG,以及更看重时延的Graph500。异构超算可以借助不同硬件的特性,将这些痛点各个击破。
日本富岳超算的主要贡献者之一,前不久刚获得了日本政府所颁发紫绶褒章的松冈聪却对超算上的异构趋势表示了一定的怀疑。他认为未来的HPC系统不会由各种类型的设备组成,反倒是会更加慎重地选择所用的处理器,从而兼顾计算、带宽和时延的需求。原因很简单,那就是软件生态。如今的HPC代码运行着世界上最复杂的应用,比如气象预测、大规模数字孪生等等。但这类应用由于复杂程度之高,承担不起因为当前的硬件架构几年内过时而面临着重新编程或淘汰的代价,这也就是为何CPU+GPU的配置在超算领域依旧是龙头老大,因为这种架构下的超算软件生态已经成熟,可以沿用下去。就拿常见的超算编程语言Fortran为例,虽说这一语言在数学运算上有着很大的优势,但由于维护和移植困难,不少开发者都转向了C/C++,而GPU又多用C++,所以即便现在各种加速器频出,率先使用他们的也只是数据中心或AI等场景,并非超算。
但松冈聪也表示,他并不是指这些设备无法运行这些代码,或者移植困难不代表没有尝试的价值,而是即便代码可以运行在这些设备上,也很难通过负载均衡来践行古斯塔夫森定律,即处理器数量增加可以让程序运行时间减少,最好的解决思路还是CPU或CPU+GPU这种同构的方案。虽然其他硬件加入的异构确实对不同的工作流各个攻破,但超算很多时候是建好就完事的计算系统,后续也许只能增加同样的计算资源来提高硬件性能,设计者无法预先判断未来要运行的任务,因此追求这样的灵活性还不如使用同构这一通解。在使用超算的研究者和科学家看来,他们在一台超算上力求取得最大性能就已经付出了巨大的心力,要是超算内真的囊括一堆不同架构的设备,单是庞大的编程和移植工作量就足以让他们丧失兴趣。他们或许更愿意去优化算法或理论,都不愿意因为架构的变化而去花费大量时间编程。
云化超算成为可行方案?
还有一种观点也获得了不少支持,那就是云化超算。云服务厂商在HPC上的努力也都有目共睹,去年超算大会上,国内外大学之间的比赛也是在云服务上构筑超算系统,TOP500上来自云服务厂商的超算也有几台,微软的Azure就有5台,最强的一台Voyager-EUS2甚至排到了第十的高位。虽然云端部署超算的成本同样巨大,但对于一些实验室来说,云端的模块化特性让他们不用担心自己用不到什么组件,花更少的时间来购置超级计算机,花更多的时间去使用它。比如英国政府就选择在微软的Azure上部署慧与的Cray EX超算,用其完成气象预测工作。更方便的是,由于超算消耗电力巨大,基础设施可以托管在北欧等清洁能源更多的地方。