軟件的發(fā)展能否趕上IC技術(shù)進(jìn)步的腳步?
就現(xiàn)有處理器及系統(tǒng)中每秒的浮點(diǎn)運(yùn)算速度而言,摩爾定律尚未達(dá)到其極限。但是,就大部分軟件甚至是先進(jìn)技術(shù)的計(jì)算軟件的可用性能而言,或許已經(jīng)達(dá)到了極限。
看一下世界500強(qiáng)超級(jí)計(jì)算機(jī)公司的網(wǎng)址列表,說(shuō)明大部分技術(shù)計(jì)算工作量已經(jīng)轉(zhuǎn)移到商用Linux集群:廉價(jià)服務(wù)器、商業(yè)網(wǎng)點(diǎn)和商用存儲(chǔ)。與此同時(shí),像Cell寬帶引擎(CellBE)這樣新穎的多核處理器架構(gòu),也顯示出駐流在入口級(jí)服務(wù)器中的強(qiáng)大的計(jì)算能力的潛力(每秒幾百億次浮點(diǎn)運(yùn)算速度),也就是說(shuō),2到4個(gè)處理器。利用如此多便于獲得的計(jì)算能力—無(wú)論是片上系統(tǒng)或商用服務(wù)器群—全球各地不論規(guī)模大小的公司和行業(yè),或者甚至是個(gè)人,或許也能夠選擇這種能力來(lái)解決比以前更多的問(wèn)題。這時(shí)就只有一個(gè)問(wèn)題存在:軟件在哪兒才能利用所有這些處理器、內(nèi)核和線(xiàn)程?對(duì)于大部分企業(yè)或個(gè)人而言還沒(méi)有,甚至在像技術(shù)計(jì)算這種歷史上曾集中在前沿技術(shù)授權(quán)這樣的領(lǐng)域。事實(shí)上,IDC的EarlJoseph在一份關(guān)于技術(shù)計(jì)算軟件的研究中得出結(jié)論指出:“現(xiàn)在許多ISV代碼只升級(jí)到32位處理器,一些用于工業(yè)的最重要的那部分軟件卻并沒(méi)有升級(jí)到4核處理器?!?BR>
他的研究也表明,即使當(dāng)供應(yīng)商有了一個(gè)要使代碼平行運(yùn)行或升級(jí)其代碼的方案,重新設(shè)計(jì)和重新編碼的成本相對(duì)于可預(yù)見(jiàn)的市場(chǎng)利益來(lái)說(shuō),代價(jià)也是非常高。
進(jìn)入Roadrunner時(shí)代
Roadrunner將是以CellBE為基礎(chǔ)的世界第一的超級(jí)計(jì)算機(jī),當(dāng)它在2008年問(wèn)世并在洛斯阿拉莫斯國(guó)家實(shí)驗(yàn)室運(yùn)行時(shí),它將具有超過(guò)1.6千萬(wàn)億次或1.6千萬(wàn)億次計(jì)算/秒。
Roadrunner將是首個(gè)問(wèn)世的采用混合計(jì)算架構(gòu)的計(jì)算機(jī):具有多層存儲(chǔ)器層級(jí)的多個(gè)不同種類(lèi)的內(nèi)核。它完全采用商用的部件來(lái)建造,包括:以AMDOpteron為基礎(chǔ)的服務(wù)器,以CellBE為基礎(chǔ)的加速器和Infiniband互連。標(biāo)準(zhǔn)處理(如文件系統(tǒng)I/O)將由Opteron處理器管理,而更多數(shù)學(xué)和CPU密集的單元將由CellBE控制。
為使最高級(jí)的科學(xué)模擬應(yīng)用開(kāi)發(fā)人員可以利用這種復(fù)雜的架構(gòu),系統(tǒng)開(kāi)發(fā)中的大部分工作是編程方法的實(shí)現(xiàn)和相應(yīng)的應(yīng)用構(gòu)架和工具。這種應(yīng)用使能的應(yīng)用編程界面簡(jiǎn)單但卻可擴(kuò)展,其設(shè)計(jì)利用了各種類(lèi)型存儲(chǔ)和I/O子系統(tǒng)的優(yōu)點(diǎn),與此同時(shí),保持由開(kāi)發(fā)商隱藏的根本實(shí)現(xiàn)方案的不斷變化。重點(diǎn)也是使一系列內(nèi)核、不同拓樸的分散器/集中器存儲(chǔ)操作成為可能,并且隱藏像由開(kāi)發(fā)商提供的計(jì)算與通信覆蓋之類(lèi)的事情。
基本原理是一種“勞力分割”法。一組計(jì)算核心開(kāi)發(fā)商將繼續(xù)利用微處理器ISA使性能最大化;事實(shí)上,許多像這樣的內(nèi)核已經(jīng)存在(矩陣乘法就是一個(gè)很好的實(shí)例)。庫(kù)開(kāi)發(fā)工程師將采用一種為Roadrunner開(kāi)發(fā)的框架來(lái)把內(nèi)核合成到多核、存儲(chǔ)器層級(jí)庫(kù)之中。然后,應(yīng)用開(kāi)發(fā)工程師將采用標(biāo)準(zhǔn)的編譯器和連接器技術(shù)來(lái)連接到這些庫(kù)中。無(wú)須引入新的語(yǔ)言,跨越大量多核架構(gòu)的連續(xù)的API和方法將限制代碼維護(hù)的成本。這樣,庫(kù)開(kāi)發(fā)工程師不僅為加速器系統(tǒng),而且為通用目的多核方法和集群改善了使用的方便性。