微軟將增強Windows 7多核心功能
這是我們都必須面對的問題:既然晶片的趨勢是處理器變多,而不是速度變快,你下一台電腦執行軟體的速度會比較快嗎?
軟體業龍頭微軟公司相信,Windows 7比舊版作業系統提供更好的多核心系統平台。
Windows 7可支援搭載多達256個處理器核心的伺服器,舊版作業系統只能支援64個。隨著晶片進入多核心時代,如今就連筆記型電腦,也能處理數年前只有伺服器才能勝任的許多運算任務。英特爾新Core i7 "Clarksfield"行動處理器具有四核心,可處理總計八條執行緒(threads)的任務。
微軟公司Windows核心作業系統部門資深副總裁Jon DeVaan說:「其中一個層面是支援數量更多的處理器,並且在64顆處理器轉變到256顆處理器的過程中做好線性擴充。」
線性擴充(linear scaling)的意思是,把處理器數目加倍就表示效能也加倍--這在實際的運算方面是很少達到的。然而,256或64個處理器,能拿一台具備四或八個核心的PC做什麼? 簡單說就是,讓Windows系統升級到支援數量更多的伺服器,也能協助規模較小的多核心機器更順暢地執行任務,例如可以把資料儲存在快取記憶體,以便處理器核心就近存取。
解決多核心問題,微軟責無旁貸。微軟供應全球使用率最普及的PC作業系統,而且提供許多人用來製作PC軟體的程式設計工具,例如即將推出的Visual Studio 2010。
Devaan說:「目前還沒有任何特效藥。但商業現實使得情況變得更迫切,所以我認為,我們將採取更多的作法。」
釋放多核心威力也攸關競爭力。蘋果最新版作業系統「雪豹」Mac OS X增加了一項稱為"Grand Central Dispatch"的功能,集中管理系統上各種執行中程式的執行緒。
當然,英特爾(Intel)和超微公司(AMD)也有責任,但微軟對開發者的影響力更大。
多核心設計能輕鬆提供協助的時機,是在使用者同時執行多種個別的程式,或當執行的程式「不易平行」(embarrassingly parallel)時--換言之,就是當某項任務附帶許多自然獨立自主的子任務(independent subtasks),例如呈現一支影片的許多圖框(frames)。但今天的許多程式已設定好依照一系列步驟的順序來執行,無法輕易地轉換成平行的設計。
Evans Data分析師Janel Garvin說:「單靠作業系統,絕對無法把尚未支援平行處理的應用程式變成能做平行處理。開發者還是得讓自己的應用程式做到多重執行緒。」
所以,微軟在Visual Studio之內放入平行程式設計(parallel programming)的輔助工具,是好消息。
微軟平行運算產品部門經理Steve Teixeira說:「平行運算是複雜、困難、勞力密集的,即使是對最熟練的開發者而言亦然,這導致開發者避免寫平行程式,使許多CPU周期閒置未用。」
微軟計劃透過Visual Studio 2010,以及第四版的.Net Development Framework,來改善這種情況。