3月23日外電頭條:多核給軟件開(kāi)發(fā)帶來(lái)挑戰(zhàn)
原創(chuàng)【51CTO.com快譯】為了提升服務(wù)器和PC芯片的性能,為處理器增加更多的核心已成為芯片供應(yīng)商們的最主要手段。但是,如果無(wú)法應(yīng)對(duì)來(lái)自硬件和編程方面的新挑戰(zhàn),多核的優(yōu)勢(shì)不僅會(huì)大大降低,而且及有可能成為芯片性能的阻礙。在剛剛舉行的多核芯片博覽會(huì)(Multicore Expo)上,與會(huì)者紛紛對(duì)此表示了擔(dān)心。
目前大多數(shù)為單核芯片編寫(xiě)的軟件將需要重新編寫(xiě)或者更新,以適合Intel、Sun以及其它芯片供應(yīng)商們提供的新產(chǎn)品,行業(yè)技術(shù)分析公司Linley Group總裁兼***分析師Linley Gwennap這樣說(shuō)。現(xiàn)在的應(yīng)用程序在多至4個(gè)處理器核心時(shí)通常會(huì)運(yùn)行得更快,但處理核心數(shù)量一旦超過(guò)這個(gè)數(shù)字,應(yīng)用程序的效果就會(huì)降低甚至惡化。
最近來(lái)自Gartner的一份報(bào)告同樣顯示了這個(gè)問(wèn)題。為此,芯片和系統(tǒng)制造商們已開(kāi)始著力培訓(xùn)軟件開(kāi)發(fā)者,并為他們提供更好的用于多核編程的工具。一年前,Intel和微軟表示,他們將在美國(guó)投資2000萬(wàn)美元開(kāi)設(shè)兩個(gè)研究中心專門(mén)解決這一問(wèn)題。目前,缺乏多核編程工具也許是今天的編程行業(yè)所面臨的***挑戰(zhàn),Gwennap說(shuō)。
把應(yīng)用程序中不同的計(jì)算任務(wù),比如數(shù)學(xué)運(yùn)算和渲染圖片加以區(qū)分對(duì)待,讓它們分別在多個(gè)內(nèi)核中同時(shí)執(zhí)行的編寫(xiě)方式早已被人們提出。但是,這一通常被稱為并行計(jì)算的模式一直受到專業(yè)化與高性能計(jì)算環(huán)境的限制。
近年來(lái),Intel和AMD已經(jīng)改變了提高時(shí)鐘頻率的傳統(tǒng)做法,將加入核心數(shù)量作為更直接有效的方式來(lái)提高芯片的性能。Intel即將為我們帶來(lái)多達(dá)8個(gè)處理內(nèi)核的Nehalem-EX芯片(51CTO.com注,Nehalem是英特爾的新芯片架構(gòu)。代號(hào)為Nehalem的處理器包括專為高性能服務(wù)器市場(chǎng)設(shè)計(jì)的、研發(fā)代號(hào)為“Nehalem-EP” 的處理器,面向可擴(kuò)展服務(wù)器市場(chǎng)的代號(hào)為“Nehalem-EX”。英特爾不久前稱,高端的Nehalem EX處理器可能在今年年底供貨)。而51CTO.com的資料也顯示,AMD代號(hào)為“伊斯坦布爾”(Istanbul)的六核45納米皓龍?zhí)幚砥饕压_(kāi)演示,預(yù)計(jì)將于今年下半年正式推出;此外AMD也正在設(shè)計(jì)12內(nèi)核的服務(wù)器芯片。所有這些新技術(shù)都提高了多線程能力,使每個(gè)內(nèi)核都可以在同一時(shí)間執(zhí)行多行代碼。
這意味著主流的應(yīng)用程序必須以不同的方式來(lái)編寫(xiě),以利用更多的內(nèi)核資源。這做起來(lái)不僅很難,而且很有可能帶來(lái)的新類型的軟件bug。最常見(jiàn)之一就是“競(jìng)爭(zhēng)條件(Race Conditions)”——計(jì)算的結(jié)果輸出要求各種任務(wù)按照一定的順序完成,如果不是這樣,那么可能就會(huì)導(dǎo)致錯(cuò)誤的發(fā)生。
目前已經(jīng)有些廠商提供了并行編程工具,如Intel的Parallel Studio for C and C++,還有這一領(lǐng)域里的其他廠商如Codeplay、Polycore Software和Clik Arts的相關(guān)工具。此外基于C語(yǔ)言的新的并行編程模型標(biāo)準(zhǔn)OpenCL,已由Khronos Group發(fā)布,并迅速得到了Intel、AMD、Nvidia和其他各廠商的共同支持。
Santa Clara舉行的多核芯片博覽會(huì)展示了更多的工具正在開(kāi)發(fā)中。嵌入微處理基準(zhǔn)聯(lián)盟(51CTO.com注,即EEMBC,為嵌入式芯片制訂基準(zhǔn)的非盈利性組織)的軟件工程總監(jiān)Shay Gal-on說(shuō),軟件編譯器必須能夠識(shí)別并行的代碼,然后在沒(méi)有人工干預(yù)下完成并行工作。
盡管缺少相關(guān)的工具,一些軟件供應(yīng)商已經(jīng)找到了相對(duì)容易的建立并行代碼的方法,用來(lái)處理簡(jiǎn)單的計(jì)算工作比如圖像和視頻處理,Gwennapp表示,比如Adobe已經(jīng)通過(guò)重寫(xiě)Photoshop,在某些特定的x86內(nèi)核上運(yùn)行放大和圖像濾鏡等任務(wù)時(shí),性能可以提高到3到4倍。
“在處理視頻或圖片時(shí),你可以將不同的像素系統(tǒng)分配給不同的CPU。這樣你就可以得到并行處理方式,”Gwennapp說(shuō)。但是,對(duì)于更復(fù)雜的任務(wù),則很難找到一個(gè)單一的方法來(lái)確定并行計(jì)算的順序,然后將它們分配給不同的CPU。
編程方面可能面臨著多核帶來(lái)的***挑戰(zhàn),而在硬件方面也需要作出變化,來(lái)克服如內(nèi)存延遲和總線速度緩慢等問(wèn)題。“由于你的芯片上添加了越來(lái)越多的內(nèi)核,你就需要更多的內(nèi)存帶寬來(lái)適應(yīng)它們,”Gwennapp說(shuō)。
共享一個(gè)內(nèi)存高速緩存或數(shù)據(jù)總線的多個(gè)內(nèi)核會(huì)造成瓶頸效應(yīng),這意味著額外的內(nèi)核將在很大程度上遭到浪費(fèi)。“這種情況下假設(shè)你有6或8個(gè)CPU,那么它們所有的時(shí)間將花費(fèi)在互相交談上,既不向前走,也不做任何工作,”他說(shuō)。
責(zé)任最終還是要背負(fù)在開(kāi)發(fā)者的肩上。他們需要編寫(xiě)更好的并行程序來(lái)搭建硬件和軟件之間的橋梁。很多軟件開(kāi)發(fā)者并沒(méi)有跟上硬件設(shè)計(jì)的***進(jìn)展,EEMBC的Gal-on這樣說(shuō),他們應(yīng)該打開(kāi)數(shù)據(jù)表來(lái)研究***的芯片架構(gòu),考慮一下怎樣能讓他們的代碼表現(xiàn)得更好。
【編輯推薦】
- 多核的涌現(xiàn)亟需新軟件開(kāi)發(fā)技巧
- 多核處理器趨勢(shì)對(duì)軟件架構(gòu)的影響
- 視頻:英特爾多核處理器平臺(tái)的應(yīng)用開(kāi)發(fā)概覽
【51CTO.com譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】
原文:Multicore chips pose next big challenge for industry 作者:Agam Shah