專家觀點(diǎn):并行軟件須加速追趕多核處理器發(fā)展腳步
為了持續(xù)提升性能而又不至于因過(guò)熱導(dǎo)致故障,微處理器正朝向多核心方向發(fā)展。但主流軟件至今卻尚未能找到使用這種新并行機(jī)制的途徑。
專用編程方法已開始在一些應(yīng)用中受到青睞。然而,軟件產(chǎn)業(yè)可能還需要十年或更長(zhǎng)的時(shí)間,才能以一種較有組織的形式趕上多核心硬件的發(fā)展;在此同時(shí),這條道路上還存在著一些難以跨越的障礙。
“所有攸關(guān)性能的關(guān)鍵程序都必須重新編寫,”斯坦福大學(xué)Pervasive Parallelism Lab總監(jiān)Kunle Olukotun說(shuō)。該團(tuán)隊(duì)是致力于解決這個(gè)被當(dāng)今計(jì)算機(jī)科學(xué)視為最棘手問(wèn)題的眾多研究小組之一。
“最后不是被迫重新編寫這些程序代碼,就是只好將它淘汰,”O(jiān)lukotun說(shuō)。他在最近舉行的‘多核心虛擬會(huì)議’(Multicore Virtual Conference)上針對(duì)該主題發(fā)表專題演講。
“這是電信公司目前所面臨的最大問(wèn)題之一,”近期將出版一本有關(guān)電信設(shè)計(jì)專書的系統(tǒng)架構(gòu)師Alex Bachmutsky表示,“它們的應(yīng)用程序并不是針對(duì)多核心和執(zhí)行緒編寫的,而且這些程序規(guī)模龐大,包含了數(shù)百萬(wàn)或數(shù)千萬(wàn)行的程序代碼?!?
無(wú)所不在的C語(yǔ)言“是最糟糕的工具,因?yàn)樗诒举|(zhì)上是連續(xù)性的語(yǔ)言,這使得算法中原有的并行機(jī)制變得模糊不清,”DSP咨詢公司Berkeley Design Technology總裁Jeff Bier說(shuō)。
根據(jù)TechInsights公司在今年初所進(jìn)行的一項(xiàng)研究,在接受訪談的嵌入式系統(tǒng)開發(fā)人員中,約有62%表示最近的計(jì)畫是以C語(yǔ)言寫的;還有24%表示使用了C++。
研究者們已經(jīng)開發(fā)出許多并行編程語(yǔ)言,但沒有哪一種是萬(wàn)能的,而且要成為被市場(chǎng)接納的商品都還有很長(zhǎng)的路要走。Olukotun預(yù)測(cè)最終將出現(xiàn)一系列自動(dòng)尋找并行機(jī)制的高階專用工具。
多核心處理器也正致力于投入主流設(shè)計(jì)領(lǐng)域,系統(tǒng)、芯片與工具開發(fā)商們也正提出一系列確實(shí)可用的開發(fā)工具。
其中一部份是現(xiàn)有的多核心處理工具,例如目前用于芯片級(jí)編程的OpenMP。英特爾(Intel)及其它公司們已經(jīng)發(fā)布了用來(lái)管理軟件執(zhí)行緒的工具庫(kù)。Cilk Arts公司等新興公司也在傳統(tǒng)的程序代碼中植入關(guān)鍵詞來(lái)協(xié)助尋找并行機(jī)制。
“各種方法都互有利弊,”飛思卡爾半導(dǎo)體(Freescale)軟件研發(fā)總監(jiān)Rob Oshana指出。
開發(fā)人員將需要新的建模工具來(lái)解決如何在早期設(shè)計(jì)階段劃分應(yīng)用的問(wèn)題,Oshana表示。另外,并行除錯(cuò)器已初露曙光,在一個(gè)復(fù)雜的系統(tǒng)單芯片中,只要能讓通過(guò)多個(gè)核心、加速器和互連的資料達(dá)到可視化,將可望協(xié)助設(shè)計(jì)人最佳化其程序代碼。
短時(shí)間來(lái)看,許多芯片制造商正試圖將最多的并行程序代碼加載于軟件堆棧中。但在某些情況下,他們有時(shí)候會(huì)因?yàn)檫^(guò)度開發(fā),反而無(wú)法提供一些較通用的并行應(yīng)用程序,飛思卡爾公司資深系統(tǒng)架構(gòu)師Steve Cole表示。
“它應(yīng)該能夠包含我們的應(yīng)用程序與第三方應(yīng)用程序,以及操作系統(tǒng)和工具,”Cole說(shuō),“這才是業(yè)界該走的方向?!?
為了開發(fā)這樣的產(chǎn)品,飛思卡爾已經(jīng)將其多核心軟件團(tuán)隊(duì)人數(shù)增加了一倍之多,Cole說(shuō)。
同 時(shí),OEM們也正在尋找自己的方法來(lái)解決這些問(wèn)題。電信架構(gòu)師Bachmutsky指出,控制臺(tái)設(shè)計(jì)正采用系統(tǒng)級(jí)對(duì)稱多處理(SMP)工具來(lái)管理基于 SMP操作系統(tǒng)的多核心芯片。而其設(shè)計(jì)結(jié)果“看起來(lái)就像是具有多線卡與負(fù)載均衡器,可在各刀鋒背板間分配流量的系統(tǒng),”他說(shuō)。
由于資料面設(shè)計(jì)通常使用匯編語(yǔ)言編碼,因此,要把性能提高10倍以上的難度更大。這意味著它無(wú)法負(fù)擔(dān)SMP結(jié)構(gòu)的共享內(nèi)存開銷。
開發(fā)人員們必須仔細(xì)地劃分任務(wù)并分配給各個(gè)核心,觀察數(shù)據(jù)間的依賴性。他們必須制訂在不同任務(wù)間傳遞的詳細(xì)訊息方案,并找出在數(shù)據(jù)和控制臺(tái)軟件堆棧間的通訊方式,Bachmutsky說(shuō)。
采用匯編程序碼,“你就與硅晶制造商及工具庫(kù)密切相連,你無(wú)法輕易地把軟件移植到另一個(gè)處理器,”他說(shuō)。“但無(wú)論你選擇哪一種方案,都意味著將與該方案密切相關(guān)?!?
圖1:C語(yǔ)言主導(dǎo)當(dāng)今與明日的循序程序設(shè)計(jì)。
先進(jìn)技術(shù)進(jìn)展
一些特殊應(yīng)用在并行處理的道路上取得了更多進(jìn)展,但所使用的仍是專有的芯片與工具。例如,針對(duì)石油與天然氣勘探等一連串應(yīng)用中,Nvidia采用其具有Cuda環(huán)境的繪圖芯片展開了大量并行編程工作。
一些設(shè)計(jì)公司表示已成功實(shí)現(xiàn)了并行處理的先進(jìn)技術(shù)。例如,英國(guó)Cambridge Consultants公司使用了PicoChip公司在單芯片內(nèi)封裝250個(gè)核心的組件,完成了3G和WiMax基地臺(tái)的合約設(shè)計(jì)工作。
對(duì) 于這些應(yīng)用而言,Cambridge Consultants公司發(fā)現(xiàn)PicoChip的組件實(shí)際上比4核心的數(shù)字訊號(hào)處理器(DSP)更好用?!斑@一開始似乎令人百思不解,但與傳統(tǒng)的單核心 或核心數(shù)較少的DSP相較,使用PicoChip的組件所開發(fā)出的程序更簡(jiǎn)短、可靠且產(chǎn)出品質(zhì)更高,”在Cambridge Consultants主導(dǎo)DSP研發(fā)團(tuán)隊(duì)的Monty Barlow解釋。
“內(nèi)含眾多核心的多核心架構(gòu)可以把功能劃分到各 顆核心中,在系統(tǒng)已知各部份不會(huì)產(chǎn)生負(fù)面影響前提下,可分別開發(fā)并測(cè)試這些功能,而后再轉(zhuǎn)入系統(tǒng)的其它部份,”Barlow指出,“另一種替代方案是依執(zhí) 行緒編寫程序,并取決于操作系統(tǒng)的運(yùn)作情形來(lái)分配時(shí)間,但這些任務(wù)是以一種無(wú)關(guān)聯(lián)的速率執(zhí)行,某一天,許多任務(wù)可能會(huì)團(tuán)結(jié)起來(lái)與你作對(duì),而某些任務(wù)還可能 會(huì)延遲而導(dǎo)致失敗?!?
采用新方法就必須為PicoChip的組件重新編寫軟件。但Barlow說(shuō),他認(rèn)為值得在架構(gòu)方面進(jìn)行更多工作,以便使后續(xù)開發(fā)過(guò)程更順利。
分析師Jeff Bier指出,PicoChip和Tilera等開發(fā)大規(guī)模多核心系統(tǒng)的新興公司們使用了完全不同的軟件工具,這使得從他們的架構(gòu)中移植軟件的難度極大,風(fēng)險(xiǎn)更高?!斑@種創(chuàng)新很有意義但難度極大,因?yàn)檫@些新興公司必須在芯片和并行軟件方面取得成功,”他說(shuō)。
“我預(yù)計(jì)這些特殊的架構(gòu)存在時(shí)間不會(huì)太長(zhǎng),”史丹佛大學(xué)的Olukotun說(shuō)?!半S著越來(lái)越多通用環(huán)境的性能更強(qiáng)且功效更高,這些特殊架構(gòu)很快會(huì)被取代。”
Olukotun相信,實(shí)驗(yàn)室的研究成果最終將為軟件堆棧帶來(lái)創(chuàng)新。他們將實(shí)現(xiàn)并行程序代碼自動(dòng)化產(chǎn)生,開發(fā)人員將無(wú)需再與執(zhí)行緒、訊息傳送、內(nèi)存同步存取和其它結(jié)構(gòu)打交道。
該 實(shí)驗(yàn)室的開發(fā)人員們將以高階特定領(lǐng)域語(yǔ)言(DSL)進(jìn)行編程,使其可為一系列具有先進(jìn)排程器的執(zhí)行時(shí)間(runtime)環(huán)境自動(dòng)產(chǎn)生并行任務(wù)。這些執(zhí)行 時(shí)間系統(tǒng)將“結(jié)合不同組件以開發(fā)出不同的執(zhí)行模式,以便產(chǎn)生串流、原子、容錯(cuò)、安全或執(zhí)行監(jiān)控作業(yè),”O(jiān)lukotun說(shuō)。
飛思卡爾的Oshana也認(rèn)同這一觀點(diǎn)?!霸S多應(yīng)用均樂于接受更多抽象觀念,以實(shí)現(xiàn)更好的整合,”他說(shuō)。例如,可執(zhí)行多操作系統(tǒng)的hypervisor虛擬管理程序?qū)⒆兊迷絹?lái)越普及。
“這些新的想法能否被接納?它將取決于開發(fā)人員感受在編程多核心處理器時(shí)的痛苦指數(shù),”O(jiān)lukotun說(shuō)。
但在很長(zhǎng)一段時(shí)間內(nèi),這種痛苦可能還不至于普遍存在。在TechInsights公司的調(diào)查中,只有大約7%的嵌入式開發(fā)人員表示正在使用多核心處理器,而這個(gè)數(shù)字已高于兩年前的4%了。
Linley Group公司首席分析師Linley Gwennap今年三月時(shí)曾表示,由于并行編程的復(fù)雜性,到2012年,具有4顆或更多核心的處理器在通訊系統(tǒng)市場(chǎng)上的比例很可能只略多于10%。 Gwennap并預(yù)測(cè),2012年以前,雙核心設(shè)計(jì)的市占率將達(dá)到20%。
圖2:柏克萊大學(xué)的研究人員指出,未來(lái)的并行應(yīng)用程序發(fā)展模式將從軟件堆棧的每一層開始進(jìn)行改變。
評(píng)論
查看更多