1.2 现代超级计算机
进入21世纪后,中国、美国、欧盟等纷纷着手争取建造世界上第一个E级超级计算机(运行速度达到每秒100亿亿次)。Sandia国家实验室的Erik P. De Benedict提出了一个理论:如果想要准确地进行两周的全天候气象建模,就需要一台Z级超级计算机(运行速度为E级超级计算机的1000倍)。专家预测,这台计算机可能会在2030年前后建成。
在许多专业领域,会使用蒙特卡罗方法建模,以处理随机生成的数据集。在高能物理中,中子、光子、离子、电子的传播路径是个随机路径,碰撞下的能量和动量也有很大的随机性。模拟这个过程的难度可想而知,这对计算机的能力也提出了很高的要求。蒙特卡罗方法可以利用产生的大量随机数据,通过计算和统计来逼近目标结果,从而大大简化复杂问题的计算过程。但是,计算结果的准确性高度依赖随机产生的数据,数据量越大,计算结果越准确。因此,数据量越大,超级计算机解决复杂问题的能力就越强,从某种意义上说,蒙特卡罗方法也在推动超级计算机的发展。
在超级计算机性能不断提升的同时,运行成本也不断上升,主要是功耗增加导致的。20世纪90年代中期,TOP500中排名前10位的超级计算机的功耗为100千瓦,到2010年,TOP500中排名前10位超级计算机的功耗为1~2兆瓦。2010年,DARPA进行的一项研究表明,一台E级超级计算机的耗电量和电费相当惊人,当时每年的能源消耗成本约为100万美元。所以,在建造超级计算机时,需要考虑有效减少多核CPU所产生的热量。根据绿色TOP500估算,1台E级超级计算机的能耗接近500兆瓦,所以节能会体现在超级计算建设的方方面面,就算在开发操作系统时也要考虑节能问题,比如将那些没有运行任务和工作负载的CPU内核设置为待机状态(或者休眠状态)以达到节能效果。
大型超级计算机运行成本上升的另一个原因是建造分布式超级计算机需要的基础设施和资源不断增加。国家级超级计算中心首先在美国出现,后来德国和日本也开始建造国家超级计算中心。欧盟发起了欧洲高级计算伙伴关系(PRACE),目的是建立一个持久的泛欧超级计算机基础设施,以支持欧盟的科学家们迁移、扩展和优化他们的超级计算应用。冰岛制造了世界上第一台零排放超级计算机,这台超级计算机位于冰岛雷克雅未克的托尔数据中心,它依靠可再生能源而不是石化燃料发电。冰岛寒冷的气候也减少了主动冷却的需求,使这台超级计算机成为世界上环保程度较高的计算机设施之一。
近年来,各国努力应用各种方式支持对超级计算机建设的投资。20世纪90年代中期,TOP500中排名前10位的超级计算机的投资成本约为1000万欧元,到2010年,TOP500中排名前10位的超级计算机的投资成本增加到4000~5000万欧元。21世纪初,世界各国政府制定了不同的战略来资助超级计算机的建设。在英国,由国家全额资助超级计算机建设,高性能计算资源由国家资助机构控制。德国则采用混合筹资模式,汇集地方各州的资金和联邦资金共同资助超级计算机的建设。
中国的计算机行业发展始于20世纪50年代,我国第一台数字计算机103诞生于1958年。到了20世纪70年代,我国对于超级计算机的需求激增,中长期天气预报、模拟风洞实验、三维地震数据处理以及国防领域和航天领域都对计算能力提出了新的要求。我国于1983年12月发布了银河Ⅰ号超级计算机。随后,又发布了银河Ⅱ号、银河Ⅲ号、银河Ⅳ号,形成银河超级计算机系列。应用银河超级计算机,我国成为世界上少数几个能发布5~7天中期数值天气预报的国家之一。银河系列后来又升级为“天河”系列,2010年,天河一号A成为中国第一个全球运行速度最快的超级计算机。
有了银河、天河系列之后,我国加入了并行超级计算机的研发行列,启动了神威超级计算机的研制。有一段时间,中国的超级计算机丢掉了TOP500排名第一的位置,我们希望重新夺回世界第一,于是确立了研发100 PFLOPS(也就是每秒超过10亿亿次浮点运算)以上超级计算机的目标。最初打算采用Intel芯片,项目初期投资大约1亿美元,但是经费远远不够。仅处理器的费用就需要5亿美元左右,再加上主板、内存、硬盘、散热、网络、机架等各种硬件,以及系统、软件和安装、维护费用,总成本恐怕将是个天文数字。于是,神威超级计算机的研制团队坚持国产化道路,厚积薄发,于2016年6月成功研发出世界上最快的超级计算机“神威太湖之光”,这台超级计算机落户在位于无锡的中国国家超级计算机中心。
到了2021年,世界超级计算机的竞争主要在美国、中国和日本之间展开。2021年5月底公布的世界TOP500榜单上,日本的富岳(415 PFLOPS)排名第一,美国有四个超算系统位居前十,分别排在第二、第三、第六和第七的位置。中国的神威太湖之光和天河2号占据第四和第五名的位置。到了2022年,美国E级超级计算机Frontier登顶TOP500。
现在,中国、美国、日本的超级计算机采用的都是分布式计算架构。简单来说,分布式系统的工作原理是,其并行计算任务被分配到不同的网络计算机上,任务间的通信和同步是在计算机节点间通过消息传递来实现的。分布式系统的三个主要特征是:任务间的并发性、不需要全局时钟和任务间的故障互不相关。基于SOA的系统、大型多人在线游戏,以及P2P应用等都是分布式系统的例子。在分布式系统中运行的计算机程序称为分布式程序(分布式编程就是编写这种程序的过程)。消息传递机制有许多不同类型的实现,包括纯HTTP、类RPC的连接器和消息队列。
一般来说,分布式计算具有以下特点:
❑有多个相互独立的计算单元(计算机或节点)。
❑每个单元都有自己的本地内存,单元之间通过消息传递进行通信。
分布式计算主要用于解决一个大型计算问题或一个并发任务的需求,多个计算单元共同完成一个大型任务。另外,分布式计算也可以让每个用户独占一个计算单元,这种需求往往来源于高并发的互联网用户。分布式计算的作用就是协调使用共享资源和提供通信服务。分布式计算的特点还包括:
❑系统有容错功能,单个计算单元出错不会影响整个系统。
❑系统的结构(网络拓扑、网络延迟、计算机数量)是可变化的,比如系统可能由不同种类的计算机和网络链路组成,系统可能会在运行分布式程序的过程中发生变化。
❑每个计算单元对系统只有一个有限的、不完整的视图,每个计算单元也只知道输入的一部分。