Octopiler將為多核處理器編程者帶來幫助
——
IBM編譯器將使應(yīng)用程序更加適用Cell芯片的9核處理器。
使用Cell芯片的開發(fā)人員將可從IBM的新工程Octopiler獲得幫助。
編寫Cell代碼并不容易,因為其中涉及到中央處理內(nèi)核與8個特定作用的引擎。然而,IBM Research計劃在下個月發(fā)布其指南的Octopiler編程項目,正在努力對此做出改變。在這一項目中,軟件開發(fā)工具將一個獨立的、人工編寫的程序轉(zhuǎn)換為同時運行在各自內(nèi)核中的程序。
“Cell編程相對比較困難,” Illuminata的分析員Gordon Haff提到。特別是,開發(fā)工具必須將軟件分成不同的線程,這些線程將運行在不同內(nèi)核,并要求保持同步?!爱?dāng)然,越高性能,越精煉的開發(fā)模式將會使程序運行得更加迅速?!?
然而,通過自動化程序手動操作,Octopiler將幫助基于Cell服務(wù)器的應(yīng)用更為廣泛,而IBM 和 Mercury Computer Systems今年將計劃推出這種Cell服務(wù)器。
Cell Broadband Engine (這一芯片的正式名稱)由IBM,Sony以及Toshiba共同聯(lián)合開發(fā)。對于Sony的PlayStation 3的游戲平臺,已經(jīng)成熟的Toshiba高性能電視事業(yè)以及終端服務(wù)器,這些都是非一般的設(shè)計。并且,使得Cell更好地模擬電視物理的多內(nèi)核設(shè)計意味著它將可更好進行技術(shù)計算。這也就是IBM和Mercury正在開發(fā)包括3D醫(yī)學(xué)映像與雷達信號處理的基于Cell系統(tǒng)的原因。
每一種Cell芯片都擁有PowerPC 970處理內(nèi)核,即為Power處理器單元 (PPE,Power processor element),這一處理單元可運行Linux和其它應(yīng)用軟件。Cell與眾不同之處在于它同時運行8個相互協(xié)同的處理單元(SPEs)。每一種具有特定作用的引擎都非常謹慎地運行經(jīng)過精煉之后的程序,并擁有與內(nèi)存及其它Cell芯片內(nèi)核的連接。
IBM已經(jīng)意識到當(dāng)前面臨的處境,該公司宣誓Cell在2006年將更容易的編程。而在3月份,很多開發(fā)者將從IBM中獲得好處,即在紐約舉辦的代碼生成與優(yōu)化國際研討會上,IBM研究人員已經(jīng)努力研究Cell開發(fā)指南的共享細節(jié)。
“專家級的程序開發(fā)者能夠開發(fā)和手動調(diào)整程序以充分利用機器的潛在性能,”IBM會議上的陳述摘要說到,“我們相信,日趨成熟的編譯器優(yōu)化技術(shù)將彌補可用性與性能之間的鴻溝。”
Mercury也在努力分析當(dāng)前的形勢。在上周他已經(jīng)宣布目前可以開展Cell程序培訓(xùn)班。Mercury主要技術(shù)官Craig Lund在聲明說到,“與很多其它的軟件開發(fā)比較,Cell BE處理器的程序開發(fā)方法將會所不同?!?
在防止程序復(fù)雜性和最大限度地減少對硬件要求等方面,編譯器是一種相當(dāng)關(guān)鍵的單元?!疤幚砥鲝?fù)雜性的發(fā)展正在促使對復(fù)雜編譯器技術(shù)的并行需要?!?nbsp;Alexandre Eichenberger與一篇Cell編譯器文章中的其它IBM研究者表示。
Octopiler要比編譯器處理更多的任務(wù)。一方面,Octopiler必須在不同的語言環(huán)境中建立8個SPEs的指令。另一方面,它必須將軟件任務(wù)分配到9個內(nèi)核并管理這些程序之間的通訊與共享內(nèi)存。
而且,Octopiler將詳細閱讀SPE執(zhí)行的特定“單一指令,單一數(shù)據(jù)”任務(wù)。這些任務(wù)通過執(zhí)行多個數(shù)據(jù)元素中的相同操作來節(jié)省芯片的操作。
去年11月份,IBM已經(jīng)在AlphaWorks網(wǎng)站上為這一技術(shù)著迷的開發(fā)者發(fā)布了Octopiler版本。這一IBM的XL編譯器的改版軟件,可使用Red Hat的Fedora運行于64位x86計算機。
想使用XL的Cell版本的開發(fā)者必須獲得GCC的特定Cell修正版本。
評論