現(xiàn)在的超級計算機(jī)通常都有幾千顆CPU,速度已經(jīng)超過每秒千萬億次,但能支持500顆以上CPU的應(yīng)用軟件卻很少。像國家天文臺需要上千個CPU的運(yùn)算卻缺少軟件可用。
上海超級計算中心總共有300多個用戶,醫(yī)生丁海是其中一個。他獨(dú)立研究的課題涉及較復(fù)雜的模擬計算,用普通的電腦根本跑不起來,于是他到超算中心,申請使用一部分計算資源。
128顆CPU的極限
到超算中心排隊的單位一直很多。截至2008年,中心裝備的曙光4000A型超級計算機(jī)CPU使用率已達(dá)到88.5%。這臺擁有2048顆CPU的超級計算機(jī)已經(jīng)接近“滿負(fù)荷運(yùn)轉(zhuǎn)”。2009年6月,“魔方”的加盟將中心可提供的計算能力一下字提升了20倍。它是曾在2008年底排名世界前十的計算機(jī),峰值運(yùn)算速度達(dá)到每秒230萬億次。然而沒能進(jìn)入隊列的任務(wù)還是很多。
丁海只需要用幾十顆CPU,但在300多個用戶中已經(jīng)略高于平均數(shù)——雖然中心的客戶中不乏蛋白質(zhì)折疊這樣的大型科學(xué)計算和國產(chǎn)大飛機(jī)設(shè)計這樣的大型工程項(xiàng)目,但大型用戶并不占大多數(shù)。據(jù)上海超算中心2008年12月的簡報統(tǒng)計,在當(dāng)月新增的10個用戶里,只有清華大學(xué)航空航天學(xué)院、南京大學(xué)物理系和上海天文臺三家占用的CPU資源在128顆以上。
“不可能給得太多”,中心副主任袁俊說。中心為了照顧到300多個用戶的需要,必須進(jìn)行協(xié)調(diào)管理,才能最大發(fā)揮其整體效能。成立于2000年的上海超算中心不僅承擔(dān)著“國家網(wǎng)格”計劃的南方主節(jié)點(diǎn)任務(wù),還為華東地區(qū)乃至全國的科研單位和工程用戶提供開放的計算服務(wù)。袁俊告訴記者,128顆,往往是上海超算中心為單個任務(wù)所能提供CPU數(shù)的最大值。
事實(shí)上,即使資源方面沒有限制,很多大型項(xiàng)目也因?yàn)榧夹g(shù)上的原因用不上那么多運(yùn)算資源。
規(guī)模再大軟件控制不了
南京航空航天大學(xué)的飛行器設(shè)計實(shí)驗(yàn)室曾經(jīng)從浪潮公司購置過一套十多個節(jié)點(diǎn)的高性能計算集群,可用著用著就發(fā)現(xiàn)不夠用了。他們計劃購買一套更大的,升級到64個計算節(jié)點(diǎn)。購買,安裝,遷移任務(wù),一切停當(dāng),一個奇怪的現(xiàn)象出現(xiàn)了:運(yùn)算效率不僅并沒有提升,反而下降了。研究人員只好請來浪潮的維護(hù)工程師,發(fā)現(xiàn)問題出在該應(yīng)用軟件的擴(kuò)展性上——原來的軟件根本不能支持這么多CPU。
據(jù)浪潮公司提供的一份資料顯示,雖然數(shù)百上千個CPU級別的計算機(jī)集群現(xiàn)在已經(jīng)大量出現(xiàn),但支持500個CPU以上的應(yīng)用軟件卻很少。許多流行的高性能軟件,特別是廣泛應(yīng)用的開源軟件,如在地震預(yù)報、蛋白質(zhì)計算中運(yùn)用的軟件,并行度并不高,有的甚至還是串行程序。這就好比是好不容易修好了一條高速公路,回頭一看,卻缺乏好車。
“現(xiàn)在的關(guān)鍵是軟件跟不上硬件的發(fā)展速度,導(dǎo)致超級計算機(jī)的計算能力發(fā)揮不出來。”浪潮公司服務(wù)器部門的經(jīng)理包艷婷說。對此中國科學(xué)院超級計算中心主任遲學(xué)斌認(rèn)為,在研發(fā)的歷史上,我們一直重視有形的東西,忽視無形的東西。計算機(jī)固然很重要,但是如果在這個平臺上沒有要做的事,那也等于是浪費(fèi)。
對上海超算中心來說,困難主要是價格問題。盡管上海市政府給了他們令同行羨慕的的持續(xù)經(jīng)費(fèi)支持,使他們可以采購中國最好的計算機(jī)硬件,卻無法將最好的軟件也統(tǒng)統(tǒng)搬來。國家天文臺可能是中心的用戶里對CPU要求最高的之一,他們需要上千個CPU同時工作,以計算海量的天文觀測數(shù)據(jù)。但能支持的軟件在國際上也很少,即使有也買不起,他們只好自己編寫開源代碼。它更自由,卻未必好用。
再者,能夠?qū)懘祟愜浖娜瞬盘^稀少。國內(nèi)高等教育研究生以上學(xué)歷的教育中,完備、深度的“計算科學(xué)”教育既不系統(tǒng),也不完整,更沒有基于并行計算方面的計算科學(xué)教育和訓(xùn)練。同時,計算科學(xué)和各應(yīng)用科學(xué)的團(tuán)隊在互相協(xié)作方面也缺乏機(jī)制。美國一個成熟的計算應(yīng)用軟件通常都經(jīng)歷了至少20年以上的持續(xù)開發(fā),如計算化學(xué)軟件NWCHEM,開發(fā)團(tuán)隊里化學(xué)家、計算數(shù)學(xué)家、計算機(jī)科學(xué)家保持了合適的比例,政府也給予了資金支持。
跨越“軟”“硬”鴻溝
“魔方”的誕生將中國的超級計算一下子帶入了百萬億次計算時代,但是應(yīng)用卻仍停留在幾萬億次到幾十萬億次的水平,中間至少相差了一代。
曙光公司總裁歷軍認(rèn)為,“機(jī)器和應(yīng)用之間有一代的差距是可以理解的。上一代的曙光4000A剛出來時也面臨有沒有人用的問題,但到今天我們國家的大飛機(jī)設(shè)計、神舟飛船、基因研究、石油勘探上面都用上了,可見機(jī)器帶動應(yīng)用是現(xiàn)階段的必經(jīng)之路?!笨磥?,超級計算機(jī)超前于應(yīng)用的發(fā)展似乎不完全是壞事,只有有了更加強(qiáng)大的計算機(jī),應(yīng)用軟件和算法研究人員也才可能發(fā)現(xiàn)原有軟件和算法的問題。
大規(guī)模并行軟件的開發(fā)是個累活,周期很長,不像硬件升級那樣見效快。在過去,軟件都是串行編寫,假定在一個CPU上面執(zhí)行任務(wù)。超級計算機(jī)把這種情況徹底打破了,轉(zhuǎn)而強(qiáng)調(diào)“并行計算”。高性能計算的原理其實(shí)并不復(fù)雜,就是將一個任務(wù)分成幾份,每個服務(wù)器完成一份,但并行化的基礎(chǔ)是對此代碼涉及的應(yīng)用科學(xué)有透徹的了解,在理解的基礎(chǔ)上,再進(jìn)行合理的任務(wù)切分,精細(xì)地處理負(fù)載平衡、通信等問題。因此才出現(xiàn)了能夠?qū)懖⑿熊浖母呒壢瞬派僦稚俚木置妗?/p>
事實(shí)上,為超級計算機(jī)編程更是數(shù)學(xué)家的工作。他們不僅要有精湛的數(shù)學(xué)頭腦,懂得各種編程語言,還要熟悉計算機(jī)硬件。更重要的是,他們必須愿意投入時間來設(shè)計各種算法和進(jìn)行軟件編程,最后,還要確保軟件經(jīng)過調(diào)試能夠在超級計算機(jī)上使用。名噪一時的“深藍(lán)之父”許峰雄就是這樣一個人。這個對于人機(jī)對弈有著狂熱興趣的天才,更像是一名有著發(fā) 達(dá)數(shù)學(xué)頭腦的軟件程序員。還在念大學(xué)時,他幾乎每天吃飯路上腦子里都在琢磨如何在計算機(jī)上實(shí)現(xiàn)更快的出棋步數(shù)。為了戰(zhàn)勝卡斯帕羅夫,許峰雄和他的同事前后用了十多年。
2009年6月,國內(nèi)服務(wù)器行業(yè)的領(lǐng)軍企業(yè)浪潮集團(tuán)和中國超級計算領(lǐng)域的“專家團(tuán)”——中科院超算中心簽署了一項(xiàng)戰(zhàn)略合作協(xié)議,試圖聯(lián)手攻克“軟硬失衡”這一困擾超級計算機(jī)多年的難題。浪潮有豐富的市場經(jīng)驗(yàn),能準(zhǔn)確把握用戶的需求,可以安排大量的經(jīng)驗(yàn)豐富的一線軟件工程師和系統(tǒng)維護(hù)人員,而中科院超算中心則在體系架構(gòu)、硬件設(shè)計上提供理論上的支持。這是一項(xiàng)艱巨的系統(tǒng)工程,其成效果尚需時日。
下一代千萬億次計算機(jī)已經(jīng)在研制了。這臺名為曙光6000A的超級計算機(jī)已經(jīng)被深圳市預(yù)訂,但如果軟件水平不能迅速跟上,“軟硬失衡”的“魔咒”將給它帶來更大的麻煩——那可是千萬億次。