超算的起源与发展
IBM与CDC的故事
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。
无奈之下,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就是超级计算机的代名词。
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倍的计算机。
DC让Cray就此写个详细的年度规划和五年计划。Cray大笔一挥:我的五年目标是“造出世界最强大的计算机”,“我第一年计划就是这条路的1/5”。
他在家乡买了一块地皮,成立了一个新实验室。据说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。
名声大噪的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亿浮点运算。
大规模并行计算时代的开始
同样在1980年代,许多公司开始探索使用大规模并行处理(MPP)技术,实现一台计算机中使用多个处理器。
MPP技术降低了超级计算机的建造成本,新一代技术浪潮正在席卷,但Cray却不愿接受这种新技术,反而再次沉迷于用砷化镓造出更快向量处理器。
不是所有人都和Cray有同样的想法,比如Thinking Machines。
这家公司创始人Hills是MIT的博士,研究方向是大规模并行计算架构,1983年成立了这家公司,希望把学术成果转化为一类叫做连接机器(Connection Machine)的超级计算机。
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),却贵得吓人。
巅峰之后,Cray Research急速下滑;经历了破产、被收购等变故,命运多舛却顽强坚持,直至今日依然是超级计算机领域的巨头之一。Cray后续又成立了新公司SRC,开始研发大规模并行计算,可惜明天和意外不一定哪个先到来,项目启动后不久,他就在车祸中丧生了。
一个时代随之结束。
Thinking Machine也好景不长,1991年,DARPA 和美国能源部都因舆论压力而减少采购他们的产品,收紧的政策更令最强的Connection Machine出口无门。1992年,公司开始亏钱,CEO下台,到了1994年,公司破产,而后便是一系列被巨头收购的命运。
日本超算崛起
当美国超算界陷入内耗时,日本超算开始崛起。
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要翻盘了。
1996年,IBM推出ASCI Red。
它用了超过6000张200-MHz频率的奔腾处理器,突破每秒万亿级运算的大关。之后很多年,它都还是全球最快与最可靠的超级计算机。
ASCI Red验证了集群的路径,也让超级计算机未来的方向与市场更为了然。
全球超算TOP500榜单于1993年建立,而后每半年更新一次,为超级计算机供应商和客户提供了标准,也展现了高性能计算更清晰的发展路线。
中国超算崛起
面对奔腾而至的技术大创新,中国人自然不能缺席。
但毕竟与外界隔断许久,中国超算起于一片荒芜,需要从美国进口,而后者对超级计算机的出口严格限制。
“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年,成为该领域一颗耀眼新星。