不可否認(rèn),多核(四核及以上)是未來發(fā)展方向。然而當(dāng)前,廠商們熱衷于桌面多核的態(tài)度卻總讓人們心生疑惑:真的有必要么?
Intel Core2 Quad系列產(chǎn)品被很多人認(rèn)為是目前最強(qiáng)大的四核桌面處理器。
在英特爾、AMD等廠商的推波助瀾下,我們成功地跨入了多核時代。
一些激進(jìn)的桌面用戶,迫不及待地升級到最新的多核系統(tǒng)。然而,他們卻很快發(fā)現(xiàn),多核系統(tǒng)對于桌面應(yīng)用的改善非常有限。付出昂貴的代價,換來不盡如人意的結(jié)果,用戶不禁要問:對于桌面系統(tǒng)而言,多核真的有必要嗎?
操作系統(tǒng)是關(guān)鍵
其實,問題首先出在操作系統(tǒng)上。如果操作系統(tǒng)對于多核的支持不夠好,那么即便有更多的處理器核心也無濟(jì)于事。
以微軟最新的操作系統(tǒng)Windows Vista為例,從目前來看,Vista并沒有對雙核以及多核處理器進(jìn)行專門的優(yōu)化。這也不能怪微軟,畢竟在多年前開始Vista的開發(fā)時,英特爾和AMD的多核處理器還沒影呢!不過,沒有進(jìn)行專門的優(yōu)化,并不代表Vista就不支持多核,其實甚至連Windows系列的早期產(chǎn)品Windows XP、Windows 98等操作系統(tǒng)也支持多核,只有目前僅存于人們記憶中的DOS不支持多核。換而言之,只要操作系統(tǒng)支持多任務(wù)操作,那么多核就能發(fā)揮作用,盡管這種作用可能會因為沒有經(jīng)過優(yōu)化而在當(dāng)前顯得微不足道。
很多人會感到奇怪,他們認(rèn)為,從結(jié)構(gòu)上來說,多核的芯片和以前的SMP(Symmetrical Multi-Processing,對稱多處理器,通常用于工作站和服務(wù)器)差不多,只不過多核是將多個CPU集成到一塊芯片上而已。那么,既然以前的操作系統(tǒng)都能夠?qū)MP做出完美的支持,為什么還要有經(jīng)過優(yōu)化的多核操作系統(tǒng)呢?
實際上,多核與SMP還是有很大不同的。雖然二者都具備易于使用、內(nèi)置緩存、共享內(nèi)存的特性,但是在SMP下,開發(fā)人員面對的是單一的抽象化硬件平臺,由SMP操作系統(tǒng)來決定具體由哪一個內(nèi)核來運行相應(yīng)的任務(wù)。而多核環(huán)境顯著增加了系統(tǒng)的復(fù)雜度,盡管很多人都認(rèn)為多核就是指在同一個芯片中放入多個內(nèi)核,但是在實際開發(fā)工作中所遇到的多處理問題并不僅僅局限于在單一芯片中的多個內(nèi)核。另外,在操作系統(tǒng)層面,當(dāng)一個任務(wù)到來時,會剝離成為多個并行的線程(線程數(shù)量視CPU核心數(shù)量而定),又因為線程之間需要交流以及操作系統(tǒng)的監(jiān)管,其效率損失要比硬件層面大得多。
這里再說句題外話,對于操作系統(tǒng)來說,大家耳熟能詳?shù)母鞣N補(bǔ)丁包不僅能改善系統(tǒng)的安全性能等,也可能在短期間內(nèi)為多核提供強(qiáng)有力的支持。譬如,微軟在7月23日就發(fā)布了一個支持多核心顯卡的補(bǔ)丁,原因是在Windows Vista下,一些諸如GeForce 7950 GX2這樣的雙核心顯卡的第2個GPU(圖形處理器單元)可能無法獲得正確的指令,導(dǎo)致其僅能發(fā)揮一半的火力。多核處理器雖然與多核顯卡有極大的不同,但是二者的實現(xiàn)原理是基本相同的,因此我們也不能排除微軟在某個時刻為多核桌面系統(tǒng)提供相應(yīng)的Windows補(bǔ)丁包的可能性。
軟件支持成軟肋
有了完美支持多核的桌面操作系統(tǒng),并不意味著桌面多核就已經(jīng)水到渠成,軟件的支持也必須跟上。
目前,多數(shù)桌面軟件并沒有充分考慮到多核的運行情況,導(dǎo)致線程的平均分配時間以及線程之間的溝通時間都會大大增加,尤其是當(dāng)線程需要反復(fù)訪問內(nèi)存的時候,就會造成軟件運行效率的低下。另外,一些桌面軟件的測試也明白無誤地告訴我們,如果沒有針對多核進(jìn)行軟件開發(fā),不僅多核提供的強(qiáng)大計算能力得不到利用,甚至還有可能出現(xiàn)“多核不如單核CPU好用”的現(xiàn)象。
在目前的可視化開發(fā)環(huán)境下,開發(fā)軟件似乎很簡單:只需在IDE(集成開發(fā)環(huán)境)中新建一個工具,再建幾個Form,然后拖上去一些控件,就可完成一個看似非常強(qiáng)大的程序。這些程序可能具有非常復(fù)雜的功能,而且可以在單核CPU上運行得非常好。然而一旦將之在多核系統(tǒng)上運行,其表現(xiàn)往往令人失望。
原因何在呢?傳統(tǒng)的程序都是由一個Main函數(shù)開始執(zhí)行程序,然后按順序執(zhí)行相應(yīng)的代碼,即所謂的串行,因此同一程序在同一時間只能運行在一個CPU核心上,哪怕該系統(tǒng)上有很多CPU核心,也只能有一個核心發(fā)揮作用。
目前幾乎所有的桌面軟件都是串行的,采用Visual Basic等語言編寫,如何為這類開發(fā)商提供更好的并發(fā)編程模型和開發(fā)環(huán)境,以幫助他們開發(fā)有效的桌面并行應(yīng)用程序,將是多核在未來幾年里面臨的一大挑戰(zhàn)。當(dāng)然,這些問題也存在于企業(yè)級軟件開發(fā)過程中,不過由于本文談及的是桌面系統(tǒng),因此不再贅言。
為了改善這種局面,據(jù)悉英特爾已經(jīng)與一些軟件開發(fā)商、操作系統(tǒng)廠商和高校制訂了合作伙伴計劃,并加快了在相關(guān)工具方面的研發(fā)力度,推出了一系列的產(chǎn)品,包括編譯器、VTun性能分析器、多線程工具等。另外,Intel在全球還有1萬多名軟件工程師幫助用戶完成相關(guān)軟件的并行化工作。
應(yīng)用缺乏是短板
目前看來,桌面系統(tǒng)的應(yīng)用一般不外乎是文檔處理、表格制作、網(wǎng)頁瀏覽、即時通信、游戲娛樂等領(lǐng)域,往復(fù)雜里說,還可能包括一些非專業(yè)的視頻、音頻等多媒體處理應(yīng)用。
對于當(dāng)前的主流桌面系統(tǒng)來說,應(yīng)對以上的應(yīng)用完全不成問題,譬如微軟最新的Office 2007辦公系統(tǒng)、IE 7.0瀏覽器、MSN 8.1等軟件,甚至可以在早幾年的桌面系統(tǒng)上流暢運行,完全無需昂貴的多核處理器。只有在音、視頻處理方面,多核才能發(fā)揮出一些優(yōu)勢,不過如果相應(yīng)的音、視頻處理軟件沒有針對多核進(jìn)行優(yōu)化的話,多核系統(tǒng)的效果也會大打折扣。
業(yè)內(nèi)曾經(jīng)認(rèn)為,多核在可視化領(lǐng)域具有遠(yuǎn)大前途,渲染速度可以加倍,矩陣運算容量可以大大增加,然而現(xiàn)在的OpenGL(這是一種3D程序接口,在圖形工作站和游戲中應(yīng)用頗多)很難拆分?jǐn)?shù)據(jù)封裝,這也讓多核難有用武之地。更糟糕的是,目前的絕大多數(shù)游戲都采用了微軟的DirectX,而不是曾經(jīng)輝煌一時的OpenGL。要讓DirectX在多核下表現(xiàn)優(yōu)異,仍要微軟在操作系統(tǒng)或補(bǔ)丁包中加以支持。
游戲是桌面系統(tǒng)(尤其是家庭和個人用戶)的一大應(yīng)用,然而目前能夠支持多核(哪怕是雙核)的游戲可謂鳳毛麟角、少之又少。由于多核下的游戲開發(fā)將在很大程度上顛覆原有的思路、理念乃至流程,因此現(xiàn)在仍少有大型游戲公司宣稱向多核開發(fā)轉(zhuǎn)移,這也意味著短期間內(nèi)我們不會看到重量級的游戲產(chǎn)品支持多核。
另外,一些業(yè)內(nèi)人士認(rèn)為,多核桌面的春天要寄希望于家庭服務(wù)器(這是微軟最近一段時間力捧的一種產(chǎn)品,微軟已經(jīng)表示將在年內(nèi)推出Windows家庭服務(wù)器正式版)。他們認(rèn)為,只有電腦轉(zhuǎn)變成為數(shù)字家庭的數(shù)據(jù)存儲和運算中心,多核的意義才會凸顯。不過,這也只是一種美好的期望,畢竟類似家庭服務(wù)器這樣的應(yīng)用距離我們?nèi)苑浅_b遠(yuǎn),更況且家庭服務(wù)器恐怕也不應(yīng)再歸類于“桌面”了吧?
觀點:多核優(yōu)點不容回避
雖然說了一大堆多核的“壞話”,但是我必須承認(rèn),多核的優(yōu)點很多,而且我也很看好多核
在服務(wù)器和工作站上的前景。
與單核相比,多核的優(yōu)點在于單芯片多處理器結(jié)構(gòu)的控制邏輯復(fù)雜性要明顯低很多;其次,由于單芯片多處理器結(jié)構(gòu)的控制邏輯相對簡單,包含極少的全局信號,因此線延遲對其影響比較小,在同等工藝條件下,單芯片多處理器可以獲得更高的工作頻率;再次,由于多個處理器集成在一塊芯片上,并且采用共享Cache或者內(nèi)存的方式,因此多線程的通信延遲會明顯降低;另外,在IT業(yè)界廣泛崇尚綠色環(huán)保的今天,多核通過動態(tài)調(diào)節(jié)電壓/頻率、負(fù)載優(yōu)化分布等,加之生產(chǎn)工藝的極大改進(jìn),能更有效地降低處理器的功耗。
至于多核桌面,我個人認(rèn)為在2010年前不會成為市場主流。(劉波)