為了替未來(lái)的多核心處理器建構(gòu)新一代的平行編程模型(parallel programming model),英特爾(Intel)和微軟(Microsoft)正在漫長(zhǎng)的道路上緩步前行;兩家公司并于日前在美國(guó)舊金山舉行的英特爾科技論壇(IDF)上各自發(fā)表了相關(guān)技術(shù)進(jìn)展。
微軟為系統(tǒng)軟件堆棧添加了新的層,并為其.Net整合環(huán)境進(jìn)行了一些擴(kuò)展。英特爾則計(jì)劃對(duì)x86指令集進(jìn)行擴(kuò)展,并展示了在Ct上的進(jìn)度;Ct是C++設(shè)計(jì)語(yǔ)言的擴(kuò)展版本,旨在提供更好的平行化運(yùn)算。
從用于運(yùn)算開始,軟件的發(fā)展便憑借著摩爾定律(Moore’s Law)關(guān)于串行處理器的發(fā)展,而不斷提高其性能水平。然而,隨著微處理器上的功率泄漏問題日亦嚴(yán)重,迫使相關(guān)技術(shù)朝多核心方向轉(zhuǎn)移。去年年底發(fā)起的微軟平行運(yùn)算計(jì)劃(Parallel Computing Initiative)的主持人David Callahan表示,這意味著向平行運(yùn)算模型的歷史性過(guò)渡。
微軟與英特爾并支持各種學(xué)術(shù)性研究,來(lái)推動(dòng)這方面的發(fā)展。在IDF上,學(xué)者們與企業(yè)界內(nèi)部團(tuán)隊(duì)也分享了一些進(jìn)展情況。為了再更加把勁,微軟還希望使用平行運(yùn)算的轉(zhuǎn)變,推動(dòng)計(jì)算機(jī)接口的發(fā)展。
在展開這些工作之前,底層軟件(underlying software)需要整體調(diào)整;Callahan表示,未來(lái)的系統(tǒng)軟件將會(huì)分成更多層,形成更多的單獨(dú)元素(elements),包括在應(yīng)用鏈接庫(kù)和虛擬機(jī)管理軟件(hypervisors)之間定義用戶空間的新執(zhí)行環(huán)境,以及關(guān)鍵操作系統(tǒng)核心(kernel)。
執(zhí)行環(huán)境將作為調(diào)度器(schedulers),與進(jìn)程管理程序及操作系統(tǒng)之間協(xié)調(diào)工作。擬機(jī)管理軟件映像(map)著實(shí)體資源,而操作系統(tǒng)對(duì)實(shí)際硬件的存取進(jìn)行管理。Callahan表示:這是一個(gè)對(duì)傳統(tǒng)操作系統(tǒng)服務(wù)的重新分解(re-factoring)。
這些技術(shù)演進(jìn)之目的,是為了更有效掌控多核心環(huán)境下的競(jìng)合要求(competing requests)。即使是現(xiàn)今的PC也主管了“可怕數(shù)目”的平行進(jìn)程,于是形成了時(shí)序處理的瓶頸以及數(shù)據(jù)儲(chǔ)存的遺失。
微軟會(huì)把其執(zhí)行層(runtime layer)公布給第三方合作伙伴,其中包括英特爾;因?yàn)槲④涱A(yù)計(jì)未來(lái)將需要來(lái)自不同供貨商、互通的作業(yè)軟件抽象(software abstractions),以支持不同型態(tài)的操作系統(tǒng)。未來(lái)的軟件還需要在幾個(gè)方面進(jìn)行改善,包括合作調(diào)度(cooperative scheduling)、更好的執(zhí)行緒級(jí)性能,以及增強(qiáng)的訊息傳遞。
Callahan稱:「這將是一系列深遠(yuǎn)的改變,甚至需要重新建構(gòu)鏈接庫(kù)文件并重新編寫應(yīng)用程序?!筊apidMind 首席科學(xué)家Michael McCool則表示,「這是一個(gè)雄心勃勃的轉(zhuǎn)變,也是他們(微軟與英特爾)的首要目標(biāo)?!乖摴緩氖掠跒閤86和其它處理器提供平行編程工具。
McCool還補(bǔ)充:「最初,他們已經(jīng)完成了一些顯著的支持平行任務(wù)的工作,但我沒有看到在對(duì)數(shù)據(jù)抽象方面上的任何努力?!顾赋觯磥?lái)平行編程模型要新的目錄來(lái)對(duì)數(shù)據(jù)排序,因此數(shù)據(jù)可以在合適的時(shí)候匯集到緩沖存儲(chǔ)器中的合適位置。
他還指出,英特爾最新的高速處理器互連明顯減少了等待時(shí)間,但如果錯(cuò)誤數(shù)據(jù)出現(xiàn)在緩沖存儲(chǔ)器中,等待時(shí)間又會(huì)顯著增加。
新的工具和新的設(shè)計(jì)語(yǔ)言
在編程工具方面,Callahan則表示,微軟正對(duì)其基于C#3.0語(yǔ)言的.Net環(huán)境進(jìn)行擴(kuò)展。英特爾稱其將在11月份發(fā)表四個(gè)新的平行編程工具的測(cè)試版本。
Callahan表示,程序設(shè)計(jì)師們將需要一整套新的工具組來(lái)實(shí)現(xiàn)除錯(cuò)、最佳化以及驗(yàn)證其編寫的平行程序代碼。除錯(cuò)工作將從單步執(zhí)行模式(single-step)變?yōu)樘摂M工具,來(lái)獲取上千次同步任務(wù)時(shí)所反映出的趨勢(shì)。
在設(shè)計(jì)語(yǔ)言方面,英特爾談?wù)摰紺t,即C++用于多核心處理器的擴(kuò)展版本。該語(yǔ)言目標(biāo)是自動(dòng)為多個(gè)核心劃分處理任務(wù),而不需要程序員了解x86架構(gòu)的深層細(xì)節(jié)。
從英特爾企業(yè)應(yīng)用技術(shù)部門工程師Anwar Ghuloum展示的數(shù)據(jù)看,使用該語(yǔ)言在四核心系統(tǒng)上執(zhí)行同樣的程序代碼可以加速1.7至3.7倍。Ct最初的目標(biāo)是用于英特爾通用Nehalem四核心芯片組,但目前已經(jīng)升級(jí)在16核心Larrabee繪圖處理器原型上執(zhí)行。
McCool 表示:RapidMind和Ct都指向平行運(yùn)算這一方向,但我們更關(guān)注長(zhǎng)遠(yuǎn)而成熟的商業(yè)應(yīng)用;而目前Ct仍然只是一項(xiàng)正在研究中的API。
英特爾還討論了其先進(jìn)向量擴(kuò)展(AVX),作為取代目前在英特爾處理器上使用的串流式SIMD擴(kuò)展版(SSE)指令集擴(kuò)展。
AVX被認(rèn)為將為平行運(yùn)算提供比SSE更優(yōu)越的環(huán)境,提升浮點(diǎn)性能并增加了更廣泛的單指令和多數(shù)據(jù)(SIMD)單元。不過(guò),AVX得到英特爾SandyBridge處理器問世后才會(huì)全面實(shí)現(xiàn),SandyBridge是一款32奈米處理器,預(yù)計(jì)2010年推出,是繼目前Nehalem型CPU兩代后的產(chǎn)品。
另外,英特爾透露了Nehalem處理器性能得以最佳化的新功能,這些功能是其它一些CPU核心中沒有采用的。這個(gè)功能可以在一些核心閑置時(shí)自動(dòng)關(guān)閉它們,因而為其它仍在執(zhí)行的核心提供更多可用的芯片級(jí)電源。
該技術(shù)涉及到新一代具高阻抗的晶體管設(shè)計(jì),因而減少了來(lái)自已經(jīng)關(guān)閉的核心的泄漏電流,同時(shí)在處理器上還使用了百萬(wàn)閘晶體管控制器和傳感器。負(fù)責(zé)Nehalem電源管理設(shè)計(jì)的英特爾院士Rajesh Kumar表示:你能控制的電源越多,實(shí)現(xiàn)的性能越佳。
英特爾競(jìng)爭(zhēng)對(duì)手AMD已經(jīng)有能力在其處理器上透過(guò)獨(dú)立的電源層來(lái)獨(dú)立執(zhí)行各個(gè)核心。但之前英特爾表示,這樣的功能并不能顯著節(jié)省電源。