超算简史:练飞天之技,登峰一战后,终有落地日-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

超算简史:练飞天之技,登峰一战后,终有落地日

简介: 本文首发于杭派工程师公众号,欢迎大家帮忙点赞与扩散。 撰文| 卢晓明  编辑| 猛哥 沛林 图源| Google & Wikimedia   在“高科技曾被国外垄断”的耻辱柱上,超算绝对是刻骨铭心的一个。 1980年代,中国还没有超算自主研发能力,从美国花重金买回超级计算机,但
本文首发于杭派工程师公众号,欢迎大家帮忙点赞与扩散。 撰文| 卢晓明  编辑| 猛哥 沛林 图源| Google & Wikimedia  
在“高科技曾被国外垄断”的耻辱柱上,超算绝对是刻骨铭心的一个。 1980年代,中国还没有超算自主研发能力,从美国花重金买回超级计算机,但被“隔离”在透明的玻璃房子里。 房间带锁,钥匙在美国人手中;计算机的启动密码,也由美国人控制;且只能用于石油勘探,不许用来计算其他。总之,为了限制中国对超级计算机的用途,只有美国工程师才有权操作,中国人只能隔着玻璃墙,遥望这台自己花钱买来的机器。   那些年,在超级计算的江湖里,我们简直就是裸奔。   聪明自强的中国人,怎能让别的国家掐住脖子?后来不断奋发的“技术自研”史中,超算,绝对是其中最扬眉吐气的一个。   万苦千辛,翻过“超算自由”这座高山,我们逐渐探索出超算应用的无穷力量。   近几十年,超算技术的应用不仅涵盖了军事、石油、气象、航天航空等领域,也逐步走进了影视渲染、工业制造和制药。   就连这次疫情,超算也是“急需品”。   病毒惊人的传播力,使得科学家必须分秒必争地与之对战。使用大规模高性能算力加快药物的筛查与疫苗研发成为不二之选。疫情期间,阿里云免费开放高性能计算服务,为十多个公共医疗机构提供支持,涵盖药物与疫苗研发、CT筛查和疾控数据系统等,极大推动了疫病防治。   这些都离不开超算的商用成熟和云超算兴起。   前有古人,后有来者。这是超算的故事。

1. 第一台超级计算机出世:IBM惨败

高性能计算(HPC, High-performance Computing),也被称为超级计算(SuperComputing)。   超级计算机之“超级”,一是因为块头大,二是解决的问题大。   体积上,它由成百上千,甚至更多的处理器(机)组成,能计算普通PC机和服务器不能完成的大型、复杂课题。   超算界2012年世界冠军“泰坦”(Titan),有一万多个最强CPU,再配上GPU、高速网络等高精尖武器组成,总占地面积与标准篮球场相当,消耗的电力足以供应一个小型城镇。   超级计算机可以处理的“大问题”,包括模拟核试验、石油勘探、预测气象等等。最早在军事、航天航空等领域使用,后来开始用于制药、工业仿真等领域。这也是为何超级计算机会成为国家间的军备竞赛。   据公开资料显示,“超级计算(Supercomputing)”这一名词在1929年《纽约世界报》关于“IBM为哥伦比亚大学建造大型报表机(tabulator)的报道”中首次出现,但尚未被广泛使用。   要讲超算故事的开始,IBM是绕不开的巨头。   1954年,IBM为美国海军设计了一台电子管计算机IBM NORC,也是第一代计算机。   12月,在为IBM专门组织的开幕式上,IBM NORC牛X轰轰地展现了在13分钟内算出π小数点后3089位——一举打破当时的世界纪录。 1960年, UNIVAC LARC取代 IBM NORC成为最快的计算机,这是一台大型机,为“氢弹之父”Edward Teller设计,用来为核武器设计做流体力学模拟。它支持最多两个CPU(当时被称为computer)和一个I/O处理器,但实际上建造出来的两台机器都只有一个CPU。   不到两年,全球最快计算机的桂冠,又被IBM 7030夺回。这台机器是为了满足Teller需求而而设计,但Teller觉得IBM的方案风险太大,还是选择更简单的UNIVAC。   他没选错,7030败得一塌糊涂。   IBM最早承诺,7030的速度至少是上一代704的100倍。过于激进的flag最终落空,性能只提升了30倍。   无奈之下,IBM用减价大处理的方法挽回尴尬,将7030的价格从1350万美元直降到778万美元。纵使7030孵化了许多有用的技术,依然被PC World杂志称为IT史上最大的项目败笔。   更让IBM蒙羞的是,一家规模远小于他的公司 CDC(Control Data Corporation),在第二年就发布了一台性能高三倍的计算机——CDC 6600,每秒执行约300万次浮点运算。     CDC 6600发布一周后,IBM时任CEO T.J.Waston Jr写信给高管:“我了解到,研发这个系统(CDC 6600)的实验室只有34个人,包括清洁工。其中14个工程师,4个程序员,只有一个人有博士学位,还是个资历尚浅的程序员。”   Waston发出灵魂拷问:我不懂,我不懂在造出最强计算机这事上,我们怎么会输给了CDC?!下周周会好好讨论一下这件事!   项目经理Stephen Dunwell更是为此而背了个大锅(后来随着System 360的成功,Stephen于1966年收到官方致歉并被授予IBM最高荣誉奖“IBM 院士”)。   CDC 6600 太成功了!   今日主流观点普遍认为,CDC 6600是世界上第一台超级计算机。直到1969年,它的设计师建造出下一台计算机之前,CDC 6600一直稳居世界第一。   一个新时代来临。   Seymour Cray,CDC 6600背后的男人,这个以制造最快计算机为己任的工程师,从此登上历史舞台。   接下来十几年,Cray就是超级计算机的代名词。

2. 超算之父:偏执狂Seymour Cray

  Seymour Cray最早给海军打工。   二战期间,美国海军专门成立了秘密工程师小组,来建造解密机器以破译敌方密文。   大概就是《模仿游戏》中,“卷福”神经质地转动图灵机仪表盘的画面。   二战后,军费大幅削减,美国海军越发担心这解密小组会分崩离析、各自创业,于是便开始帮他们“找活干”。这群工程师成立了一家外包公司叫ERA,给航空器制造商打过工、造过计算机,最后与一家设备制造商合并。   无奈大公司决策流程漫长,几位工程师实在受不了项目一拖再拖,终究在1957年9月,辞职创办了CDC。   Seymour Cray是早期成员之一。   CDC以售卖磁鼓储存器(drum memory)等子系统起家。而Cray刚来就做了一台小型晶体管电脑,名为 "CDC小人物" 。   没想到,这台“小人物”收获了大成功,也验证了Cray关于大型系统设计和晶体管计算机的想法。   接下来的1964年,Cray又为CDC设计了极为成功的1604和160A。   公司管理层希望为1604等产品增加更符合商业用途的功能,比如文字处理等。可是Cray对此不屑一顾。   他深信时代总是需要性能超群的计算机,一心想造出更快的计算机。   Cray给自己定了一个目标——建造比1604快50倍的计算机。   超算之父Seymour Cray CDC让Cray就此写个详细的年度规划和五年计划。Cray大笔一挥:我的五年目标是“造出世界最强大的计算机”,“我第一年计划就是这条路的1/5”。   请想象当时CEO的心理阴影面积……   这还不够——迅速发展的CDC管理流程逐渐完善,把Cray拖得只喊心累——他又跟CEO说,我没法待在公司总部了,我想带着我的团队归隐深林,潜心造机,否则就辞职。   这怎么能行?!山高皇帝远,这一走公司还管得着Cray?   然后 CEO就答应了Cray的要求。   经过几轮拉锯战,双方最终选了一个打电话都嫌贵,但是参加董事会还算凑合的地方——Cray的家乡。他买了一块地皮,成立了一个新实验室。据说Cray选这儿还为了离防空洞近,万一爆发了核战争还能躲躲。   远离总部这支小Team,Cray很快便有了进展。彼时晶体管技术已相当成熟,用此制造的元件运行得很顺利。   他们造出了CDC 6600,让IBM望尘莫及。   CDC 6600还是第一台取得巨大商业成绩的超级计算机。不但走进了各个核武器实验室,还走进了各个大学的计算机实验室,售价237万美金,总共卖出了超过100台。以往的超级计算机也就卖个几台而已。   没享受成功多久,Cray又埋头钻研下一代机器 CDC7600,希望后者性能十倍于6600。   7600不负众望,再次成为了全球最快的计算机,最终卖出了50台——还算成功。   而Cray与CDC却走到了分道扬镳之时。在Cray眼中,CDC的经理们平庸无能;CDC则视Cray为不惜代价的偏执狂。   尽管6600和7600取得了巨大的成功,但研发投入的金额让这家公司几近破产。下一代机器8600研发遇阻,Cray想重头再来,CEO Norris不愿再冒险了,建议先把资金投到更为顺利的STAR-100项目中,等到产品发布后再把钱给到8600。   某种程度上,CDC的决定也是正确的。Cray出走2年后,STAR-100顺利发布,每秒可进行1亿次浮点运算,是当时首批使用向量处理器的计算机。   CDC终究还是没能留住这名天才。1972年,Cray离开CDC,创办了自己的公司Cray Research。

3. 自立门户:超算王者Cray与他的魔法师们

  单干可没那么容易。   脱离CDC的Cray Research,一开始很苦恼自己究竟要干嘛。毕竟造计算机是很烧钱的,而他们没钱。   但是,设计出了全球最快超级计算机的工程师要自己创业,这事肯定比瑞幸咖啡讲的故事可靠谱一千倍,你要是风投,你能不投?   名声大噪的Cray带着小伙伴来到华尔街找钱,发现资本就等着他拿自己的钱去搞开发。   四年后,他再次创造历史——史上最成功的超级计算机Cray-1诞生了,性能跑赢市面上的所有计算机好几条街!    Cray和Cray-1 这台计算机引入了大量创新元素,最为奇特是它的C字环形设计,这样的环型设计让这样的环型设计让电路板更短,从而性能更佳。   Cray-1以近900万美元/台的价格,卖出超过80台。   不用讲,公司赚翻了。   Cray这次凭借着精妙的设计闻名于世,被称为“齐佩瓦福尔斯的魔法师”(The Wizard of Chippewa Falls)。   一时间,新生的Cray公司风头无两,人才济济,气势如虹。   1982年,Cray公司工程师Steven Chen又设计了双处理器和四处理器的超级计算机Cray X-MP。   到1983年,Cray和Control Data两家公司主导着超级计算机市场;尽管IBM在整个计算机市场上处于领先,但在这个赛道却铩羽而归。   作为企业家的Cray,已然是业界领袖;作为工程师的他,却未必满意自己1985年交出的答卷。   在Steven Chen团队研发的X-MP的同时,Cray也带领着团队设计Cray-2,经过6年的研发之后,有着四个向量处理器的液冷计算机Cray-2终于面世,但它却只比X-MP快了一点,屈居全球第二。     Cray-2被泡在装满冷却液的大水箱中,水箱运行时还会冒泡。Cray-2实际上用了全新的、具有开创性的共享内存设计,甚至为今天的基于服务器的SMP系统指明了方向,非常适合处理对内存要求巨大的问题,但其内存延迟极高,且编码难度极大,软件成本高企,最终销量平平。   这是Cray本人无法接受的。为了专注研发,他选择放弃CEO职位,从每日缠身的冗务中抽离出来。   可惜,Cray终究是重蹈覆辙了。他在Cray-3尝试中使用砷化镓半导体,该实验没有成功。   幸亏Cray Research还未江郎才尽,它还有别的工程师。然而预算有限,公司资金只够支撑一个项目。最终公司选择了支持Steve Chen设计的Cray Y-MP——X-MP的改进版。   X-MP于1988年发布,支持八个矢量处理器,每个处理器的峰值性能为3.3亿浮点运算。

4. 1024只鸡打败2只牛:大规模并行计算兴起

  同样在1980年代,许多公司开始探索使用大规模并行处理(MPP)技术,实现一台计算机中使用多个处理器。   MPP技术降低了超级计算机的建造成本,新一代技术浪潮正在席卷,但Cray却不愿接受这种新技术,反而再次沉迷于用砷化镓造出更快向量处理器。他曾讽刺道:“如果你要耕田,你会选两只强壮的牛还是1024只鸡?”   不是所有人都和Cray有同样的想法,比如Thinking Machines。   这家公司创始人Hills是MIT的博士,研究方向是大规模并行计算架构,1983年成立了这家公司,希望把学术成果转化为一类叫做连接机器(Connection Machine)的超级计算机。   正在运行中的连接机器CM-1   1984年,美国国防部正在寻找可以让坦克、导弹等武器实现目标识别和自然语言理解的计算机架构,Thinking Machine获得DARPA(Defense Advanced Research Projects Agency)青睐,拿下了450万美元的国防合同。如此一来,这家公司的任务便为,在两年之内建造一台全球最快的计算机。   傍上了美国国防部,他们很快在1989年就实现了盈利。   第二年,他们又实现了6500万美元的软硬件收入,成为了并行超算的领导者,甚至与超算王者Cray Research分庭抗礼。到1993年,世界上最快的四台计算机,都是Connection Machine。   1990年代已是MPP(Massive Parallel Processing)大爆发的时代,处理器个数由原来的个位数爆炸增长到几千个。除了Thinking Machine,并行计算机领域还有nCUBE和MasPar等企业,Thinking Machines的CM-2和CM-5两款超级计算机在市场上都有对标产品。   MMP机器的性价比让Cray-3全无招架之力,Cray-4虽然能跑到10亿赫兹(1 GHz),却贵得吓人。随着冷战结束与新技术的出现,两条强壮的牛最终输给了1024只鸡。     巅峰之后,Cray Research急速下滑;经历了破产、被收购等变故,命运多舛却顽强坚持,直至今日依然是超级计算机领域的巨头之一。Cray后续又成立了新公司SRC,开始研发大规模并行计算,可惜明天和意外不一定哪个先到来,项目启动后不久,他就在车祸中丧生了。   一个时代随之结束。   Thinking Machine也好景不长,1991年,DARPA 和美国能源部都因舆论压力而减少采购他们的产品,收紧的政策更令最强的Connection Machine出口无门。1992年,公司开始亏钱,CEO下台,到了1994年,公司破产,而后便是一系列被巨头收购的命运。  

5. 日本崛起,美国反击:“平民化”超算集群诞生

  当美国超算界陷入内耗时,日本超算开始崛起。   NEC、富士和日立等企业继承了Cray的遗志,建造出基于向量处理器的超级计算机。   NEC生产的SX-3/44R有四个处理器,成了1990年全球最快的超级计算机。   1994年到1996年,富士的Numerical Wind Tunnel是全球最快的超级计算机,一共用了166张向量处理器,每张卡每秒能做17亿次浮点运算。   日立的SR2201 在也1996年凭借2048块用高速3D交错式网络连接的处理器,实现了每秒6000亿次浮点运算的峰值。   Cray的消逝让日本在超算领域一枝独秀,美国能源部坐不住了,总不能以后都买日本人的超算吧?!   于是,美国将超算上升为国家战略。以ASCI(Accelerated Strategic Computing Initiative)——一个专门处理核武器模拟的计划——拨款支持IBM和Intel全球首台T( teraFLOPS,每秒万亿次浮点运算 )级别的超级计算机。   20世纪最顶尖的超级计算机ASCI Red,将在国家力量支持下诞生。   在Intel拿着国家补贴时,NASA一支缺钱的外包队伍,其中有Don Becker和Thomas Sterling等成员,正在用一大堆通用商业硬件捣鼓着他们的“超级计算器”——16块286DX处理器,加一条10兆带宽的以太网网线组成的Beowulf集群。   这群外包团队自己也没想到,他们建立的,看起来有点简陋的Beowulf集群,就是今天最主流、最广泛使用的超级计算机设计——Linux高性能计算集群。   当然,今天的Beowulf集群都是用IB网络、千兆级带宽等高速网络连接,数万个处理器在大规模分布式并行程序调度下有条不紊地配合,存储用SAN、NAS和并行文件系统。   这种通用硬件+通用操作系统的思路,打破了原有的MPP超级计算机的单独定制门槛,让“堆机器”成了新玩法——只要你的设备够多,用手机也能连出一台超级计算机。   在旁边吃瓜的Intel觉得这想法不错,加上Intel之前造出过一台MIMD(多指令多数据)机器Intel Paragon,那还是1993年最快的机子——MIMD+Beowulf集群说不定能创造出非常便宜的超级计算机,而且还不用定制的向量处理器。沿着这个路子,后来的Intel成为垄断超算芯片的霸主,这是后话。   眼下,IBM要翻盘了。   ASCI Red   图源:Wikimedia   1996年,IBM推出ASCI Red。   它用了超过6000张200-MHz频率的奔腾处理器,突破每秒万亿级运算的大关。之后很多年,它都还是全球最快与最可靠的超级计算机。   ASCI Red验证了集群的路径,也让超级计算机未来的方向与市场更为了然。   全球超算TOP500榜单于1993年建立,而后每半年更新一次,为超级计算机供应商和客户提供了标准,也展现了高性能计算更清晰的发展路线。

6. 科技强国梦:中国超算的逆袭

面对奔腾而至的技术大创新,中国人自然不能缺席。 但毕竟与外界隔断许久,中国超算起于一片荒芜,需要从美国进口,而后者对超级计算机的出口严格限制。   “80、90年代,国际对中国大型计算机实行禁运,中国人不许购买。”曙光公司总裁历军曾在接受人民网采访时回忆道。   中国石油工业部物探局辗转几道,终于买到了一台IBM大型机。后来就有了“玻璃房子”事件,激励了一代科研人员。   参与“天河二号”的工程师坦言,起初没工资、待遇低,白天在高温下扛机柜电缆,晚上研发测试,日以继夜地工作,只望一雪前耻。   1983年12月,由国防科技大学研发的“银河一号”研制成功。这是中国第一台每秒运算1亿次以上的计算机——纵然仅为美国机器70年代的速度,仍然是我国超算演进史中的里程碑,并参加了国庆检阅。   银河二三四号在1994年到2000年间相继面世,算力提升到1万亿次。中国也因此,成为少数能发布5至7天中期数值天气预报的国家之一。   中科院计算技术研究所也在1992年开始研制“曙光”系列,曙光一号是中国首款基于通用微处理器的并行计算机。   2010年,国防科技大学研发出“天河一号”升级版“天河一号A”,首次登上了全球超级计算机TOP500的榜首,但优势转瞬即逝——8个月之后,擂主之位被日本打下。外界不禁质疑,中国超算的领先不过昙花一现。   三年后,中国的科学家用实力回击。“天河二号”于2013年称霸榜首,并于接下来的三年里蝉联六次冠军。天河系列是首次采用GPU加速的超级计算机。GPU长于并行运算,配合上擅长逻辑运算的CPU,大大提升了性能。   被打下来的美国超级计算机泰坦(Titan),只当了7个月冠军。   美国急了。2015年,美国商务部宣布对中国四家超算单位禁售处理器芯片。天河2使用的是Intel的CPU和众核处理器。断供让中国超算成了无米之炊。   这招够狠。但是也激发中国自研,最终来了一记反杀。     “神威·太湖之光”于次年面世,此后实现了“四连冠”。它配备超4万个中国自主研发的“申威26010”众核处理器,采用了64位自主申威指令系统,速度比天河二号快两倍。   同年,高性能领域的最高成就“戈登·贝尔”奖,颁给了“神威·太湖之光”上运行的全球大气非静力云分辨模拟应用。   2013-2017年,中国占据了超算巅峰5年,成为该领域一颗耀眼新星。   面对压力,美国的能源部于2014年启动超算计划 CORAL( Collaboration of Oak Ridge, Argonne, and Lawrence Livermore),投入5.25亿美元,誓要夺回领头羊之位。   CORAL计划中,三个国家实验室共同招标,建造四台超级计算机,IBM+英伟达+Mellanox和Intel+Cray两个组合,分别建造了两台超级计算机。美国凭借Summit如愿在2018年夺冠。   竞争还在继续。   但一时胜负并非终极目标。争夺“第一”只是秀肌肉,超算终归还是要服务产业,超算技术的未来,是为各行各业创造价值。   在美国和日本,超算已经普遍进入汽车、飞机、航天、电影甚至零售行业,细至如何包装薯片,都在利用超算模拟解决。而在中国,超算的普及与推广才刚刚开始。   “最快”的超级计算机变得越发昂贵,动辄数亿美元,只能由公共财政资助。当国家在支撑着银河、天河、神威等中国超算“上天”的同时,产业界也在推动超算“下凡”,让更多的企业享受到超算这种尖端技术带来的红利。   阿里云高性能计算负责人何万青曾参与天河系列的建设,如今投身云超算。   “早年间,业内有人提出让高性能计算更为易用,通过高性能计算上云实现HPC-as-a- Service(HaaS)。但计算、存储、网络都要达到超算的标准并不容易。”何万青说。   但是阿里云做到了。   传统超算往往使用物理机,而云服务器则因虚拟化产生了性能损失,导致云上做高性能计算并不经济。阿里云则通过自研的神龙架构,将虚拟化损耗降为零,获得物理机般的高性能,又能与阿里云存储等基础设施兼容。   2017年,阿里云基于神龙服务器,加上低延迟、高带宽的网络与云存储等产品,开发了一套超级计算集群SCC。     何万青分析,工业制造、影视渲染和生命科学等行业在使用超算时,可能会产生许多问题:比如对算力需求变化大难以马上满足、部署环境和调优周期长、缩扩容困难和无法提供工业计算所需稳定性SLA等等。   阿里云超算天然具有“弹性”和“运维自动化”的特点。云本身可选择按使用量计费,自动伸缩的功能,可以根据作业量自动释放或部署节点;而且配备了自动调优;同时集成了丰富的软件。   超算上云了,也下凡了。   在2018年的云栖大会上,阿里云超算现场展示了,现代汽车制造业如何利用云上高性能实现工业仿真。   这次演示背后是阿里云SCC超级计算集群+E-HPC弹性高性能计算服务:使用SCC,结合E-HPC创建集群及集谛性能分析等操作流程,以可视化的形式展示ANSYS流体动力学软件基于SCC和E-HPC进行求解运算后的结果。   阿里云超算称其为“每一个企业都用得起的数值风洞”。   过去汽车的风洞测试大多需要庞大的机器才能完成,基于阿里云的风洞仿真能力,汽车企业能够以更低成本完成风洞实验,整体效率提升25%。   除了工业仿真,阿里云超算还应用到了生命科学、影视渲染和芯片仿真等领域。   《流浪地球》制作方MORE VFX等多家影视后期特效制作公司,就用此实现了云端渲染,大大提升效率;大连化物所国家重点实验室使用E-HPC集群做分子动力学仿真计算,相对上一代GPU集群效率提升200% 。 如今,作为现代药物的重要计算底座,高性能计算成为人类抗击疫情的重要武器。 疫情初期,阿里云便宣布向全球公共科研机构,免费开放一切AI算力,支持药物研发、CT医学图像AI诊断、传染病人疾控数据系统建设等,帮助科研机构缩短研发周期和诊断所需时间。

新药研发中最重要的一环便是寻找对靶点有效的化合物。不同于以往费时费力的化学实验,人工智能和超算的发展,让科研机构可以通过计算机进行化合物虚拟筛选。

目前,阿里云已经为北京大学、清华大学等国内13家机构免费提供高性能算力等支持。   让超算性能再上一重天,让技术落地更多行业,技术人从未停息。     参考资料: 维基百科,IBM官网,inc、hpe等国外媒体,电脑报、人民网等国内媒体,阿里云官网及媒体对其采访,书籍《CUDA Programming》

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: