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