文/本刊記者 王左利
異構平臺挑戰軟件設計
文/本刊記者 王左利
“現在要做一個好的軟件工程師,與以前大不相同的是,你必須對硬件充分了解,這樣才能設計出優秀的算法。”
南京大學地球科學系教授周會群對高性能計算的研究非常深入。他說,計算機可以幫助學科人員聰明地做實驗,無論是“做不了”的實驗,還是“做不起”的實驗,計算機都可以幫助我們去做。作為一名在地球科學領域但每天都在跟高性能計算打交道的學者,他對當前高性能計算發展的一些觀點更值得計算機學科的人去體會。
《中國教育網絡》:最近全球高性能TOP500排行榜中,排在首位的日本理化研究所的超級計算機K比其他計算機快了數倍,非常驚艷。您對日本高性能計算界相當了解,您覺得日本在高性能計算方面有哪些優點值得我們借鑒?
周會群:日本是一個做事情很有目標的民族。K在設計之初,就有報道說,這是沖著TOP500榜首去的,志在重奪世界第一。它也確實做到了。
日本的超級計算機有一個特點,就是在硬件誕生的同時,就有龐大的軟件開發計劃。這從著名的地球模擬器的設計中就可以看到。
地球模擬器是由日本宇宙開發事業團、日本原子能研究所以及日本海洋科學技術中心共同研發的,在研發伊始,就有非常明確的應用目標。它要對整個地球的大氣環流、全球變暖、地殼變動等活動進行預測與解析。比如,通過計算機模擬來預測厄爾尼諾的現象,解析全球變暖會對氣候產生怎樣的影響,或者是通過計算機模型來推測數萬年以上的大氣或者海洋的情況。
日本在建大型計算機設施時,往往都有明確的應用目標,他們希望以此來保持本國技術的先進性,這是一個很重要的戰略。
對比國內,我們在應用與硬件的結合上做得很不夠,往往缺乏典型應用的支持。甚至缺乏對硬件設施建好之后如何經濟、有效地利用起來的考慮。
《中國教育網絡》 :現在GPU越來越熱,您認為,異構平臺將會是一個趨勢嗎?
周會群:是的,不過異構平臺與其說是一個趨勢,不如說是我們不得不接受的選擇。關于GPU,我所看到的是,很少有人做真正有意義的工作。雖然我們也可以看到,各個領域對GPU的應用正轟轟烈烈,類似“GPU在某某領域的應用”文章層出不窮,但其實質一樣。因為科學計算萬變不離其宗,大多數模型到最后都歸結為求矩陣特征值與線性代數計算問題。
我覺得與其這樣,不如有專門的人集中力量把兩個常用的數學程序庫BLAS與LAPACK在GPU上高效能并行化,其他程序只需連接這兩個庫,這樣一切問題迎刃而解。現在的問題是,最本質的工作沒有人做,卻有大量重復的工作正在進行。
《中國教育網絡》 :那么,在多核或者異構平臺時代,您認為存在的軟件挑戰在于什么?
周會群:如何有效、協調地綜合利用GPU,如何將現在在C P U上廣泛使用的數學程序高效率地應用到GPU上,是一個巨大的軟件挑戰。如果沒有好的算法,異構處理器往往會出現通訊時間很短,等待時間很長的問題。
在異構和多核時代,評斷算法好壞的標準有了改變。我們必須重新審視既有的算法。過去我們認為一個好的并行算法應當符合:高度并行性,即算法能夠將計算任務分解成盡量互不關聯的部分;進程之間通信量盡可能少;內存的合理利用。而且往往強調的是前兩個準則,比較忽略第三點。而現在,忽視第三個標準的算法往往表現不好。
例如,解線性方程組的Gauss-Seidel迭代法及其變種,常常用于為大型科學和工程問題的偏微分方程離散化后的得到的線性/非線性方程組求解提供條件預優解。可以證明所謂的紅黑迭代格式可以把原來相互關聯、不利于并行計算的算法變為完全互不關聯、具有最高并行度的算法。按列均衡分割迭代矩陣,分配給不同
的CPU核,各核之間的通信量也很少,完全符合前述準則的前兩條,按過去的標準是一個優良算法。可是,在一臺兩路八核的服務器上,我們發現雖然使用雙核的加速倍率基本可以達到使用單核的近2倍,但當使用核數繼續增加后,加速倍率基本上沒有任何增長。在8個核上運行時每個核的并行效率僅30%左右,可以說是效率很低。
而過去一些表現不好的算法今天倒是有了用武之地。比如,天體物理學計算和材料科學、生命科學研究中所用的分子動力學模擬方法分別涉及計算N個粒子之間的萬有引力和庫侖力,其計算復雜性為N的平方,模擬中80%以上的時間都耗費在這兩種力的計算上。最笨的算法是直接計算粒子兩兩之間作用的所謂的笨辦法。過去也開發了大量優化算法,但是目前在GPU上計算最快的算法正是笨辦法,比優化算法快數十倍。
現在要做一個好的軟件工程師,與以前大不相同的是,你必須對硬件充分了解,這樣才能設計出優秀的算法。過去,CPU有什么進展,程序就有什么進展。但多核處理器或者是異構平臺并非如此,無論所使用的處理器比之前快多少倍,如果程序設計得不好,結果可能一倍都快不了。
對于高性能計算來說,現在一個理想的CPU要具備兩個因素,第一,要有很大的Cache,第二,與其他CPU和內存的聯系必須非常緊密,也就是link有足夠的帶寬,很低的時延。否則核再多都沒用。
《中國教育網絡》 :那么對高校培養計算機人才提出了哪些新挑戰?
周會群:科學計算里涉及的軟件開發不同于普通的軟件開發,是一個復雜問題。碰到的很多問題,如果不懂其理論,根本沒有辦法做好。這就需要對當前的課程進行改革,重視計算機基礎理論。而計算機基礎理論的教學是國內計算機教學中的軟肋。
現在,中國的大學,包括一些頂尖的學校,計算機體系結構這門課早已不是重點。一方面,國內在此方面鮮有建樹,體系結構幾乎都是由別人所決定的;另一方面,在大多數學校作為選修課來供學生選擇。這門課比較難,所以很少有學生選它。另外一門非常重要的課程是并行計算原理。要想解決實際計算中遇到的問題,這是很重要的基礎理論。但同樣遺憾的是,它在很多學校都不是必修課。課程設置的滯后性與不科學性,導致人才的缺失。
此外,計算機教學應當與其他學科進行緊密的結合。因為高性能計算是一門交叉學科,需要培養具備復合知識結構的人才,而中國的計算機教學比較忽略這一點。

周會群 南京大學地球科學系教授。畢業于南京大學地球化學專業,在南京大學獲博士學位。曾在日本名古屋大學訪問研究,進修和研究內容為:計算機斷層掃描、地震勘探數據的三維可視化,隨后在日本和美國的知名公司任職。目前任江蘇省高性能計算專業委員會主任。