英特爾重啓超級計算機技術

 

 

聲明:轉自http://www.mittrchinese.com/article.jsp?id=468

英特爾重啓超級計算機技術

(作者:羅伯特•X•克林奇利) 

當2002年安瓦爾•古魯姆(Anwar Ghuloum)來到英特爾工作的時候,該公司是芯片製造行業的龍頭老大,這主要是因爲它在持續供應速度越來越快的處理器。“我們的奔騰4處理器已經達到了3GHz,而公司發展路線圖計劃,未來生產時鐘頻率達到甚至超過10GHz的處理器,”古魯姆回憶道,他擁有卡內基梅隆大學的博士學位,現在是該公司的首席工程師之一。在同年的英特爾開發商會議上,首席技術官帕特•基辛格(Pat Gelsinger)說,“我們正在按部就班地進展,將在2010年開發出30GHz的設備,採用10納米或更小的製作工藝,實現萬億指令級別的性能。”就是每秒鐘處理一萬億條計算機指令。

但是基辛格錯了。英特爾和它的競爭對手仍在製作速度低於4GHz的處理器,至少現在看來,5GHz依然被當作硅技術可實現的最大速度。

這並不意味着摩爾定律失效了——該定律認爲,一塊芯片上的晶體管數量每兩年增加一倍。當然,由發熱和能量消耗帶來的不可預測的問題,已經對處理器的時鐘頻率或指令的處理速率造成了實際限制。新的技術,比如自旋電子學(它用單個電子的自旋方向來編碼數據)和量子(或隧道)晶體管,最終可能會使計算機的運行速度大大提升,同時大幅降低能耗。但是,這些技術至少還需十年才能進入市場,而且它們需要更換掉花費數百億美元建造的半導體生產線。

所以,爲了使手中的技術發揮出最大的效用,芯片生產商們採取別的方法。摩爾定律預測增加的晶體管,並不用於加快單獨處理器的運行速度,而是增加了芯片中處理器的數量。擁有雙處理器——或“核心”——的芯片現在成爲臺式計算機的標準配置,而四核芯片也越來越普遍。從長遠來看,英特爾期望每臺設備包含數百個核心。

但是出現一個問題:儘管過熱芯片的硬件問題通過多核計算的方法很好地解決了,但是這種解決方案進而引來一個棘手的軟件問題。你怎麼給多處理器編程?這就是安瓦爾•古魯姆,在他管理的美國和中國編程團隊的幫助下,所要解決的。

微處理器公司採用多核戰略是頂着巨大風險的。如果他們找不到爲新芯片編寫軟件的簡單方法, 那麼他們就可能失去軟件開發者的支持。這就是索尼的多核PlayStation3遊戲機推遲上市,並且在遊戲數量上仍然輸給競爭對手的原因。

 

硅的問題

 

微處理器發展的前30年間,提高性能的方法是儘量縮小芯片的零件尺寸,同時提升運行的時鐘頻率。1977年,最初的蘋果II型電腦使用一個運行速度爲1MHz的8位處理器。今天的計算機標準爲3.6GHz的64位芯片——實際上速度是以前的28800倍。但這似乎就是這條軌道的終點。到2002年左右,蝕刻在芯片的最小零件尺寸,通過光刻技術縮減至90納米——在此規模下會產生意料之外的結果,大部分注入到芯片的電流會泄漏出去,產生熱量卻什麼工作也不做。同時,由於晶體管排列得太過密集,它們發出的熱量無法被吸收和帶走。當時鍾頻率達到5GHz時,芯片製造商們意識到,芯片的溫度太高,以至於如果沒有精密的冷卻系統,它們的製造原料——硅——就會融化。該行業需要別的途徑來提高性能。

相對於單核高速芯片現在所需的設計複雜,多核技術可以具備相同處理能力並消耗更少電力。更少的電力產生更少的熱量。此外,使用多核可以隨時隨地地釋放熱量。

然而,大多數計算機程序設計時並沒有考慮多核。它們的指令被線性處理,沒有並行環節的作用。如果你的計算機看起來能同時進行多項任務,那是因爲處理器不停地在任務間跳轉,其速度快得超乎你的想象。因此多核最簡單的用途就是勞動分工——例如,在一個核心上運行操作系統,在另一個運行一個應用程序。

這不需要一個全新的編程模型,而且,它可以匹配今天擁有兩個或四個核心的芯片。但是將來出現64個核心時,該怎麼辦呢?

 

重操舊業

 

幸運的是,哈佛大學計算機科學與應用數學的教授萊斯利•瓦瑞安特(Leslie Valiant)說,高性能計算領域——也就是超級計算機——的並行原理幾十年前就解決了。“現在的挑戰,”瓦瑞安特說,“是尋找讓這些老玩意兒依然有效工作的方法。”

激發出多核計算的超級計算機是上世紀80年代的第二代設備,由思維機器(Thinking Machines)和肯德爾廣場研究公司(Kendall Square Research)等公司製造。這些公司使用成百上千個現成的處理器,讓它們並行地運行。一些由美國國防部高級研究計劃署委託製造,以當作克雷超級計算機(Cray supercomputers)的廉價替代品。爲這些計算機編程所獲得的經驗教訓,成爲今天進行多核編程工作的指南。所以,《俠盜獵車手》遊戲可以很快地從二十年前幫助設計氫彈的軟件研究中獲益。

在80年代,並行計算的關鍵問題開始清晰起來:很難將軟件分開在數百個處理器上並行工作,再按照正確的順序組合回去,而不讓預期結果錯誤或丟失。計算機科學家發現,儘管一些問題很容易並行化,但是也有一部分不行。在一種叫做“競態條件(race condition)”的情況下,即使問題可以並行化,結果可能仍會不按順序返回。想象兩個並行工作的運算,其中一個需要在另一個之前完成,才能使總結果正確。你如何確保正確的那個運算贏得這場競賽呢?現在,想象一下兩千個或兩百萬個這樣的處理進程的情況。

“我們從高性能計算的早期工作瞭解到,有些問題適合平行,但是這些平行應用程序不容易編寫,”伊利諾伊大學香檳分校通用並行計算研究中心(Universal Parallel Computing Research Center,UPCRC)的副主管馬克•史尼亞(Marc Snir)說。通常,程序員使用專門的編程語言和工具來爲計算機編寫指令,因爲相對於1/0二進制碼,人們更容易理解它們。但是這些語言旨在表現線性的運算過程;我們很難通過一系列線性命令來組織數千個平行的進程。爲了從頭創建並行程序,就需要編程語言讓程序員在編碼時不考慮如何使之平行——就像往常一樣編程,軟件會計算出如何給多個處理器有效地分發指令。“然而,現在仍沒有好的工具來隱藏並行,或令其淺顯易實現,”史尼亞說。

爲了幫助解決這些問題,公司們已經召回了參與80年代超級計算機的老傢伙們。例如,大衛•庫克(David Kuck),伊利諾伊大學的榮譽退休教授,以並行編程工具的開發者而聞名。現在,他在英特爾從事多核編程工作。同樣還有以前數字設備公司(Digital Equipment Corporation)僱傭的整個團隊;在早期職業生涯中,該團隊開發出數字設備公司的消息傳遞接口(MPI)實施方案,如今成爲多機超級計算機的主要軟件標準。

就某種意義來說,這些老先生們比上一次要輕鬆一些。因爲,今天許多的多核程序與傑出的主機設計者吉恩•阿姆達爾(Gene Amdahl)的設想大大不同,他創立的理論認爲,通過使用多個處理器所獲得的速度增量受限於給定程序可以被並行化的程度。

計算機現在處理的數據量比以前更大,但是它們對任務的處理能夠完美地平行化,以至於1967年描述的阿姆達爾定律的約束似乎變得完全不存在了。大規模平行任務的最簡單例子,是通過嘗試所有可能的字母組合來暴力破解密碼。將潛在答案分給1000個處理器必然會快上1000倍。今天的視頻和音頻數據編碼等處理器密集型程序也同樣受益。並行地壓縮電影幾乎有完美的效率。但是,即使今天更容易找到並行計算的用途,要實現它也不那麼容易。讓它變得簡單,就需要芯片製造商、軟件開發者和計算機學者的一致努力。實際上,伊州大學的UPCRC就是由微軟和英特爾資助的——如果多核計算成功,這兩家公司將獲益豐厚,如果失敗,則損失慘重。

 

發明新工具

 

如果軟件繼續複雜化,那不只是因爲加入了更多的功能,還因爲程序員實際所做工作的複雜性被越來越多的抽象層掩蓋,而編碼就建立在這些抽象層上。這不僅僅是膨脹:程序員需要抽象,好讓基礎的二進制碼完成我們所想要的更加高級的工作。但是,當開始爲並行處理器編寫程序的時候,程序員使用的工具就太簡陋了,甚至微軟研究院未來數據中心項目的軟件架構主管詹姆斯•拉諾斯(James Larus)將它們比喻成“程序員所能使用的最底層和最困難的語言”。

“我們無法想象使用彙編語言編寫今天的軟件,”他說。“但是出於某些原因,我們認爲,我們可以使用幾乎是並行彙編語言的工具來編寫複雜度類似、但擁有新的關鍵特性的並行軟件,實際上卻做不到。”

這就是爲什麼微軟一直在儘早發佈並行編程工具。例如,F#,是微軟通用ML編程語言的並行版本。它不僅使一些功能平行化,而且防止它們之間不當的相互影響,從而使並行軟件變得更易於編寫。

同時,英特爾每個月都將古魯姆送出國一週,與軟件開發者討論多核架構和並行編程模型。“我們已經得出一個觀點,並行編程‘問題’不會在一兩年內解決,它將需要對現在的語言進行大量改進——以及幾次跳躍式發展,”古魯姆說,“我還認爲,我們不能脫離現實去完成這項工作;沒有重要的程序員反饋,我們無疑將以失敗告終。”

在商業和開源市場,其它新的語言和工具要麼利用了多核處理的能力,要麼掩蓋了它的複雜性。其中包括谷歌MapReduce架構,它使並行計算更易於在集羣計算機上運行;Hadoop,一個MapReduce的開源實施項目,可以爲數千個節點分配程序。類似Clojure和 Erlang等新的編程語言完全以並行計算爲根本而設計,風靡全球的Facebook聊天程序就部分使用Erlang編寫。

同時,從麻省理工學院誕生的公司,Cilk Arts,可以將使用現有C++語言編寫的程序打散爲多線程,從而能在多個核心上並行處理。還有,聖劉易斯市的Appistry公司宣佈,它的企業應用結構(Enterprise Application Fabric)可以自動地將微軟的.Net編程框架分配給數千臺服務器,程序員連一行原始代碼也不用修改。

 

多核計算的侷限

 

然而,就像英特爾的10GHz和30GHz芯片的夢想給多核計算的發展讓路一樣,多核自己也只能存活大約幾年,而不是幾十年。每增加一個處理器,並行系統的效率就會下降一些,因爲處理器在爭奪相同的數據;當矛盾發展到一個臨界點時,向芯片增加新的核心實際會拖慢它的速度。可能在我們開始購買百覈計算機之前,多核策略就被早早設置了實際限制。

然而,這有什麼關係呢?儘管有些程序可能需要多核的能力,但是大多數人不會使用它們。除了遊戲發燒友,很少有人會抱怨他們的計算機太慢。實際上,微軟已經強調Windows 7,作爲陷於困境的Windows Vista的替代品,將比Vista使用更少的處理能力和內存——這是應對低耗能移動計算平臺的普及和可預期的個人電腦應用程序網絡化,所採取的必要舉措。憤青們會說,對不斷增長處理能力的追求是純商業的——半導體和計算機公司、軟件供應商和手機製造商需要我們購買新的玩意。

所以,如果多核計算失敗了,會有什麼負面影響呢?如果我們的技術出現重大轉折,突然無法使用未來筆記本電腦中全部64個處理器核心時,我們的文化會受到什麼影響呢?

“我等不及了!”蘋果II型機的發明者史蒂夫•沃茲尼亞克(Steve Wozniak)說,“摩爾定律的失效將帶來軟件開發的復興,”他宣稱。“只有到那時,我們才能最終創建在穩定持久的平臺上運行的軟件。”

“在學校裏,”沃茲說,“一張課桌的生命期是25年,一本教科書是10年,而一臺計算機最多3年。這些設備中哪一個的購買和維護費用最多呢?當然是計算機。哪些設備的使用期結束後還具有剩餘價值呢?不是計算機——我們要花錢去處理這些電子垃圾。至少書本可以燒掉取暖。直到技術的速度減慢,計算平臺生存期足夠長,具有經濟上的可行性時,它們纔會真正成爲教育的必備物品。所以,摩爾定律的結束,雖然感覺不好,實際上卻是一件好事。”


——————————————————————————————————————
羅伯特•X•克林奇利(ROBERT X. CRINGELY)已經爲科技行業筆耕30載。他是《意外的電腦王國:硅谷的毛頭小夥子們是如何成爲百萬富翁、參加國際商戰,卻仍然不懂約會》一書的作者。

 

 

發佈了31 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章