1983年,以著名数学家Lax为首的调研小组撰写报告指出:“大型科学计算具有关系到国家安全、科技进步与经济发展的特殊重要性,是现代科学技术的关键部门。 从美国的国家利益出发,大型计算的绝对优势不容动摇” 。
图片来源于网络
什么是科学计算
科学计算是指利用计算机再现、预测和发现客观世界运动规律和演化特性的全过程,包括建立物理模型,研究计算方法,设计并行算法,研制应用程序,开展模拟计算和分析计算结果等过程。科学计算的兴起被认为是20世纪最重要的科学进步之一,著名计算物理学家、诺贝尔奖获得者肯尼斯·威尔逊教授早在80年代就指出,计算是与理论和实验并列的三大科学方法之一。
科学计算之所以在20世纪80年代便上升为美国国家层面的战略议题,是因为它突破了传统实验和理论研究的界限,极大提升了人类对自然界和社会系统的洞察深度,其在诸如生命科学、医学、经济学等学科中的角色愈发关键,成为气象预报、能源勘探、航空航天、交通规划、制造业及水利工程等众多关键行业的核心技术支撑。
而科学计算之所以不可或缺,是因为在许多情况下,直接实验要么不可能(如研究墨西哥暖流的长期演变、温室效应的全球影响、龙卷风形成机制),要么不切实际(如核设施安全性测试、核武器效应评估、污染物扩散模拟),要么成本高昂(如飞行器的频繁设计迭代、车辆碰撞试验、生物大分子的结构解析)。科学计算的介入,则填补了这些科研与工程实践中的空白。
科学计算与高性能计算机发展亟待突破的瓶颈问题
对于科学计算来说,计算机是最重要的硬件基础。但随着科学计算所需要解决的问题越来越复杂、越来越接近真实的模型,其所需要的计算资源是普通的计算机无法承担的天文数字,因此只能依靠专门的高性能计算机。
高性能计算机(HPC)是运算速度极快、存储容量极大、通信带宽极高的一类计算机的统称,往往也被称作超级计算机(超算)。通常来说,高性能计算机是通过高速网络把大量计算机组织连接成一个大规模并行计算的集群,如果将一台电脑比作一个人脑,那么高性能计算集群就是许多人脑连接成矩阵的“超级大脑”。相较于普通计算机,高性能计算集群的运算速度能够达到令人难以想象的程度。目前全球超级计算机TOP500的榜首是浮点运算速度峰值达到每秒100亿亿次的的超级计算机“前沿”,这一速度相当于大约10亿台当前主流笔记本电脑同时工作的处理能力总和。
这样恐怖性能的高性能计算机,想必已经完全足够支撑科学计算对于计算机的性能要求了吧?遗憾的是,不仅不够,甚至可能还远远不够。
主要原因之一是现有的大规模并行计算程序的效率太过低下。上文介绍到,最强超级计算机“前沿”的每秒浮点运算速度峰值超过100亿亿次,但是这个性能其实是假设“前沿”计算集群里的每一个计算节点都在无条件地全速运算而得到的理论性能峰值,实际执行程序时不可能达到这样的理想状态,一定存在大量空闲的计算节点需要等待数据的访存传输。一般来说,超算上未优化过的程序的实际计算性能都在理论峰值性能的10%以下。
因此,如何针对应用程序改进算法和数据结构,对程序进行性能优化,提高实际浮点性能,是科学计算最关心的问题之一,但这往往意味着较高的难度和极大的研制成本及周期。被誉为超算界诺贝尔奖的Gordon Bell奖会定期颁给代表相关领域应用程序最高性能的一些优化程序,而能够获奖的程序的计算效率一般也都只能优化至10%-50%的区间,例如,用于模拟包含1万亿个粒子的激光等离子相互作用模型的VPIC程序凭借25%的计算效率获得了08年度的Gordon Bell奖,由此可见对于程序计算效率的优化提升是多么困难的工作。
而另一方面,科学计算对于高性能计算的迫切需求却还在不断增长,现有的计算架构在处理大规模并行运算和高带宽数据传输方面显现出的局限越来越突出,这些挑战呼唤着计算技术的新一轮革新。北京大学数学科学学院汤华中教授曾谈到,“采用新的计算结构,充分发挥现有硬件设备的效能,是发展科学计算的一个新方法。”
3D
近年来,有一类被称为“3D科学计算”的计算架构理念逐渐兴起,在解决科学计算场景的效率瓶颈难题方面展现出巨大的潜力。实际上,科学计算里占比最大和最难解决的问题往往都可以抽象成对真实世界的模拟仿真问题,比如在生命科学领域,科学计算实际上是要在计算机里模拟蛋白质与蛋白质/小分子在三维空间里相互作用的过程,为此需要在计算机里建立每一个原子的三维空间坐标,根据复杂的物理公式计算每一个瞬间每个原子坐标的位置变化,这个问题发生的空间尺度毫无疑问是一个3D的三维空间。
但是,传统高性能计算系统的架构往往是二维的,服务器和服务器之间两两通过交换机或路由器线性相连,这样的二维计算架构在处理三维空间问题时,天然会产生节点间大量额外的通信工作量,极大增加计算的复杂程度。如果我们能够直接按照真实世界的三维模型来还原一个庞大计算集群中节点与节点的连接方式,就能从最基本的计算通信需求量上降低我们需要求解的三维科学计算仿真问题的复杂度,这就是3D科学计算的基础思想。
为了帮助大家形象地理解这个抽象的概念,我们尝试建立这个复杂问题的简单近似模型:假设我们要在一个由5台电脑组成的计算集群上构建一个甲烷分子(CH4)的运动模型,每台电脑都只负责存储和计算甲烷中1个原子的位置信息,并且对于每台电脑来说,为了计算出下一个瞬间自己负责记录的原子的更新位置,都需要拿到其余4个原子的位置信息,来作为位置更新公式的计算参数。我们可以分别考察在二维和三维的架构连接方式下,解决上述问题分别需要的通信的距离长度(每两台相邻的电脑之间的距离视作为1个单位距离)。
如下图所示,如果这5台电脑使用二维的线性连接方式连成一条长龙,那么最左边的电脑把数据传给最右边的电脑需要经过中间的3台电脑,为了让所有电脑都获取一遍其它4台电脑的信息,总体需要发生的数据通信的单位距离是40;而如果这5台电脑仿照甲烷分子的三维空间结构,采用三维的方式进行连接,那么总体需要的通信距离是32.在其它所有条件都不变的情况下,比二维连接的方案提升了20%的效率。
如果是比甲烷更加复杂一点的乙烷分子,那么三维连接架构相比二维连接架构的性能优化提升幅度更是直接达到了42%,随着问题尺度的不断复杂化,两者的性能差距还将拉开更大。真实世界的一个蛋白质大分子动辄都是由几十万到上百万原子构成的,在这样的复杂尺度上,二维连接架构产生的冗余通信需求甚至可以达到10的12次方以上的数量级,换言之,3D科学计算的架构处理同样问题将天然减少动辄几万亿次的通信传输需求,在性能提升方面具有不可动摇的绝对优势。
可以说,3D科学计算带来了一次计算架构领域的革新,不仅在于硬件效能的充分利用,更在于通信效率与算法效率的显著提升。3D布局通过在空间维度上的服务器分布,不仅缩减了物理距离,有效缩短了数据传输路径,减少了延迟,而且通过多层级网络设计分散流量,有效缓解了单点压力,提升了数据传输的流畅性。
不过,3D科学计算的实现当然也不会那么简单。由于芯片节点之间的连接方式完全被颠覆,为了支撑这套全新架构下的计算,从芯片本身的设计、到适配这套系统的软件都需要重新开发定义。目前用于实现3D科学计算的计算系统往往采用会专门定制的ASIC专用芯片,这类芯片无法像CPU、GPU一样高度灵活地支持运行绝大多数算法和软件,但正因为ASIC芯片不需要考虑通用性,才可以100%将电路上的面积用于提升特定算法的极致性能。采用ASIC芯片建成的高性能计算机也被称为专用超级计算机,区别于通用的超级计算机,它们在特定领域可以发挥出远超最强超算百倍以上的性能,代价是每台专用超算都需要针对单一特定领域专门设计,最终也只能解决那一个领域的问题。
颠覆世界生物计算范式的
由于目前3D科学计算的实现需要依赖专用超算来实现,其研发设计的难度和成本投入都非常巨大。不过,美国的一位“疯狂科学家”David E. Shaw博士不按常理出牌地重金打造了一台专用于生物计算领域的3D科学计算专用超算安腾(Anton),靠一机之力颠覆了整个世界关于生物计算的认知和想象,向世人展现了3D科学计算创新架构的性能提升所能带来的恐怖研究和应用价值。
安腾超级计算机(Anton)是3D科学计算理念应用的典型代表,它基于3D科学计算的理念架构,让超级计算机能够以前所未有的速度和精度模拟蛋白质在三维空间中的动态运动,让生物领域的科学计算研究焕发了新生。
安腾超级计算机 | 图片来源:网络
具体来说,在安腾超算问世之前,哪怕用全世界性能最强的超算来模拟生物大分子的运动,一天都只能算出几十纳秒的运动数据,可即便是蛋白质折叠这样最基础的生理现象,都需要数微秒的时间才能观测到,这意味着全世界最强的超算都需要至少几十天才能模拟出一次简单的蛋白质折叠,而单次的蛋白质折叠相较于科学家想要解决的问题体量来说,甚至称不上是杯水车薪。许多科学家认为这样效率的研究工具对于解决严肃问题根本没有太大的意义。不过,第二代的安腾超算一天就可以模拟出近10微秒的结果,比传统超算快了2-4个数量级,这使得用计算机模拟蛋白质瞬间成为了一个比实验方法效率更高、研究细粒度更深的研究方法,过去仅靠实验方法无法完成的许多研究设想一夜之间也具备了可能性。更重要的是,对于创新药物研发来说,生物计算方法的加入更是注入了全新的动力。基于安腾超级计算机的支持,美国制药公司Relay大幅缩短了新药研发周期,仅用了18个月、花费不到1亿美元的成本便成功确定了RLY-4008的结构,颠覆了传统的药物研发投入“双十定律”(即至少需要投入10年、10亿美金才能完成一款新药的研发)。
安腾超算的软硬件系统架构是3D科学计算架构教科书级别的示范。安腾采用了大量的ASIC专用芯片作为其核心组件,并通过一个精心设计的高速三维环形网络将这些ASIC紧密互联。为了提升通讯传输效率,整个安腾的服务器都被紧密地排放在一个正方体的机箱中,这样使得服务器节点间的网络互联距离缩短,从而降低了通信延迟和提高传输可靠性。在连接方式上,安腾采用了Torus(环面)拓扑结构。这意味着,组成集群的正方体机箱中,每个计算节点不仅与周边最近的8个节点直接相连,还进一步与其他按2的倍数距离(如2、4、8等)的节点建立了连接。这一特点确保了无论机箱边长如何,任何两个节点间的通信都可通过最多不超过。