多核芯片未充分利用 并行編程無(wú)進(jìn)展
北京時(shí)間8月31日《福布斯》文章指出,為什么應(yīng)用軟件總是無(wú)法充分利用芯片的強(qiáng)大功能呢?
本文引用地址:http://butianyuan.cn/article/201609/304172.htm如何充分有效地利用處理器中的那些核心是處理器行業(yè)在過(guò)去的幾年里一直面臨著的一個(gè)最大的問(wèn)題。
這并不是一個(gè)沒(méi)什么人關(guān)注的問(wèn)題。這個(gè)問(wèn)題還牽涉到許多其他的小問(wèn)題,因?yàn)槿绻麤](méi)有充足的理由,企業(yè)首席信息官們是絕對(duì)不會(huì)花大價(jià)錢(qián)去購(gòu)買(mǎi)那些配備了多核心芯片的新服務(wù)器硬件的。
最根本的問(wèn)題在于,芯片廠商們不能像以前那樣去開(kāi)發(fā)處理器了。如果它們繼續(xù)提高單核心芯片的時(shí)鐘速度,它們肯定會(huì)將芯片熔化掉。因此它們將許多運(yùn)行速度或許并不快的核心安裝在一個(gè)芯片上,讓多核心芯片的總體性能實(shí)現(xiàn)增長(zhǎng)。然而不幸的是,大部分軟件都不支持多核心處理器,因此很大一部分增長(zhǎng)的性能都無(wú)法得到充分的利用。如果應(yīng)用軟件的某些部分可以被分到不同的線程上,它最多也只能利用芯片中的兩個(gè)核心。
硬件開(kāi)發(fā)商和英特爾、AMD和IBM等芯片廠商的高管們認(rèn)為,這是軟件方面的問(wèn)題,如果有合適的編程工具,應(yīng)用軟件是可以充分利用多核心的性能優(yōu)勢(shì)的。而軟件開(kāi)發(fā)商們則堅(jiān)稱,目前世界上還沒(méi)有能夠一心二用的開(kāi)發(fā)員,而且某些應(yīng)用軟件是絕對(duì)不能在多核心芯片上運(yùn)行的。它們?cè)?jīng)試著用并行處理技術(shù)來(lái)解決這個(gè)問(wèn)題,但是經(jīng)過(guò)幾十年的研究,業(yè)內(nèi)人士普遍認(rèn)為之前的努力已經(jīng)失敗了。
在過(guò)去的幾年里,并行編程也沒(méi)有取得任何顯著進(jìn)展。為了實(shí)現(xiàn)并行編程,英特爾甚至開(kāi)發(fā)出自己的編程語(yǔ)言;IBM也從多個(gè)層面對(duì)這個(gè)問(wèn)題進(jìn)行了深入的研究。微軟在這方面投入了無(wú)數(shù)的資源,AMD也從多核芯片的各個(gè)方面進(jìn)行了深入研究。
最終,它們意識(shí)到目前還無(wú)法解決那個(gè)問(wèn)題,也無(wú)法打破摩爾定律的平衡。這是一個(gè)默認(rèn)的方向,而不是一種實(shí)際的狀況,因?yàn)槟悴粫?huì)在任何營(yíng)銷文件或公司網(wǎng)站上看到它。但是,當(dāng)你向軟件廠商、硬件廠商以至于象IBM那樣的系統(tǒng)廠商提出相同的問(wèn)題時(shí),所有廠商的軟件和硬件工程師們將不約而同地給出一個(gè)相同的答案。
實(shí)際上,即使可以讓軟件在多個(gè)處理器上運(yùn)行,也沒(méi)人能夠想到應(yīng)該如何去實(shí)現(xiàn)它。但是,通過(guò)將內(nèi)存或外圍通信等芯片之外的任務(wù)轉(zhuǎn)移到芯片內(nèi)部去完成,以及在芯片內(nèi)部增加更大的管道,那么雖然軟件還是只能利用單個(gè)核心的性能,但是卻可以獲得足夠的性能來(lái)滿足企業(yè)客戶的需求。
在提高性能方面還有其他一些變化。英特爾正在研究通過(guò)調(diào)整多個(gè)核心的功率的方式來(lái)提高應(yīng)用性能。其他廠商也在研究專門(mén)為具體應(yīng)用如安全加密或WiFi增加芯片核心數(shù)量,或者用兩個(gè)芯片來(lái)實(shí)現(xiàn)某個(gè)應(yīng)用軟件的特殊功能。所有廠商都在研究增加單個(gè)芯片的信息通過(guò)量的方法,因?yàn)槎鄠€(gè)核心也意味著所有應(yīng)用軟件必須共享芯片中的至少一部分的相同資源。
所有的這些都是必要的,因?yàn)樗鼈兇龠M(jìn)了虛擬化技術(shù)的發(fā)展。虛擬化技術(shù)已經(jīng)成為所有硬件廠商共同關(guān)注的一顆耀眼的新星。單核心服務(wù)器一般只能運(yùn)行一個(gè)應(yīng)用軟件和一個(gè)操作系統(tǒng),因此它們總是處于利用率較低的狀態(tài)中。隨著企業(yè)規(guī)模的增長(zhǎng),這種組織被看作是授權(quán)某業(yè)務(wù)部或部門(mén)的方法。但是企業(yè)通常會(huì)有成千上萬(wàn)臺(tái)這樣的服務(wù)器,即使那些服務(wù)器處于空閑狀態(tài),它們也在消耗電能,而且企業(yè)還要為那些服務(wù)器支付必要的維護(hù)費(fèi)用、軟件許可證費(fèi)用,此外還要將它們與企業(yè)的其他部分整合在一起,但企業(yè)們意識(shí)到上述問(wèn)題時(shí),它們同時(shí)也會(huì)意識(shí)到它們必須將應(yīng)用軟件也整合起來(lái),因?yàn)榉?wù)器數(shù)量過(guò)多的話,相關(guān)的成本實(shí)在是太高了。
但是在技術(shù)領(lǐng)域,一個(gè)問(wèn)題通常會(huì)引發(fā)另一個(gè)問(wèn)題。將所有的應(yīng)用都集中到一臺(tái)服務(wù)器上并不是一件容易的事。這就是為什么最近的技術(shù)研究工作主要集中在開(kāi)放處理器內(nèi)部的通道以提高芯片內(nèi)外的信息通過(guò)量、規(guī)劃以及給運(yùn)行在不同核心上的應(yīng)用軟件劃分優(yōu)先等級(jí)從而保證它們可以在不降低性能的前提下共享處理器的內(nèi)存和邏輯的原因所在。
當(dāng)然,這些都不會(huì)排除在并行編程上取得突破性進(jìn)展的可能性,不管怎樣,芯片開(kāi)發(fā)商和軟件廠商都不會(huì)感到高興,因?yàn)榭偸菚?huì)有一些問(wèn)題還有待解決。雖然目前的硬件還不能支持應(yīng)用軟件的并行運(yùn)行,但是至少現(xiàn)在還有許多理由去支持用戶購(gòu)買(mǎi)新硬件。
評(píng)論