超级计算机使用什么(超级计算机使用什么系统)


回到半个世纪以前,世界上最小的计算机是一台能填满一间屋子的巨大机器。当晶体管和集成电路被开发出来的时候,计算机可以将同样的能量装入指甲大小的微芯片中。那么,如果你现在制造一台房间大小的电脑,并在里面装满同样的芯片,会怎么样呢? 你得到的是一台超级计算机——一台比台式电脑快数百万倍的计算机,能够解决世界上最复杂的科学问题。是什么让超级计算机不同于你现在使用的机器?

与通用计算机相比,超级计算机具有较高的性能水平。超级计算机的性能是用每秒浮点运算(FLOPS)来衡量的,而不是每秒百万次指令(MIPS)。超级计算机包含数以万计的处理器,每秒可以执行数十亿甚至万亿次的计算。有些超级计算机可以执行十万亿次失败。由于信息在超级计算机(与分布式计算系统相比)的处理器之间快速移动,它们是实时应用的理想选择。

超级计算机用于数据密集型和计算密集型的科学和工程目的,如量子力学、天气预报、石油和天然气勘探、分子建模、物理模拟、空气动力学、核聚变研究和密码分析。早期的操作系统是为每台超级计算机定制的,以提高其速度。近年来,超级计算机的架构已经从私有的内部操作系统转向Linux。虽然大多数超级计算机使用基于Linux的操作系统,但每个制造商都优化了自己的Linux衍生产品,以达到最佳硬件性能。2017年,全球排名前50的超级计算机中,有一半使用了SUSE Enterprise Linux Server。

最大、最强大的超级计算机实际上是执行并行处理的多台计算机。如今,许多需要强大处理能力的学术和科学研究公司、工程公司和大型企业都在使用云计算,而不是超级计算机。通过云计算的高性能计算(HPC)比本地超级计算机更经济、更可扩展、升级更快。

目录什么是超级计算机超级计算机的历史为什么超级计算机使用并行处理?大规模并行计算机超级计算机有多强大超级计算机是做什么的超级计算机的应用什么是超级计算机?

在我们开始讨论这个问题之前,先了解一下计算机是什么:计算机是一种通用机器,它通过一个称为输入的过程来接收信息(数据),存储和处理它,然后产生某种输出(结果)。超级计算机不仅仅是一个快速或非常大的计算机:它以一种完全不同的方式工作,通常使用并行处理,而不是普通计算机使用的串行处理。它不是一次做一件事,而是同时做许多事。

与其它通用计算机相比,超级计算机具有巨大的性能,因为它的架构和运行模型依赖于并行和网格处理。设计超级计算机的主要动机是用于需要更多计算能力的大型组织。

超级计算机具有在数千个处理器上同时执行多个进程的能力,因为这些类型的处理器每秒可以执行数十亿甚至万亿条指令,所以它的计算性能矩阵是FLOPS(即每秒浮点运算次数)。

串行并行处理

串行和并行的区别是什么?一台普通的计算机一次只做一件事,所以它在一系列不同的操作中做事情;这叫做串行处理。这有点像一个人坐在杂货店的收银台,从传送带上取东西,通过扫描仪扫描,然后把它们传递给你,让你把它们装进包里。你把东西装到传送带上有多快或打包有多快并不重要:你结账的速度完全取决于操作员扫描和处理商品的速度,每次都是一件商品。(自从计算机第一次出现以来,大多数计算机都是通过简单的串行处理来工作的,其灵感来自一种被称为图灵机的基本理论设计,最初是由艾伦·图灵构想的。)

典型的现代超级计算机的工作速度要快得多,它把问题分解成多个部分,同时处理多个部分,这被称为并行处理。这就像带着一个装满商品的巨大购物车到达收银台,然后把你的商品分给几个不同的朋友。每个朋友都可以用一些商品单独结账,然后单独付款。一旦你们都付了钱,你们就可以再次聚在一起,把东西装上购物车,然后离开。物品越多,朋友越多,并行处理的速度就越快——至少理论上是这样。并行处理更像是我们大脑中发生的事情。

超级计算机的历史

谁发明了超级计算机?

研究计算机的历史,你会马上注意到一件事: 没有一个人能声称发明了这些令人惊叹的机器。可以说,对于超级计算机来说,情况就不是这样了。人们普遍认为,超级计算机的巨大成就要归功于一个人——西摩·克雷(Seymour Cray, 1925-1996)。

1946年:John Mauchly和J. Presper Eckert在宾夕法尼亚大学建造了ENIAC(电子数值积分和计算机)。这是第一台通用电子计算机,长25米(80英尺),重30吨,由于它被用于军事科学问题,可以说是第一个科学上的超级计算机。1953年:IBM开发了它的第一台通用主机计算机,IBM 701(也被称为国防计算器),并向各种政府和军事机构出售了大约20台机器。701可以说是第一台现成的超级计算机。IBM工程师Gene Amdahl后来重新设计了机器,使IBM 704,一个能够5 KFLOPS (5000 FLOPS)的机器。1956年:IBM为洛斯阿拉莫斯国家实验室开发Stretch超级计算机。直到1964年,它一直是世界上最快的计算机。1957年:西摩·克雷(Seymour Cray)联合创立了控制数据公司(Control Data Corporation, CDC),并成为了快速、晶体管化、高性能计算机的先驱,包括CDC 1604(1958年发布)和6600(1964年发布),它们严重挑战了IBM在大型机计算领域的主导地位。1972年:Cray离开控制数据公司,成立Cray研究公司,开发高端计算机——第一个真正的超级计算机。他的一个关键想法是减少机器内部组件之间的连接长度,以帮助它们更快。这也是早期Cray电脑呈c形的部分原因,尽管不同寻常的圆形设计(以及亮蓝色或红色的机箱)也有助于将它们与竞争对手区分开来。1976年:第一台cray1超级计算机安装在洛斯阿拉莫斯国家实验室。它的速度约为160 MFLOPS。1979年:Cray开发了一款速度更快的机型——拥有8个处理器的1.9 GFLOP Cray-2。在Cray-1中,电线连接最长为120厘米(4英尺),而在Cray-2中,它们只有41厘米(16英寸)。1983年:思考机器公司推出大规模并行连接机,拥有64,000个并行处理器。1989年:Seymour Cray创办了一家新公司Cray Computer,在那里他开发了Cray-3和Cray-4。20世纪90年代:国防开支的削减和强大的RISC工作站的崛起,由硅图形公司制造,对超级计算机制造商的财务生存能力构成了严重的威胁。1993年:富士通数值风洞计算机成为世界上使用166个矢量处理器最快的计算机。1994年:Thinking Machines申请破产保护。1995年:Cray电脑公司陷入财务困境,申请破产保护。不幸的是,1996年10月5日,西摩·克雷(Seymour Cray)在车祸中受伤后去世。1996年:Cray Research (Cray最初的公司)被Silicon Graphics收购。1997年:由英特尔和桑迪亚国家实验室用奔腾处理器制造的超级计算机ASCI Red,成为世界上第一台teraflop (TFLOP)超级计算机。1997年:IBM的深蓝超级计算机在国际象棋比赛中击败了加里·卡斯帕罗夫。2008年:由克雷研究所和橡树岭国家实验室建造的“美洲虎”超级计算机成为世界上第一台千万亿次浮点运算(PFLOP)科学超级计算机。它曾一度是世界上速度最快的计算机,但很快就被日本和中国的计算机所取代。2011-2013年:“美洲虎”被大规模升级(并且花费巨大),更名为“泰坦”,在被中国的“天河2号”取代之前,它曾一度成为世界上最快的超级计算机。2014年:Mont-Blanc,一个欧洲财团,宣布计划用节能智能手机和平板电脑处理器建造一台exaflop (1018flops)超级计算机。2017年:中国科学家宣布,他们将很快推出一台exaflop超级计算机的原型机,预计将基于天河二号。2018年:2018年6月,橡树岭的新Summit 200-petaflop超级计算机在全球最快的500台超级计算机中为美国夺回了前500名的位置。2020年:尽管全球500强前10名中美国占据了4席,但中国总体上占据了主导地位:2020年6月,中国以114台机器领先美国226台;2017年,中国以202台机器领先,达到143台。一年前,两国各自拥有171台机器。2020年:日本的Fugaku成为世界顶级超级计算机,其惊人的性能达到415.5千万亿次每秒(几乎是之前纪录保持者Summit的三倍)。Fugaku安装在日本神户的理研计算科学中心(R-CCS)。为什么超级计算机使用并行处理?

我们大多数人都在用电脑做一些非常琐碎的日常事情,这些事情对电脑没有任何负担:浏览网页、发送电子邮件和编写文档只需要很少的处理能力,而在一台普通的电脑上。但如果你尝试做一些更复杂的事情,比如给一张很大的数码照片换颜色,你就会知道你的电脑偶尔需要努力工作来做一些事情:它可能需要一分钟左右的时间来对非常大的数码照片进行非常复杂的操作。如果你玩电脑游戏,你会意识到你的电脑需要一个快速的处理器芯片和大量的“工作内存”(RAM),否则会很慢。增加一个更快的处理器或增加一倍的内存,你的计算机的速度将会显著提高——但它的速度仍然是有限制的:一个处理器通常一次只能做一件事。

现在假设你是一名科学家,负责预测天气,测试一种新的抗癌药物,或者模拟2050年的气候情况。这样的问题甚至把世界上最好的计算机都推到了极限。就像你可以升级一台台式机,让它拥有更好的处理器和更多的内存一样,你也可以对一台世界级的电脑做同样的事情。但处理器的工作速度仍然是有限制的,更多的内存也只能产生这么大的差异。最好的方法是使用并行处理:添加更多的处理器,将问题分割成块,并让每个处理器并行处理问题的单独块。

谁拥有最多的超级计算机?

世界上最强大的500台机器中,大约四分之三集中在五个国家:中国(37.6%)、美国(24.4%)、日本(6.8%)、德国(4.6%)和法国(3.2%)。尽管到目前为止,中国拥有最多的机器,但美国机器的总体性能要高得多(根据TOP500的分析,美国机器的总体性能几乎是中国的两倍)。

大规模并行计算机

一旦计算机科学家们弄清楚了并行处理的基本概念,就有必要增加越来越多的处理器:当你的计算机可以有几百甚至几千个处理器时,为什么还要有两个或三个处理器呢? 自20世纪90年代以来,超级计算机通常使用数千个处理器进行所谓的大规模并行处理;2020年7月,拥有世界上最多处理器的超级计算机神威太湖之光,拥有大约40960个处理器模块,每个模块有260个处理器核,这意味着总共有10649600个处理器核!(它是目前世界上第四强大的机器。)

不幸的是,并行处理有一个内置的缺点。让我们回到超市的类比。如果你和你的朋友决定分手你的购物经历多个收银台,所节省的时间这样做显然是减少你的时间去单独的方法,找出谁来买,最后又走到一起。我们可以凭直觉猜测,超级计算机的处理器越多,分解问题并将其重组以最大限度地利用并行处理的难度可能就越大。此外,还需要某种集中管理系统或协调器来分割问题,在所有不同的处理器之间分配和控制工作负载,并重新组装结果,这也会带来开销。

对于一个简单的问题,如支付购物车,这不是一个真正的问题。但是想象一下,如果你的购物车里有10亿件商品,你有65000个朋友帮你结账。如果你有一个问题(比如预测下周的世界天气),它似乎被整齐地分成了几个子问题(为每个独立的国家做预报),这是一回事。计算机科学家将这种可以很容易分解成独立部分的复杂问题称为令人尴尬的并行计算(EPC)——因为它们很容易分解。

但大多数问题并不是这样清晰地解决的。一个国家的天气在很大程度上取决于其他地方的天气,所以在做一个国家的天气预报时需要考虑到其他地方的天气预报。通常,超级计算机中的并行处理器在解决各自的问题时需要相互通信。或者,一个处理器可能必须等待另一个处理器的结果,然后才能执行特定的工作。一个典型的由大规模并行计算机处理的问题会落在两个极端之间,一个是完全串行问题(每一步都必须按照精确的顺序完成),另一个是令人尴尬的并行问题;虽然有些部分可以并行解决,但其他部分需要以串行的方式解决。计算定律(被称为阿姆达尔定律,由计算机先驱吉恩·阿姆达尔(Gene Amdahl)命名)解释了问题的串行部分如何有效地决定使用并行系统可以获得的速度的最大改善。

集群

你可以制造一台超级计算机,在一个巨大的盒子里装满处理器,让它们通过大规模并行处理来合作解决一个复杂的问题。或者,你可以买一大堆现成的pc机,把它们放在同一个房间里,然后用一个非常快的局域网(LAN)把它们连接起来,这样它们的工作方式就大致相同了。这种超级计算机被称为集群。谷歌通过分布在世界各地数据中心的现成计算机集群为用户进行网络搜索。

网格

网格是一种类似于集群的超级计算机(它由独立的计算机组成),但这些计算机位于不同的位置,并通过Internet(或其它计算机网络)连接起来。这是分布式计算的一个例子,这意味着一台计算机的能力分布在多个位置,而不是位于一个单一的地方(有时被称为集中计算)。

网格超级计算主要有两种类型。一种是,我们可能在大学里拥有十几台强大的大型计算机,通过一个网络连接在一起,形成一个超级计算机网格。并非所有的计算机都将一直在网格中积极工作,但一般来说,我们知道哪些计算机构成了网络。欧洲核子研究中心(CERN)全球大型强子对撞机(LHC)计算网格就是这种系统的一个例子,该网格用于处理来自大型强子对撞机(LHC)粒子加速器的数据。它包括两个层次的计算机系统中,有11个主要(一级)计算机中心直接联系欧洲核子研究中心实验室由私人网络,这是自己与160小(二级)世界各地的计算机中心(主要在大学和其他研究中心),使用互联网和私人网络的结合。

另一种网格则更为特殊和非正式,涉及到更多的个人计算机——通常是普通的家用计算机。有一些在线计算项目,例如SETI@home, GIMPS, FightAIDS@home, Folding@home, MilkyWay@home,在这些项目里,个人计算机被用作非正式的、特别的超级计算机网格的一部分。这种方法被称为机会式超级计算,因为它利用了当时碰巧可用的任何计算机。像这样的网格,通过互联网连接起来,最适合解决令人尴尬的并行问题,这些问题很容易被分割成完全独立的块。

超级计算机有多强大?

看看普通计算机的规格,你会发现它们的性能通常以MIPS(每秒百万条指令)表示,这是处理器能够管理的基本编程命令(读、写、存储等)的数量。通过比较两台pc可以处理的MIPS数量(甚至是它们的处理器速度,通常以千兆赫或GHz为单位),可以很容易地对两台pc进行比较。

超级计算机有不同的评价。因为它们被用于科学计算,所以它们是根据每秒能做多少浮点运算(FLOPS)来测量的,这是一种更有意义的测量,基于它们实际尝试做什么(不像MIPS,它是一种测量他们如何尝试做它)。

超级计算机实际上是做什么的?

一个通用的机器可以使用在各种不同的方式: 你可以在电脑上发送电子邮件, 玩游戏, 编辑照片, 或做任何其他事情只需运行不同的程序。如果你使用的是高端手机,比如安卓手机、iPhone或iPod Touch,那么你拥有的就是一台功能强大的袖珍电脑,它可以通过加载不同的“应用程序”(应用程序)来运行程序,这些“应用程序”只是计算机程序的另一种名称。超级计算机稍有不同。

通常,超级计算机被用于复杂的、数学密集型的科学问题,包括模拟核导弹试验、预测天气、模拟气候和测试加密强度(计算机安全代码)。理论上,通用超级计算机可以用于任何事情。

虽然有些超级计算机是通用机器,可以用于各种不同的科学问题,但有些超级计算机被设计用来做非常具体的工作。最近最著名的两台超级计算机就是这样设计的。1997年,IBM推出了深蓝(Deep Blue)机器,专门用来下国际象棋(对抗俄罗斯国际象棋大师加里·卡斯帕罗夫(Gary Kasparov)),而后来的沃森(Watson)机器(以IBM创始人托马斯·沃森(Thomas Watson)和他的儿子命名)是为了玩《危险边缘》(Jeopardy)游戏。像这样特别设计的机器可以针对特定的问题进行优化;例如,“深蓝”的设计目的是在庞大的数据库中搜索潜在的国际象棋走法,并评估在特定情况下哪种走法最好,而“沃森”的设计目的是分析用(自然)人类语言表达的棘手的一般知识问题。

超级计算机的应用

超级计算机的应用领域有很多,例如

生物学领域:

通常,超级计算机用于诊断各种疾病,并为中风、脑损伤和身体其它血液流动问题提供帮助。

军事和国防任务:

超级计算有助于为核爆炸和武器弹道提供虚拟测试。

气候模式:

超级计算机应用能够研究和了解气候模式。

航空工业:

在超级计算机的帮助下,为新手飞行员设计了飞行模拟器,该模拟器有助于新手飞行员的训练。

天气预报:

为了收集与天气预报有关的信息,超级计算机被委以重任。

科学研究方面:

在天气和科学研究领域依赖于超级计算机,因为要分析来自探索太阳系的数据,环绕地球的卫星,以及其它领域,如核研究。

高级数据库: (数据挖掘)

一些大型企业需要超级计算机从数据仓库或云系统中提取有用信息。比如保险公司。

金融市场:

在比特币、股票市场等新兴的网络货币世界中,超级计算机对真正的金融成功起着至关重要的作用。

汽车模拟环境:

超级计算机为人们购买汽车提供了帮助,因为消费者在购买汽车之前可以通过超级计算机创建的模拟环境进行测试。

烟雾控制系统:

科学家们在自己的实验室里使用超级计算机预测特定地区的雾和其它污染水平,然后采取最后一步来防止它们。