掃碼登錄
40年前偶然走上程序員道路的Jack Dongarra,是今年的圖靈獎得主。
獎項(xiàng)設(shè)立機(jī)構(gòu)美國計(jì)算機(jī)協(xié)會(ACM)表示,Dongarra的算法與軟件成果推動了高性能計(jì)算(HPC)的發(fā)展。
正是他在數(shù)值算法和庫上的開創(chuàng)性貢獻(xiàn),使得過去40年里,高性能計(jì)算軟件追上了指數(shù)級硬件發(fā)展的節(jié)奏。
這位老爺子,還弄出了個TOP500的超算排行榜,每年兩次幫超算跑跑分啥的。
剛剛,今年71歲的老爺子還參加了中國計(jì)算機(jī)學(xué)會舉辦的CNCC 2022,做了次特邀報(bào)告演講。
演講的主題,也與高性能計(jì)算息息相關(guān)。
為什么人類需要超算?
高性能計(jì)算 ,是指通過聚合計(jì)算能力來提供比傳統(tǒng)計(jì)算機(jī)和服務(wù)器更強(qiáng)大的計(jì)算性能。
再通俗點(diǎn)來講,就是用超級計(jì)算機(jī)來并行處理復(fù)雜問題。
為什么要用上超算?Jack Dongarra舉了個例子。
他提到,科學(xué)和工程都通過理論和實(shí)驗(yàn)來推進(jìn),但兩者常常遭遇限制,尤其是實(shí)驗(yàn)部分。
會遭遇的“攔路虎”非常多,有可能是制造儀器很難搞,有可能是所觀察的事物發(fā)展太過迅猛,又或者是沒有辦法在實(shí)驗(yàn)室里完成實(shí)驗(yàn)。
比如,假設(shè)有兩個星系會發(fā)生碰撞,這個過程會是什么?
與其只靠漫長的觀測,不如在計(jì)算機(jī)上進(jìn)行仿真模擬。
計(jì)算科學(xué)增強(qiáng)著當(dāng)下的種種理論和實(shí)驗(yàn),最快的超級計(jì)算機(jī)能為仿真模擬提供非常好的保真度和準(zhǔn)確性,更重要的是,超算能夠覆蓋和支持仿真模擬過程中巨大的計(jì)算量。
這就不得不提到超算的結(jié)構(gòu)。
超算由一堆CPU、GPU等異構(gòu)芯片提供算力。
此外,它擁有一個高度并行的系統(tǒng)和分布式內(nèi)存。為超算編程時,會用到MPI(用于編寫并行計(jì)算機(jī)的跨語言通訊協(xié)議),以及用于共享內(nèi)存并行系統(tǒng)的多線程程序設(shè)計(jì)方案OpenMP。
美國橡樹嶺國家實(shí)驗(yàn)室的超級計(jì)算機(jī)Frontier取得了斐然的成績:在2022年第59屆國際超算Top500名單中位居榜首。
Frontier大約有800萬個核,9408個節(jié)點(diǎn),它在負(fù)載下的電力是21兆瓦。
Jack Dongarra打了個頑皮的比方。
他說,在美國,如果他家用掉1兆瓦的電力,一年得給電力公司繳納100萬美元的電費(fèi)。
也就是說,單是電費(fèi),F(xiàn)rontier一年就要花掉2100萬美元呢!
Frontier的最高性能是每秒2 x 1018次浮點(diǎn)運(yùn)算。
這是一個難以置信的計(jì)算量。如果現(xiàn)在全球所有人停下手里的工作,開始每秒做一次計(jì)算,晝夜不停、不眠不休地計(jì)算四年,才能達(dá)到1018次浮點(diǎn)運(yùn)算。然而,這樣龐大的運(yùn)算量,超算一秒就能完成。
除了計(jì)算,超算還涉及異構(gòu)數(shù)據(jù)在不同芯片間的搬運(yùn),Jack Dongarra稱之為移動數(shù)據(jù)(data moving)
Jack Dongarra指出,現(xiàn)在的超算對已經(jīng)對浮點(diǎn)運(yùn)算做了大量優(yōu)化,移動數(shù)據(jù)的成本已經(jīng)比計(jì)算成本還高。
降低移動數(shù)據(jù)的成本,將成為未來重點(diǎn)的研究方向。
此外,AI for Science已經(jīng)在很多科學(xué)領(lǐng)域發(fā)揮重要作用,譬如DeepMind旗下的Alpha系列,如Alpha Zero、AlphaStar、AlphaTensor……
今年推出的Alphafold2,其蛋白質(zhì)結(jié)構(gòu)數(shù)據(jù)庫揭開了蛋白質(zhì)宇宙,有人因此戲稱“結(jié)構(gòu)生物學(xué)家要失業(yè)了”。
超算的另一個發(fā)展方向,就是更適合做AI計(jì)算。
AI有很多方面,有ML、NLP、專家系統(tǒng)、CV、語音、機(jī)器人等。
Jack Dongarra給出了超算適合做AI計(jì)算的理由。
首先,互聯(lián)網(wǎng)上存在的大量數(shù)據(jù),可以用來訓(xùn)練和建立ML算法,與此同時,因?yàn)樘嵘床炝?,ML已經(jīng)成為了解決問題時所要考慮的“基礎(chǔ)設(shè)施”之一。
而關(guān)于用來做ML計(jì)算內(nèi)核的GPU,人類也對其背后的算法和理論有了更深度的了解。
ML的核心是矩陣,線性代數(shù)在其中扮演著重要的角色。
“8位浮點(diǎn)(FP8)精度很適用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的硬件?!?/p>
Jack Dongarra對此進(jìn)行了進(jìn)一步解釋:
相比于16位、32位的浮點(diǎn)精度,較低的精度正是ML所需要的。
這就是為什么現(xiàn)在更多的計(jì)算機(jī)被設(shè)計(jì)用來專門解決ML的問題。
他還提到,未來的超算或許會擁有更多的加速器,它們可以用來進(jìn)行ML、神經(jīng)神態(tài)計(jì)算、量子計(jì)算、光學(xué)計(jì)算等。
“從標(biāo)量到向量,從向量到分布式內(nèi)存,從分布式內(nèi)存到加速計(jì)算,再到使用混合精度來進(jìn)行計(jì)算。”Jack Dongarra總結(jié)道,“我得出結(jié)論,這里有三場計(jì)算機(jī)革命。”
意外走上漫漫超算路
拿下圖靈獎的Jack Dongarra并非一開始就以當(dāng)程序員為己任,一切都是“意外”。
高中畢業(yè)后,他選擇進(jìn)入芝加哥州立大學(xué)就讀——這所學(xué)校類似于地方性的師范學(xué)校,為芝加哥公立學(xué)校系統(tǒng)培養(yǎng)了不少教師。
大三、大四時,Jack Dongarra福至心靈地“醒悟”,發(fā)現(xiàn)自己并不想教書。
幾經(jīng)周折,他申請了阿貢國家實(shí)驗(yàn)室的本科生職位。在那里,他有機(jī)會和真正的科學(xué)家一起做一些實(shí)際工作,并獲取課程學(xué)分。
于是,就讀于芝加哥州立大學(xué)的最后一個學(xué)期,Jack Dongarra在阿貢國家實(shí)驗(yàn)室度過了16周左右的時間。
△1980年Dongarra在阿貢國家實(shí)驗(yàn)室
在阿貢國家實(shí)驗(yàn)室的這段經(jīng)歷,促使他決心轉(zhuǎn)攻計(jì)算機(jī)。
本科畢業(yè)之后,先在在伊利諾伊理工學(xué)院拿到CS碩士學(xué)位,又進(jìn)入新墨西哥大學(xué)繼續(xù)深造。
這里有一張1979年拍攝的照片,左數(shù)第二個年輕小伙就是Jack Dongarra本人。
那個時候,作為新墨西哥大學(xué)研究生的他,頭發(fā)還很茂盛(他自己說的)。
圖上四人搞了個小組,開發(fā)了一個叫LINPACK的項(xiàng)目,為此,Jack Dongarra還給自己心愛的車車掛上了同名車牌。
具體來說,LINPACK是一套求解線性方程組的數(shù)學(xué)軟件。
沒錯,那個時候小帥哥本人真正醉心的還是線性代數(shù)領(lǐng)域。
他曾這樣描述自己40年來成為程序員的動力:
我主攻的是數(shù)學(xué)方面的研究,尤其是數(shù)值線性代數(shù)方面,我所有的工作都源于此。
對那些需要解線性方程組的學(xué)科來說,一款能計(jì)算答案的軟件無疑是非常重要的。
同時,你還必須確保軟件運(yùn)行與機(jī)器架構(gòu)相一致,這樣才能真正獲得機(jī)器所能達(dá)到的高性能。
1993年,Jack Dongarra加入了TOP500排行榜團(tuán)隊(duì),成為了TOP500第一個測試版本的爸爸之一。
同年6月,正式版本開始發(fā)布,其所所使用的評選標(biāo)準(zhǔn)被稱為LINPACK。
自那時起,TOP500排行榜半年發(fā)布一次,告訴大家世界最強(qiáng)大的計(jì)算設(shè)備都在哪里。
這一舉措解決了科學(xué)家們無法就衡量超級計(jì)算機(jī)進(jìn)展的標(biāo)準(zhǔn)達(dá)成一致的問題。
負(fù)責(zé)監(jiān)督美國能源部“百百億次計(jì)算”項(xiàng)目的Paul Messina就表示:
“如果你不能測量它,你就不知道它是什么”,這就是為什么杰克的工作很重要。
現(xiàn)在,TOP500已經(jīng)成為衡量超算能力的權(quán)威標(biāo)準(zhǔn)。
而排名第一的計(jì)算速度,也以摩爾定律描述的節(jié)奏穩(wěn)步增長,大約每14個月就會翻倍。
天河一號,是中國第一臺登上榜首 (2010年11月) 的超級計(jì)算機(jī),它在榜首呆了六個月時間。
上月中旬,美國達(dá)拉斯舉行的 SC22 會議上,第60期TOP500排行榜結(jié)果公布,排名第一的依舊是上次奪魁的Frontier。
中國的兩臺超算,神威太湖之光和天河2號,分別拿下了排行榜第7和第10位。
統(tǒng)計(jì)所有上榜TOP500的超算,中國共占據(jù)162臺,雖較去年的173臺有所下降,但仍以領(lǐng)先美國36臺的優(yōu)勢,穩(wěn)居世界第一的寶座。
在算力方面,美國在已部署的算力中以43.2%排名第一,中國以10.6%位列第四。
Jack Dongarra拿出了一組十分直觀的數(shù)據(jù)。
現(xiàn)在的計(jì)算機(jī),最快每秒是1.1 exaflops,TOP500的最后一名則是1.73 petaflops。
而Jack Dongarra的筆電是擁有M2處理器的MacBook,它的運(yùn)行速度是426 gigaflops。
近30年前,第一代TOP500的榜首,屬于洛斯阿拉莫斯國家實(shí)驗(yàn)室(LANL)用來設(shè)計(jì)核武器的計(jì)算機(jī)CM.5,它擁有一千個處理器,運(yùn)行速度大約是60 gigaflops。
不用說當(dāng)年的第一和今日的第一如何如何,今天家用筆電的運(yùn)行速度,已經(jīng)遠(yuǎn)遠(yuǎn)超過了30年前的世界最快。
好了,最后還是說回老爺子。
年逾七十的他,至今依然活躍在高性能計(jì)算領(lǐng)域的一線,今年更是奪得“計(jì)算機(jī)界的諾貝爾獎”圖靈獎,其中,LINPACK,正是他拿圖靈獎的獲獎工作之一。
ACM總裁Gabriele Kotsis表示,Jack Dongarra是高性能計(jì)算社區(qū)中,最重要且積極參與的領(lǐng)導(dǎo)者之一。
超算的新benchmark
也是這位積極的領(lǐng)導(dǎo)者提出,超算需要新的基準(zhǔn)測試了!
背后原因不難理解——
LINPACK基準(zhǔn)測試強(qiáng)調(diào)浮點(diǎn)運(yùn)算,它的核心是矩陣乘法。
多年以前,團(tuán)隊(duì)設(shè)計(jì)LINPACK時,浮點(diǎn)運(yùn)算還是一個很重要的衡量標(biāo)準(zhǔn)。
今時今日,浮點(diǎn)計(jì)算已經(jīng)不那么重要了。
放眼望去,所有的超算都為浮點(diǎn)計(jì)算做了“過量”的準(zhǔn)備——Jack Dongarra本人是如此評判的。
是以,他認(rèn)為當(dāng)務(wù)之急是需要有新的基準(zhǔn)來關(guān)心移動數(shù)據(jù),也就是HPCG。
簡單介紹,HPCG一個共軛梯度算法,它著眼于解決稀疏矩陣問題,而不是密集矩陣。
這恰恰滿足了今時今日在實(shí)際應(yīng)用中存在的問題。
相比于舊的基準(zhǔn)HPL,HPCG能更好地反映應(yīng)用程序的效果,但它給出的執(zhí)行速度的數(shù)字會低很多。
究其背后的原因,是隨著GPU的增強(qiáng),計(jì)算機(jī)已經(jīng)可以非常迅速地進(jìn)行浮點(diǎn)運(yùn)算,所以HPL得出的數(shù)據(jù),其實(shí)是超算潛力被夸大后的結(jié)果。
相對應(yīng)地,HPCG強(qiáng)調(diào)不是浮點(diǎn)數(shù)而是移動數(shù)據(jù),這正是帶寬和延遲會限制超算性能的地方。
就拿日本超算富岳(Fugaku)來說吧。
LINPACK基準(zhǔn)測試中,富岳排名第一,達(dá)到了理論峰值的3%;而運(yùn)行新基準(zhǔn),富岳只得到了理論峰值的0.8%。
這意味著計(jì)算機(jī)并沒有發(fā)揮出它們的潛在性能,需要更仔細(xì)地進(jìn)行研究。
有趣的一點(diǎn)是,TOP500超算榜上,幾乎97%都在使用x86這種架構(gòu),只有5臺超算使用ARM處理器。
以及,這500臺超算沒有任何一個使用了RISC-V。
“雖然今天它給高性能計(jì)算帶來的影響很小,但也許在未來,我們可以看到RISC-V對它的影響。”Jack Dongarra說。