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