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