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