英特爾和微軟正在漫長的道路上一步步地走向他們所構想的藍圖,即為未來多核處理器設計新型并行編程模型。兩個公司在英特爾發展論壇上發表了各自所取得的進展。
微軟的新版本中,為系統軟件棧添加了新的層,并為它的.Net集成環境進行了一些擴展。英特爾則計劃對x86指令集進行擴展,并展示了在Ct上的進度,Ct是C++設計語言的擴展版本,旨在提供更好的并行化計算。
從用于計算開始,軟件的發展便憑借著摩爾定律關于串行處理器的發展而不斷提高其性能水平。然而,隨著微處理器上的功率泄露的問題不斷嚴重,迫使向多核方向轉移。去年年底發起的微軟并行計算計劃的主持者David Callahan稱,這意味著向并行計算模型的歷史性過渡。
微軟與英特爾正在支持著各種學術性研究,來推進這方面的發展。在英特爾技術峰會上,學者們與企業界內部團隊分享了一些進展情況。
這樣的工作似乎還不夠雄心勃勃,微軟更希望使用并行計算的轉變推動計算機界面的發展。
Callahan稱,“這實際上是我們希望實現的自然與經驗相結合的新的布景。并行計算轉化只是前進路上的一個小插曲。”
在開始并行工作前,底層軟件需要整體調整。Callahan表示,未來的系統軟件將會分成更多的層,形成更多的單獨組件,包括在應用庫和進程管理程序(hypervisors)之間定義用戶空間的新的運行環境,以及關鍵操作系統內核。
運行環境將作為調度器,與進程管理程序及操作系統之間協調工作。進程管理程序虛擬地映射著物理資源,而操作系統對物理硬件的訪問進行管理。Callahan稱,“這是一個對傳統操作系統服務的重構。”
這樣的目的是更好的處理在多核環境下競爭請求。即使今天的PC也并行著執行“可怕數目”的進程,于是形成了時序處理的瓶頸以及數據存儲的丟失。
微軟會把其運行層公布給第三方,其中包括英特爾公司,因為微軟預計未來將需要很多種從不同廠商抽象得來的用于不同服務種類的互操作軟件抽象。未來的軟件還需要在下面幾個方面進行技術改進:協作調度、更好的線程級性能以及增強消息傳遞。
Callahan稱,“這將是一系列深刻的改變,甚至需要重新構建庫文件并重新編寫應用程序。”
RapidMind 公司的首席科學家Michael McCool稱,“這是一個雄心勃勃的轉變,也是他們(微軟與英特爾)第一個目標。” RapidMind公司從事于為x86和其他處理器提供并行編程工具。
McCool還補充說,“最初,他們已經完成了一些顯著的支持并行任務的事情,但我沒有看到在對數據抽象方面上的任何努力。”
McCool稱,未來并行編程模型要新的類型來對數據排序,因此數據可以在合適的時候匯集到緩存中的合適位置。他還指出,英特爾最新的高速處理器互連,顯著得減少了等待時間,但如果錯誤數據出現在緩存中,等待時間又會顯著增加。
新的工具和新的設計語言
在編程工具的領域中,Callahan稱,微軟正在對其基于C#3.0語言的.Net環境進行擴展。英特爾稱其將在11月份發布四個新的并行編程工具的測試版本。
Callahan稱,程序員們將需要一整套新的工具集來實現調試、優化以及驗證其編寫的并行代碼。調試工作將從單步執行形式變為可視化工具來獲取上千次同步任務時所反映出的趨勢。
在設計語言方面,英特爾談論到Ct,即C++用于多核處理器的擴展版本。該語言目標是自動為多個核劃分處理任務,而不需要程序員了解x86架構的深層細節。
從英特爾公司協作技術組的工程師Anwar Ghuloum顯示的數據看,使用該語言在四核系統上運行同樣的代碼可以加速1.7至3.7倍。Ct最初的目標是用于英特爾通用Nehalem四核心芯片組,但目前已經升級在16核Larrabee圖像處理器原型上運行。
McCool 稱,“RapidMind和Ct都在指向并行計算這同一方向,但我們更關注于更長遠的成熟的商業供應,而當前Ct仍然只是一項正在研究的API。”
英特爾還討論了其先進矢量擴展(AVX),作為取代當前在英特爾處理器上使用的流式SIMD擴展版(SSE)指令集擴展。
AVX被認為將為并行計算提供比SSE更優越的環境,提升浮點性能并增加了更廣泛的單指令和多數據(SIMD)單元。不過,AVX到英特爾SandyBridge處理器問世后才會全面實現,SandyBridge是一款32納米處理器,預計2010年推出,是繼當前Nehalem型CPU兩代后的產品。
另外,英特爾透露了Nehalem處理器性能得以優化的新功能,這些功能是其他一些CPU核中沒有采用的。這個功能可以在一些核閑置時自動關閉這些核,從而為其他仍在運行的核提供更多可用的芯片級電源。
該技術涉及到新的帶有高阻抗的晶體管設計,從而減少了來自已經關閉的核的泄漏電流,同時在處理器上還使用了百萬門晶體管控制器和傳感器。
負責Nehalem電源管理的英特爾院士Rajesh Kumar稱,“你能控制的電源越多,實現的性能越佳。”
競爭對手AMD公司已經有能力在其處理器上通過獨立的電源層來單獨運行各個核。此前,英特爾稱,這樣的特征并不能顯著節省電源。