当前位置: 首页 > 科技观察

一篇让你看不懂超级计算机的文章:真的不是一堆CPU

时间:2023-03-18 12:14:21 科技观察

6月18日,在德国法兰克福举行的国际超级计算大会(ISC)上,公布了最新一届超级计算机500强强榜单。  本次参赛的超级计算机入门门槛非常高,***全部超过1PFlops(每秒千万亿次),这是全球超级计算机500强榜单发布26年来的历史性突破。  在本次500强榜单中,中国拥有219台超级计算机,位居世界第一,其中联想173台,浪潮71台,曙光63台。  对于普通人来说,接触超级计算机的机会很少,所以对超级计算机的了解还处于一知半解的状态。为此,腾讯科技提取了多位知乎专业答主的内容,稍加整理,让你通过一篇文章彻底了解超级计算机。  超级计算机的核心技术是什么?——知乎回答景阳  CPU是超级计算机的重要组成部分,但不是超级计算机技术的全部。网上有人把CPU技术等同于超级计算机技术,认为没有独立的CPU就没有核心技术。  此说法不准确。事实上,相比于大名鼎鼎的CPU,不为人知的架构设计才是一直被大众和媒体所忽视的关键技术。例如,曙光星云采用自主研发的超并行处理架构,神威蓝光超级计算机采用大规模并行处理架构,天河一号采用多阵列可配置协同创新的新型异构多态架构。  建筑设计能力有多重要?例如,如果超级计算机是一支军队,那么架构设计就是高级将领和中下级军官的历史传承、光荣传统、组织管理水平、军事训练水平、武器装备、后勤能力、战略指挥水平军队的。CPU的战术指挥能力,CPU是军队的战士。  此外,超级计算机不仅仅是一堆CPU。因为堆CPU也是个技术活,架构设计不好,高速网络不行,系统软件不行,存储阵列不行。即使有更多的CPU,超级计算机的性能也不会提高。去。单靠CPU堆砌是不可能造出一台超级计算机的,更别说是能匹敌天河二号的超级计算机了。  另外,即使掌握了正确的CPU叠放方法,也无法仅仅依靠CPU叠放的数量,得到一台可以匹敌天河二号的超级计算机。是什么原因?因为超级计算机的构建并不是简单的CPU积木式堆叠——即使是大量的计算卡堆叠起来,也受到其他方面的限制,比如高速互联网的技术水平,这使得不可能达到理论计算性能。  具体来说,高速互联网的难点在于超级计算机的计算节点之间传输的数据量巨大,时延要求严格。当互联网的效率不足时,会导致数据拥塞,大大降低超级计算机系统的效率。超级计算机拥有的计算节点越多,对互联网的要求就越高。因此,即使你想通过堆砌CPU来提升计算能力,也会受到互联网性能的限制。结果,这种做法无法无节制地提高超级计算机的性能——受限于互联网等方面的瓶颈,计算机的整体效率降低了,所以实际性能并没有通过堆叠更多的CPU得到提升。  另外,过多的CPU还存在功耗过大、机箱体积过大等问题,对日后的运维和使用十分不利,在超级计算机市场上基本不具备市场竞争力。  在软件系统方面,控制少量计算节点和控制大量计算节点的要求几乎完全不同。软件系统必须保证每个超级计算机计算节点的性能最大化,才能充分挖掘硬件的潜力。否则,超级计算机的整体效率将受到影响。  因此,如果没有好的架构,CPU的性能就得不到充分发挥,CPU越多,整个系统就会越复杂。系统和软件要求越高,整机效率提升难度越大。但在架构设计能力水平不够高的情况下,单纯堆砌CPU数量会降低整机效率,无法提升整机性能。  超级计算机和普通计算机有什么区别?——知乎答主小侯费氘  超级计算机并没有那么神秘,它只是一个计算工具。你输入计算条件,它为你输出计算结果。它与用于杂货店购物的计算器相同,但比例不同。  家用电脑一般只有一个CPU(GPU也一样),每个CPU一般只有2~8个物理核心。一般的超级计算机有几万个CPU,每个CPU一般有几十个物理核心。  这么多CPU当然不是用来取暖的,而是通过并行计算来完成繁重的计算任务。例如,在飞机制造领域,经常需要计算飞机附近的空气流量和飞机本身所受的力。最常用的计算方法是将空气和身体分成小块,分别计算每个小块的运动量和力,然后将它们积分,得到整体的运动量和力。  一般来说,分割得越细,每个小块越小,计算越准确。但是鱼和熊掌不可兼得,分割得越细,计算量就越大。  如果要将1的立方体分成1的小方格,那么你需要计算10亿个小方格。如果使用单个CPU核心,需要连续做10亿次运算,可能需要一天才能完成整个过程。而如果有10个CPU核,那么这10亿个方块可以分成10份,每个CPU核只需要计算1亿个方块,然后对得到的结果进行积分。这样可以快10倍左右,两个小时就可以完成计算。  在科学研究和工程领域,有很多这样的计算任务,例如原子基本性质的量子力学计算、药物反应过程的分子动力学模拟、黑洞碰撞的相对论模拟、大气运动的预测和天气变化、桥梁设计中的力计算……这些都是复杂的问题,可能需要数月甚至数年才能在单个CPU内核上获得结果。这么长的计算时间是无法接受的,所以我们需要使用多个CPU核心进行并行计算来提高效率,集成大量CPU的超级计算机自然应运而生。  超级计算机有什么用?——知乎的回答大师历史  举几个例子:  1。“核模拟”需要高性能计算  核反应是连锁反应。一个原子裂变后,它会影响周围的原子。周围的原子会影响它们周围的原子,模拟这些原子行为所需的计算量会迅速呈指数级增长。  这需要非常强大的超级计算机来模拟。此外,重要的是要知道这种模拟的计算要求没有上限。计算能力越强,模拟就越精确,就能发现更深层次的规律。  气候预测也是高性能计算一个巨大的应用方向。  2。气候预测也需要高性能计算  气候预测,广义上就是对全球气流、洋流等的预测,狭义上就是天气预报。天气预报的基本原理是利用气象卫星捕捉地图上各个点的云和气流的运动轨迹,然后通过大量的计算推断出它们未来的走向。  要知道,即使在今天,天气预报的准确率也很难达到80%以上。不过,你绝对能感觉到,现在的天气预报比小时候准确多了。这是因为我们现在的高性能计算能力有了很大的提升。  比如说气象计算的粒度是1个经纬度,大概是111公里,但是现在我们气象计算的精度已经降低到3公里,气象科学家把精度提高到1公里。这种准确性的提高需要指数级的计算能力。  3。视频渲染也是高性能计算的“大户”  大家还记得《阿凡达》吗?在这部2009年的电影中,特效场面的比例达到了70%。从阿凡达开始,特效就成了电影的标配,甚至两个演员在绿布面前也能完成一部高质量的太空科幻电影。支撑这些特效的,无疑是庞大的高性能计算能力。  4。此外,高性能计算还可以进行天体物理计算、地震预测、材料科学计算、基因组测序、交通分析、人体组织系统研究等。