C++無(wú)法滿足超算編程需求,斯坦福研發(fā)專用語(yǔ)言Regent
斯坦福大學(xué)開(kāi)發(fā)出一種用于編程超級(jí)計(jì)算機(jī)的新語(yǔ)言Regent。用戶可以先編程計(jì)算任務(wù),然后再定位數(shù)據(jù),非常容易,而且無(wú)需重新編寫(xiě)代碼??茖W(xué)家希望創(chuàng)建一個(gè)不需要每個(gè)研究人員成為計(jì)算機(jī)科學(xué)家的編程環(huán)境。
最前沿科學(xué)領(lǐng)域的巨大挑戰(zhàn)只有超級(jí)計(jì)算機(jī)能夠應(yīng)對(duì),但這些機(jī)器的難度卻成了前進(jìn)的阻礙。
幾十年前,計(jì)算機(jī)成本高昂,復(fù)雜且罕見(jiàn)。但是PC革命改變了這一點(diǎn),為大多數(shù)人提供了更小、更快、更容易使用、更易于獲取且更便宜的計(jì)算機(jī),科學(xué)家們因此受益匪淺。他們開(kāi)發(fā)了計(jì)算機(jī)技術(shù)來(lái)研究細(xì)胞的內(nèi)部運(yùn)作、遙遠(yuǎn)恒星的行星軌道、以及遠(yuǎn)遠(yuǎn)超出其觀察能力的其他現(xiàn)象。
但對(duì)于處于最前沿的研究人員來(lái)說(shuō),新式復(fù)雜的儀器開(kāi)始產(chǎn)生越來(lái)越多的數(shù)據(jù),需要用到超級(jí)計(jì)算機(jī)來(lái)分析實(shí)驗(yàn)結(jié)果。給這些硬件編程所需軟件太復(fù)雜了,另試圖分析這些龐大數(shù)據(jù)集的科學(xué)家們常常難以掌握。
不過(guò)好消息來(lái)了。Regent,一門由斯坦福大學(xué)計(jì)算機(jī)科學(xué)家Alex Aiken領(lǐng)導(dǎo)的小組開(kāi)發(fā)的新編程語(yǔ)言,將使得超級(jí)計(jì)算機(jī)編程更易于使用。
“我們希望創(chuàng)建一個(gè)不需要每個(gè)研究人員成為計(jì)算機(jī)科學(xué)家的編程環(huán)境,”阿爾卡特朗訊通信和網(wǎng)絡(luò)教授,粒子物理學(xué)和天體物理學(xué)以及光子科學(xué)教授Aiken說(shuō)。
Regent有助于解決超級(jí)計(jì)算領(lǐng)域面臨的***挑戰(zhàn)。超級(jí)計(jì)算機(jī)比以往任何時(shí)候都復(fù)雜得多,當(dāng)前的編程語(yǔ)言一直在努力跟上步伐。提到超級(jí)計(jì)算機(jī),大眾的腦海中可能會(huì)浮現(xiàn)出一臺(tái)類似黑客帝國(guó)Matrix的巨型機(jī)器,但它實(shí)際上是由數(shù)千個(gè)微處理器組成的數(shù)組。
科學(xué)家通常使用C++對(duì)這些陣列進(jìn)行編程。C++是40年前的一種編程語(yǔ)言,在當(dāng)時(shí)那個(gè)年代,主要的微處理器是中央處理單元即CPU。CPU可以快速的解決問(wèn)題,一個(gè)接一個(gè)地計(jì)算,程序員稱之為串行方式。
但是現(xiàn)在,第二種類型的微處理器對(duì)于超級(jí)計(jì)算變得重要,即圖形處理單元或GPU。一開(kāi)始是為了玩電腦游戲時(shí),控制屏幕上無(wú)可計(jì)數(shù)的像素點(diǎn),可以執(zhí)行并行計(jì)算。
事實(shí)證明,并行處理在機(jī)器學(xué)習(xí)等應(yīng)用中非常有用。C++已經(jīng)升級(jí),以跟上這波硬件的變化。不幸的是,補(bǔ)丁的增加使語(yǔ)言越來(lái)越難以使用。而Regent能夠讓超級(jí)計(jì)算機(jī)的程序員更容易做一些事情,比如將串行處理任務(wù)分配給CPU,將并行處理任務(wù)分配給GPU。
一旦Regent在概念層面上構(gòu)建了程序,程序員的意圖就會(huì)被編譯成一個(gè)名為L(zhǎng)egion的第二個(gè)軟件層。
Legion生成機(jī)器代碼,用來(lái)指導(dǎo)超級(jí)計(jì)算機(jī)硬件如何執(zhí)行程序的精確指令。Regent和Legion之間的緊密集成使程序員更容易做出其他重要決定; 值得注意的是,存儲(chǔ)超級(jí)計(jì)算機(jī)必須分析的數(shù)據(jù)的位置。
Elliott Slaughter是SLAC國(guó)家加速器實(shí)驗(yàn)室的科學(xué)家,他幾乎從一開(kāi)始就在Regent和Legion工作過(guò),他表示兩層之間的整合可以節(jié)省程序員的金錢和時(shí)間。計(jì)算機(jī)消耗能源,這需要成本,移動(dòng)數(shù)據(jù)的成本可能是對(duì)該數(shù)據(jù)執(zhí)行計(jì)算的成本的100倍。
此外,大型實(shí)驗(yàn)通常依賴于收集大量數(shù)據(jù)的儀器。Slaughter表示,一些儀器可以每秒收集相當(dāng)于20個(gè)DVD的數(shù)據(jù),用于持續(xù)15分鐘的實(shí)驗(yàn)。即使以光速在光纖上移動(dòng),從儀器到超級(jí)計(jì)算機(jī)獲取大量數(shù)據(jù)也可能產(chǎn)生滯后,這可能會(huì)破壞分析。
“把數(shù)據(jù)存儲(chǔ)在什么地方,是程序員需要做出的重要抉擇,”Slaughter說(shuō)。Regent和Legion通過(guò)為程序員提供***的控制權(quán)來(lái)節(jié)省金錢和時(shí)間,以便在等待計(jì)算時(shí)存儲(chǔ)數(shù)據(jù)。
“你可以先執(zhí)行計(jì)算任務(wù),然后在不重寫(xiě)代碼的情況下輕松定位數(shù)據(jù),”他說(shuō)。
Regent會(huì)流行嗎?研究人員表示,新語(yǔ)言必須克服大量的慣性。“這是一種非常不同的編程方式,”Aiken說(shuō)。“研究人員需要一段時(shí)間才能采用所需的思維模式。”
但有兩個(gè)因素對(duì)它有利。首先,超級(jí)計(jì)算硬件的繼續(xù)改進(jìn)。美國(guó)能源部正在推動(dòng)其Exascale計(jì)算項(xiàng)目的發(fā)展,該項(xiàng)目的目標(biāo)是在2021年左右實(shí)現(xiàn)超級(jí)計(jì)算能力的50倍增長(zhǎng)。能源部正在支持軟件項(xiàng)目,包括Regent,以幫助編程保持同步。
此外,許多想要使用超級(jí)計(jì)算機(jī)的科學(xué)家不熟悉當(dāng)前的工具,并對(duì)編寫(xiě)大型實(shí)驗(yàn)所需的陡峭學(xué)習(xí)曲線持懷疑態(tài)度。即使是經(jīng)驗(yàn)豐富的超級(jí)計(jì)算機(jī)程序員也可能會(huì)發(fā)現(xiàn)當(dāng)前系統(tǒng)很麻煩,并想知道是否有更好的方法。Aiken說(shuō):“我們經(jīng)常與那些意識(shí)到Regent為他們生活更輕松的科學(xué)家交談。”
參考鏈接:
https://engineering.stanford.edu/magazine/article/new-more-user-friendly-language-programming-supercomputers