Skip to main content

超级计算机

超级电脑英语super computer),指能够执行一般个人电脑无法处理的大资料量与高速运算的电脑,其基本组成组件与个人电脑的概念无太大差异,但规格与性能则强大许多。现有的超级计算机运算速度大都可以达到每秒一(万亿,非百万)次以上。“超级计算”(Supercomputing)这名词第一次出现是在媒体“纽约世界报”于1929年关于IBM哥伦比亚大学建造大型报表机(tabulator)的报导。[1]
1960年代,超级计算机由希穆尔·克雷(Seymour Cray)在Control Data Corporation里设计出来并领先市场直到1970年代克雷创立自己的公司──克雷研究。凭着他的新设计,他控制了整个超级计算机市场,并占据颠峰位置长达五年(1985-1990)。到了1980年代,正值小型电脑市场萌芽阶段,大量小型对手加入竞争。在1990年代中期,很多对手受不了市场的冲击而消声匿迹。今天,超级计算机成了一种由像IBM惠普等大型电脑公司所特意设计的电脑。虽然这些公司通过不断并购其他公司而增强了自己的经验,但除他们以外的元老公司——克雷研究——依然是超级计算机领域的巨头之一。

历史

“超级计算机”一词并无明确定义,其含义随计算机业界的发展而发生变化。早期的控制数据公司机器可达十倍速于竞争对手,但仍然是比较原始的标量处理器。到了1970年代,大部分超级计算机就已经是矢量处理器了,很多是新进者自行开发的廉价处理器来攻占市场。1980年代初期,业界开始转向大规模并行运算系统,这时的超级计算机由成千上万的普通处理器所组成。1980年代中叶,将适量的矢量处理器(一般由8个到16个不等)联合起来进行并行计算成为通用的方法。1990年代以后到21世纪初,超级计算机则主要由基于精简指令集的处理器(譬如PowerPCPA-RISCDEC Alpha)互联进行并行计算而实行。

用途

超级计算机常用于需要大量运算的工作,譬如天气预测、气候研究[2]运算化学分子模型天体物理模拟[3]汽车设计模拟、[4]密码分析等等。

设计

超级计算机的创新设计在于把复杂的工作细分为可以同时处理的工作并分配于不同的处理器。他们在进行特定的运算方面表现突出,但在处理一般工作时却差 强人意。他们的数据结构是经过精心设计来确保数据及指令及时送达——传递速度的细微差别可以导致运算能力的巨大差别。其输入/输出系统也有特殊设计来提供 高带宽,但是这里的数据传输延迟却并不重要——超级计算机并非数据交换机。
根据阿姆达尔定律,超级计算机的设计都集中在减少软件上的串行化、用硬体在瓶颈上加速。

挑战与科技

  • 超级电脑通常产生大量的高热,冷却超级电脑是一个很大的问题。[5]
  • 因为数据传送的速度不能比光快,几米的距离导致了几十奈秒的延迟,而克雷著名的环型设计保持了最短距离。
  • 超级电脑在短时间内消耗及生产大量的数据,需要投入很多资源确保资讯妥善传送及访问。
因超级计算机而开发的科技:

处理器技术

矢量处理因超级计算机而创建并用于高性能运算。矢量处理技术后来被用于普通电脑内的信号处理架构及单指令流多数据流,例如:电视游乐器及通用图形处理器等。[6]

操作系统

一般的超级计算机都使用Unix操作系统天河二号例外),但在讲求绝对高性能的操作环境时,超级电脑开发人员会动用特别的轻量级核心(Light Weight Kernel-LWK),减少中断请求、进程间通信等开销以提高性能。[7]
轻量级核心包括Cray XT3的Catamount[8],Cray XT4的CNL (Compute Node Linux)[9], 以及IBM蓝色基因的CNK(Compute Node Kernel)。[10]

编程环境

信息传递接口及较旧的并行虚拟机(PVM)常用于非共享内存系统(Distributed Memory System),而OpenMP常用于共享内存并发系统。[11] [12]
传统上Fortran的编译器可以产生比CC++更高性能目标代码,所以Fortran仍然被使用作科学编程。

优化编译器

超级电脑需要编译器优化技术以产生优佳的目标代码,现今的优化编译器都对矢量化(Vectorization)、程序循环存储器层次结构及数据局部性进行优化。[13] [14] [15]
此外,优化编译器都以高层次的中间表示(Intermediate Representation)优化程序 - 包括Open64编译器的WHIRL、[16] IBM XL编译器的Wcode。[17]

数学函数库

超级电脑主要运行科学运算等拥有大量矢量矩阵浮点计算的程序,因此优佳化常用的数学函数会提高运算性能。BLAS函数库使矢量及矩阵浮点计算性能大大提高,[18] [19]而优佳化数学函数库则提高三角函数平方根等数学运算。[20]

平行文件系统

平行文件系统支持多客户端节点、多文件系统服务器,以及支持平行I/O(如MPI-IO、HDF5);现今流行的平行文件系统包括Lustre和PVFS。[21]

网络技术

超级电脑节点之间的通信一般都需要使用高性能的网络接口,现今大多TOP500的超级电脑使用以太网(44.8%)及InfiniBand(41.8%)。[22]
传统上InfiniBand比以太网有更高的带宽,同时因操作系统调用省略(Operating System Bypass)而提供更低的延迟时间(latency);然而2011年思科系统开发VFIO技术于超级电脑和簇应用,使一般的以太网接口也能提供低延迟时间,从而提升以太网在超级电脑的应用层面。[23]

通用超级计算机的类型

大致上可以分为三种:
根据摩尔定律及经济规模,一个现代的桌面电脑比15年前的超级计算机有更高性能,皆因某些超级计算机的设计已经放在桌面电脑内。再者,简单芯片的开发及生产成本比特意设计给超级计算机的更便宜。
超级计算机所处理的问题都适合并行化,当中减少处理单元之间的资料传送量。因此,传统的超级计算机可以被电脑丛集所代替。

最快的超级计算机

TOP500列表排名世界上最快的500台超级电脑[24],而中国则以“中国TOP100排行榜”排名境内头100台最快的超级电脑。[25]

速度单位

超级计算机速度以每秒浮点运算次数"FLOPS"(floating-point operations per second)来作量度单位,常见的表示电脑中的峰值或速度用的单位英汉对照如下:
  • 一个MFLOPS(megaFLOPS)等于每秒100万(=106)次的浮点运算
  • 一个GFLOPS(gigaFLOPS)等于每秒10亿(=109)次的浮点运算
  • 一个TFLOPS(teraFLOPS)等于每秒1万亿(=1012)次的浮点运算
  • 一个PFLOPS(petaFLOPS)等于每秒1千万亿(=1015)次的浮点运算
  • 一个EFLOPS(exascaleFLOPS)等于每秒100亿亿(=1018)次的浮点运算
此外,由于浮点积和熔加运算乘积累加是两次的浮点运算(每条FMA指令包括加/减及),因此当处理器支持FMA指令时,峰值是两倍每秒所能运行FMA指令的数目。[26]

目前最快的超级计算机

截止到2013年6月,世界上运算速度最快的超级计算机是,由中国人民解放军国防科学技术大学National University of Defense Technology等单位研制的天河二号,它每秒能完成5亿亿次运算。双精度浮点运算峰值速度达到每秒5.49亿亿次,Linpack(国际上流行的用于测试高性能计算机浮点计算性能的软件)测试性能已达到每秒3.39亿亿次。

过往的超级计算机

  • 2009年10月,中国研制的第一台千万亿次超级计算机在湖南长沙亮相,全系统峰值性能为每秒1.206PFlops。这台名为天河一号的计算机位居同日公布的中国超级计算机前100强之首,也是当时世界上最快的超级计算机。天河一号的研制成功使中国成为继美国之后世界上第二个能够研制千万亿次超级计算机的国家。
  • 2008年11月16日美国Cray超级电脑公司推出Jaguar系列,运算能力为1.059PFlops,采用45376颗四核心的Opteron处理器,362TB的存储器,传输总带宽284GB/Sec,硬盘容量超过10PB,内部的数据总线带宽532TB/Sec。这台电脑将放置在美国的国家高速电脑中心,并开放给各界有需要的团体申请使用。
  • 在地球模拟器之前,最快的超级计算机是美国加州罗兰士利物摩亚国家实验室的ASCI White,它的冠军位置维持了2.5年。

类超级运算

  • 某些分布式运算把丛集超级运算推至极限。例如SETI@home计划现在平均有667.716 TeraFLOPS运算能力。[27].
  • GIMPS运算能力也高达18TFLOPS。

超级计算机时间线

年份 国家 超级计算机 FLOPS 地点
1942年  美国 Atanasoff–Berry Computer (ABC) 30 OPS 美国衣阿华州立大学
 美国 TRE Heath Robinson 200 OPS 英国帕雷屈里庄园
1944年  英国 Flowers Colossus 5 kOPS 英国Dollis Hill Post Office Research Station
1946年  美国 UPenn ENIAC 100 kOPS 美国马里兰州战争部阿伯丁试基地
1954年  美国 IBM NORC 67 kOPS 美国维珍妮亚州海军试验基地
1956年  美国 MIT TX-0 83 kOPS 美国麻省理工大学
1958年  美国 IBM AN/FSQ-7 400 kOPS 美国空军23号基地
1960年  美国 UNIVAC LARC 250 kFLOPS 美国加州罗兰士利物摩亚国家实验室
1961年  美国 IBM 7030 "Stretch" 1.2 MFLOPS 美国新墨西哥州洛斯阿拉莫斯国家实验室
1964年  美国 CDC 6600 3 MFLOPS 美国加州罗兰士利物摩亚国家实验室
1969年  美国 CDC 7600 36 MFLOPS
1974年  美国 CDC STAR-100 100 MFLOPS
1975年  美国 Burroughs ILLIAC IV 150 MFLOPS 美国加州NASA恩斯研究中心
1976年  美国 Cray-1 250 MFLOPS 美国新墨西哥州洛斯阿拉莫斯国家实验室
1981年
CDC Cyber 205 400 MFLOPS (世界很多地方)
1983年  美国 Cray X-MP/4 941 MFLOPS 美国新墨西哥州洛斯阿拉莫斯国家实验室,波音公司
1984年  苏联 M-13 2.4 GFLOPS 苏联莫斯科计算机科学研究学院
1985年  美国 Cray-2/8 3.9 GFLOPS 美国加州罗兰士利物摩亚国家实验室
1989年  美国 ETA10-G/8 10.3 GFLOPS 美国佛罗里达大学
1990年  日本 NEC SX-3/44R 23.2 GFLOPS 日本府中市NEC府中厂
1993年  美国 Thinking Machines CM-5/1024 65.5 GFLOPS 美国新墨西哥州洛斯阿拉莫斯国家实验室;美国国家安全局
 日本 Fujitsu Numerical Wind Tunnel 124.50 GFLOPS 日本国家宇航实验室
 美国 Intel Paragon XP/S 140 143.40 GFLOPS 美国山迪亚国家实验室
1994年  日本 Fujitsu Numerical Wind Tunnel 170.40 GFLOPS 日本国家宇航实验室
1996年  日本 Hitachi SR2201/1024 220.4 GFLOPS 日本东京大学
 日本 Hitachi/Tsukuba CP-PACS/2048 368.2 GFLOPS 日本筑波市筑波大学电算物理中心
1997年  美国 Intel ASCI Red/9152 1.338 TFLOPS 美国山迪亚国家实验室
1999年  美国 Intel ASCI Red/9632 2.3796 TFLOPS
2000年  美国 IBM ASCI White 7.226 TFLOPS 美国加州罗兰士利物摩亚国家实验室
2002年  日本 NEC地球模拟器 35.86 TFLOPS 日本地球模拟器中心
2004年  美国 IBM Blue Gene/L 70.72 TFLOPS 美国能源部/IBM
2005年  美国 136.8 TFLOPS 美国能源部/NNSA/LLNL
 美国 280.6 TFLOPS
2007年  美国 478.2 TFLOPS
2008年  美国 IBM Roadrunner 1.026 PFLOPS 美国新墨西哥州洛斯阿拉莫斯国家实验室
 美国 1.105 PFLOPS
2009年  美国 ORNL 美洲虎 1.759 PFLOPS 美国橡树岭国家实验室
2010年 中国 中国 天河一号 2.566 PFLOPS 中国天津国家超级计算中心
2011年  日本 Fujitsu 10.51PFLOPS 日本富士通
2012年  美国 IBM Blue Gene/Q 16.32475PFLOPS 美国劳伦斯·利弗莫尔国家实验室
2012年11月13日  美国 ORNL Titan 17.59PFLOPS 美国橡树岭国家实验室
2013年 中国 中国 天河二号 33.86 PFLOPS 中国广州国家超级计算广州中心

专用超级计算机

专用超级计算机都是针对单一问题而开发的电脑。这些电脑都使用专门编程的FPGA芯片及超大型密集芯片,纵然牺牲普遍性也要提高成本性能比率。它们被用于天文物理学及密码破解之上。
例子:

科幻中的超级计算机

  • Matrix-“母体”是电影《黑客帝国》中,由机器所创造出的一个模拟环境,用以控制人类,并从人类身上吸取能源。
  • Skynet-“天网”是电影《终结者》中美国军方所开发具有人工智能的超级电脑,但后来它具有自我意识而以全人类为敌。
  • MAGI-“麦棋”是动漫《新世纪福音战士》 中,设立于NERV总部由三台主机组成的超级电脑。MAGI是古代三贤人的称呼,他们是耶稣诞生的时候赠送耶稣礼物的东方三贤人。与使徒的对战中,用以判 断使徒的降落点与分析使徒弱点,提供攻击方针以及成功机率做参考数值。特别的是将三个不同的人格加入了三个主机当中,分别是科学家、母亲、女性,在理性的 计算之外也拟人的加入性格作为判断的依据。当判断有冲突时,三贤人系统会以投票机制做最后定夺。
  • HAL 9000-2001年太空漫游中主角鲍曼所乘搭的太空船发现号的主机,被安装了可以在必要时杀死乘员的功能。
  • TRANSLTR丹·布朗(Dan Brown)的小说-《数字城堡》中美国国家安全局所暗中开发的超级电脑,主要用来监听互联网数据包,破解一切可能对国家安全造成威胁的加密信息,包括加密的电子邮件,但是它的存在不被政府所承认。
  • Veda-“吠陀”是日本动漫《机动战士高达 00》中由雪儿·亚克斯迪卡(Chall Acustica)所集成的量子型计算机,由天人组织(Celestial Being)所使用,连接上地球所有网络,瞬间获得任何资讯,计算出预算方案。能与所谓“变革者”(Innovator)及原始变革者以脑量子波为媒介进行同步连接。
  • X.A.N.A,来自动漫Code Lyoko一 台有人工智能的超级计算机,原用于计算,后用与摧毁军事机密,有倒转时空的能力。他的发明者后来发现此功能后不断使用,导致X.A.N.A不断自我升级。 最后X.A.N.A通过计算得出结论:主宰地球。于是不断发动X.A.N.A的环境平台‘Lyoko’里的圆塔(开启后可用于计算使用并能实现虚拟事物现 实化)通过电缆对人类进行破坏。后来它能够实体化,把‘lyoko’删除了,但是被潜伏在世界上其他超级计算机里的发明者发回了‘Lyoko’原资 料,‘Lyoko’才得以重建。

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...