超算簡史:練飛天之技,登峰一戰後,終有落地日

超算簡史:練飛天之技,登峰一戰後,終有落地日

撰文| 盧曉明

圖源| 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》



分享到:


相關文章: