《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 專家觀點:并行軟件須加速追趕多核處理器發(fā)展腳步

專家觀點:并行軟件須加速追趕多核處理器發(fā)展腳步

2009-08-10
作者:麥利

??? 為了持續(xù)提升性能而又不至于因過熱導(dǎo)致故障,微處理器正朝向多核心方向發(fā)展。但主流軟件至今卻尚未能找到使用這種新并行機制的途徑。


??? 專用編程方法已開始在一些應(yīng)用中受到青睞。然而,軟件產(chǎn)業(yè)可能還需要十年或更長的時間,才能以一種較有組織的形式趕上多核心硬件的發(fā)展;在此同時,這條道路上還存在著一些難以跨越的障礙。


?? “所有攸關(guān)性能的關(guān)鍵程序都必須重新編寫,”斯坦福大學(xué)Pervasive Parallelism Lab總監(jiān)Kunle Olukotun說。該團隊是致力于解決這個被當(dāng)今計算機科學(xué)視為最棘手問題的眾多研究小組之一。


?? “最后不是被迫重新編寫這些程序代碼,就是只好將它淘汰,”O(jiān)lukotun說。他在最近舉行的‘多核心虛擬會議’(Multicore Virtual Conference)上針對該主題發(fā)表專題演講。


?? “這是電信公司目前所面臨的最大問題之一,”近期將出版一本有關(guān)電信設(shè)計專書的系統(tǒng)架構(gòu)師Alex Bachmutsky表示,“它們的應(yīng)用程序并不是針對多核心和執(zhí)行緒編寫的,而且這些程序規(guī)模龐大,包含了數(shù)百萬或數(shù)千萬行的程序代碼?!?/P>


?? 無所不在的C語言“是最糟糕的工具,因為它在本質(zhì)上是連續(xù)性的語言,這使得算法中原有的并行機制變得模糊不清,”DSP咨詢公司Berkeley Design Technology總裁Jeff Bier說。


??? 根據(jù)TechInsights公司在今年初所進行的一項研究,在接受訪談的嵌入式系統(tǒng)開發(fā)人員中,約有62%表示最近的計畫是以C語言寫的;還有24%表示使用了C++。


??? 研究者們已經(jīng)開發(fā)出許多并行編程語言,但沒有哪一種是萬能的,而且要成為被市場接納的商品都還有很長的路要走。Olukotun預(yù)測最終將出現(xiàn)一系列自動尋找并行機制的高階專用工具。


??? 多核心處理器也正致力于投入主流設(shè)計領(lǐng)域,系統(tǒng)、芯片與工具開發(fā)商們也正提出一系列確實可用的開發(fā)工具。


??? 其中一部份是現(xiàn)有的多核心處理工具,例如目前用于芯片級編程的OpenMP。英特爾(Intel)及其它公司們已經(jīng)發(fā)布了用來管理軟件執(zhí)行緒的工具庫。Cilk Arts公司等新興公司也在傳統(tǒng)的程序代碼中植入關(guān)鍵詞來協(xié)助尋找并行機制。


???“各種方法都互有利弊,”飛思卡爾半導(dǎo)體(Freescale)軟件研發(fā)總監(jiān)Rob Oshana指出。


??? 開發(fā)人員將需要新的建模工具來解決如何在早期設(shè)計階段劃分應(yīng)用的問題,Oshana表示。另外,并行除錯器已初露曙光,在一個復(fù)雜的系統(tǒng)單芯片中,只要能讓通過多個核心、加速器和互連的資料達到可視化,將可望協(xié)助設(shè)計人最佳化其程序代碼。


???? 短時間來看,許多芯片制造商正試圖將最多的并行程序代碼加載于軟件堆棧中。但在某些情況下,他們有時候會因為過度開發(fā),反而無法提供一些較通用的并行應(yīng)用程序,飛思卡爾公司資深系統(tǒng)架構(gòu)師Steve Cole表示。


?? “它應(yīng)該能夠包含我們的應(yīng)用程序與第三方應(yīng)用程序,以及操作系統(tǒng)和工具,”Cole說,“這才是業(yè)界該走的方向?!?/P>


??? 為了開發(fā)這樣的產(chǎn)品,飛思卡爾已經(jīng)將其多核心軟件團隊人數(shù)增加了一倍之多,Cole說。


??? 同時,OEM們也正在尋找自己的方法來解決這些問題。電信架構(gòu)師Bachmutsky指出,控制臺設(shè)計正采用系統(tǒng)級對稱多處理(SMP)工具來管理基于 SMP操作系統(tǒng)的多核心芯片。而其設(shè)計結(jié)果“看起來就像是具有多線卡與負載均衡器,可在各刀鋒背板間分配流量的系統(tǒng),”他說。


??? 由于資料面設(shè)計通常使用匯編語言編碼,因此,要把性能提高10倍以上的難度更大。這意味著它無法負擔(dān)SMP結(jié)構(gòu)的共享內(nèi)存開銷。


??? 開發(fā)人員們必須仔細地劃分任務(wù)并分配給各個核心,觀察數(shù)據(jù)間的依賴性。他們必須制訂在不同任務(wù)間傳遞的詳細訊息方案,并找出在數(shù)據(jù)和控制臺軟件堆棧間的通訊方式,Bachmutsky說。


??? 采用匯編程序碼,“你就與硅晶制造商及工具庫密切相連,你無法輕易地把軟件移植到另一個處理器,”他說?!暗珶o論你選擇哪一種方案,都意味著將與該方案密切相關(guān)?!?/P>

?

?


圖1:C語言主導(dǎo)當(dāng)今與明日的循序程序設(shè)計

?

先進技術(shù)進展

?? 一些特殊應(yīng)用在并行處理的道路上取得了更多進展,但所使用的仍是專有的芯片與工具。例如,針對石油與天然氣勘探等一連串應(yīng)用中,Nvidia采用其具有Cuda環(huán)境的繪圖芯片展開了大量并行編程工作。

?

?? 一些設(shè)計公司表示已成功實現(xiàn)了并行處理的先進技術(shù)。例如,英國Cambridge Consultants公司使用了PicoChip公司在單芯片內(nèi)封裝250個核心的組件,完成了3G和WiMax基地臺的合約設(shè)計工作。

?

?? 對于這些應(yīng)用而言,Cambridge Consultants公司發(fā)現(xiàn)PicoChip的組件實際上比4核心的數(shù)字訊號處理器(DSP)更好用。“這一開始似乎令人百思不解,但與傳統(tǒng)的單核心 或核心數(shù)較少的DSP相較,使用PicoChip的組件所開發(fā)出的程序更簡短、可靠且產(chǎn)出品質(zhì)更高,”在Cambridge Consultants主導(dǎo)DSP研發(fā)團隊的Monty Barlow解釋。

?

? “內(nèi)含眾多核心的多核心架構(gòu)可以把功能劃分到各 顆核心中,在系統(tǒng)已知各部份不會產(chǎn)生負面影響前提下,可分別開發(fā)并測試這些功能,而后再轉(zhuǎn)入系統(tǒng)的其它部份,”Barlow指出,“另一種替代方案是依執(zhí) 行緒編寫程序,并取決于操作系統(tǒng)的運作情形來分配時間,但這些任務(wù)是以一種無關(guān)聯(lián)的速率執(zhí)行,某一天,許多任務(wù)可能會團結(jié)起來與你作對,而某些任務(wù)還可能 會延遲而導(dǎo)致失敗?!?

?

?? 采用新方法就必須為PicoChip的組件重新編寫軟件。但Barlow說,他認為值得在架構(gòu)方面進行更多工作,以便使后續(xù)開發(fā)過程更順利。

?

?? 分析師Jeff Bier指出,PicoChip和Tilera等開發(fā)大規(guī)模多核心系統(tǒng)的新興公司們使用了完全不同的軟件工具,這使得從他們的架構(gòu)中移植軟件的難度極大,風(fēng)險更高?!斑@種創(chuàng)新很有意義但難度極大,因為這些新興公司必須在芯片和并行軟件方面取得成功,”他說。

?

? “我預(yù)計這些特殊的架構(gòu)存在時間不會太長,”史丹佛大學(xué)的Olukotun說。“隨著越來越多通用環(huán)境的性能更強且功效更高,這些特殊架構(gòu)很快會被取代?!?

?

?? Olukotun相信,實驗室的研究成果最終將為軟件堆棧帶來創(chuàng)新。他們將實現(xiàn)并行程序代碼自動化產(chǎn)生,開發(fā)人員將無需再與執(zhí)行緒、訊息傳送、內(nèi)存同步存取和其它結(jié)構(gòu)打交道。

?

?? 該實驗室的開發(fā)人員們將以高階特定領(lǐng)域語言(DSL)進行編程,使其可為一系列具有先進排程器的執(zhí)行時間(runtime)環(huán)境自動產(chǎn)生并行任務(wù)。這些執(zhí)行 時間系統(tǒng)將“結(jié)合不同組件以開發(fā)出不同的執(zhí)行模式,以便產(chǎn)生串流、原子、容錯、安全或執(zhí)行監(jiān)控作業(yè),”O(jiān)lukotun說。

?

?? 飛思卡爾的Oshana也認同這一觀點?!霸S多應(yīng)用均樂于接受更多抽象觀念,以實現(xiàn)更好的整合,”他說。例如,可執(zhí)行多操作系統(tǒng)的hypervisor虛擬管理程序?qū)⒆兊迷絹碓狡占啊?

?

?? “這些新的想法能否被接納?它將取決于開發(fā)人員感受在編程多核心處理器時的痛苦指數(shù),”O(jiān)lukotun說。

?

?? 但在很長一段時間內(nèi),這種痛苦可能還不至于普遍存在。在TechInsights公司的調(diào)查中,只有大約7%的嵌入式開發(fā)人員表示正在使用多核心處理器,而這個數(shù)字已高于兩年前的4%了。

?

??? Linley Group公司首席分析師Linley Gwennap今年三月時曾表示,由于并行編程的復(fù)雜性,到2012年,具有4顆或更多核心的處理器在通訊系統(tǒng)市場上的比例很可能只略多于10%。 Gwennap并預(yù)測,2012年以前,雙核心設(shè)計的市占率將達到20%。

?


圖2:柏克萊大學(xué)的研究人員指出,未來的并行應(yīng)用程序發(fā)展模式將從軟件堆棧的每一層開始進行改變

?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。