馬文方 劉洪宇 那 罡
“聶總讓你來一趟?!?/p>
“什么事呀,非要我去一趟?”
“聶總點名讓你來!”
“好吧,我這就過來?!?/p>
2008年10月7日下午,在曙光5000A測試現(xiàn)場干了一個通宵的微軟中國研發(fā)集團戰(zhàn)略合作部數(shù)據(jù)中心經(jīng)理李銘才回家休息了不到3個小時,就又被叫回了中科院計算所地下二層。這里是計算所的車庫,一個月前才剛剛被臨時改裝成測試現(xiàn)場。
在多種噪聲交織的測試現(xiàn)場,曙光公司副總裁聶華大聲對李銘說:“計算所9日就要停電改造供電系統(tǒng),如果你們在這之前結果還沒有一個顯著提升,我就只好換成Linux了。”
換Linux!這意味著Windows將在曙光5000A的系統(tǒng)性能測試中出局,李銘和他的同事們大半年的努力和連日來24小時倒班的付出都將付諸東流。
冒險搏一把
2008年1月底,微軟負責高性能計算機(HPC)系統(tǒng)銷售的李炤得知,計算所和曙光公司作為研制單位在“十一五”863計劃重大項目“高效能計算機及網(wǎng)格服務環(huán)境”上中標,聯(lián)合承接了該項目兩臺每秒百萬億次浮點運算高效能計算機中1臺的研制任務。這就是人們現(xiàn)在看到的曙光5000A。
李炤把這件事告訴了李銘和微軟中國平臺戰(zhàn)略總監(jiān)李科研。三個人商量后,覺得可以嘗試一下在Windows平臺上測試曙光5000A的性能。話雖這么說,但三人的心里一點底兒都沒有。
從技術上看,微軟在2005年11月的超級計算大會上才發(fā)布了用于高性能計算的Windows Computer Cluster Server 2003(WCCS 2003)的測試版,開始向高性能計算領域進軍。后來這個操作系統(tǒng)的下一代版本更名為Windows HPC Sever 2008(WHS 2008)。即使到了2008年1月,WHS 2008也還處于測試階段,并沒有正式發(fā)布。即使是這個最新版本,所標稱支持的高性能計算機規(guī)模也只有256個節(jié)點,而曙光5000A最初設計規(guī)模就達到1300個節(jié)點。
盡管李銘知道微軟總部那邊正在做的最大項目是美國伊利諾伊大學國家超級計算中心(NCSA)的機器,有1074個節(jié)點,但其規(guī)模也要比曙光5000A的1300個節(jié)點小不少。
說到人手,微軟在中國做HPC項目的人真可謂是屈指可數(shù),加上上海那邊研發(fā)團隊的十幾個人,總數(shù)也不過20人。曙光5000A原計劃2008年6月沖擊全球500強,這與NCSA的項目在時間上重合。到那時,總部的人手將都在為NCSA忙活,分身乏術。
但是,能在曙光5000A這樣規(guī)模的計算平臺上做事,對任何做HPC的人來說都是夢寐以求的事情。這對“三李”當然也不例外。盡管“本錢”差得很遠,但“三李”覺得還是值得冒險一搏,大家商定先悄悄地干,即便失敗了也不至于鬧得滿城風雨。
由于之前微軟和曙光在個人HPC上簽署過戰(zhàn)略合作協(xié)議,雙方都很熟悉,于是,李銘找到聶華。盡管李銘心里打著在Windows平臺上測試曙光5000A性能的算盤,但口中卻對聶華說,希望在曙光5000A平臺上測試一下WHS 2008測試版。
聶華當然聽得出李銘的弦外之音,并爽快地答應讓李銘他們先試一試。如果測試結果令人滿意,可以先用Windows測,否則還是要用Linux。
至于說為什么同意讓Windows先試試,聶華心里也有自己的打算。
“三李”終于如愿以償,可以在曙光5000A上試一試。但后來在測試過程中出現(xiàn)的風險和壓力,卻是他們始料未及的。
迎頭一記悶棍
聶華答應可以試試Windows的時候,曙光5000A的硬件還沒有做出來。畢竟曙光5000A太大了,加之整個系統(tǒng)應用了很多新技術,必須通過多種方式進行驗證,以消除系統(tǒng)的不確定因素,而節(jié)點樣機則是驗證曙光5000A計算節(jié)點和管理節(jié)點設計的重要步驟。
曙光5000A用了近萬片“巴塞羅那”CPU,這是AMD當時最新的4核服務器CPU。每4個CPU構成一個4路刀片服務器作為計算節(jié)點,每16個CPU構成一個用于浮點計算的胖節(jié)點,最終,由1920個節(jié)點構成曙光5000A這個龐大的計算系統(tǒng)。
衡量這些龐然大物性能的權威排名是Top500,它是由德國曼海姆大學在1993創(chuàng)立的,每年6月和11月都會發(fā)布全球500臺最快計算機系統(tǒng)的最新排名。
Top500主要依據(jù)的是Linpack運行的結果。這個上世紀70年代開發(fā)的基準測試程序,實際上是通過對一元N次線性代數(shù)方程組的求解,來測試高性能計算機的浮點計算性能。只要給出N值,所需的運算次數(shù)也就確定了,這樣,只要除以運算所用的時間,便可得到高性能計算機的浮點運算速度。在高性能計算領域,通常用每秒萬億次浮點計算作為基準單位,人們更愿意用T來簡稱。
就像木桶原理所說的,水裝得多少不僅與桶的大小相關,而且取決于木桶最短的一塊板那樣,Linpack測試不僅要求系統(tǒng)中所有節(jié)點的計算和通信性能足夠強,更重要的是不能有弱點。Linpack采用的是并行的迭代計算,只有等到最后一個節(jié)點計算結束后,才能進入下一次迭代。從這個意義上講,Linpack測試是很殘酷的,它是對系統(tǒng)整體性能的測試,只要系統(tǒng)中有一個節(jié)點計算或者通信性能不好,就會拖累整個系統(tǒng)性能。由于做Linpack時硬件沒有冗余,有時候,測試程序已經(jīng)跑了好幾個小時,可能因為一根內存條出現(xiàn)故障,都會導致整個測試前功盡棄。
一個多月后,4臺節(jié)點樣機出來了,兩臺運行Linux,另兩臺則交給微軟運行Windows。微軟中國研究中心資深HPC顧問葉向宇和同事敖翔興沖沖地跑到曙光公司體驗中心,把Linpack測試程序裝到機器上。但測試程序運行完成后,結果猶如給了他們一記悶棍——效率只有46%!而Linux不用優(yōu)化就可以輕松達到75%。
對首次測試結果成績可能不太理想,盡管李銘他們心里有所準備,但成績相差這么多,還是大大出乎他們的預料。
此時,聶華心里涼了半截,他的壓力可能比李銘他們還要大,畢竟之前曙光高性能計算機的Linpack測試都是在Linux上進行的,為什么要冒險嘗試Windows呢?
Windows拿到入門證
緩過勁兒后,李銘他們認真分析了如此差勁的原因。首先,使用的WHS 2008是測試版的,而且還針對巴塞羅那CPU當時出現(xiàn)的缺陷,做了一個補丁,通過降低效率來防止CPU出錯;其次是像CPU耦合、函數(shù)庫等很多優(yōu)化工作還沒有做。他們的信心還來自于WHS 2008有效率超過70%的案例。
原本曙光5000A是瞄準6月公布的Top500,但由于巴塞羅那CPU出現(xiàn)缺陷造成了供貨延遲,直接影響到曙光5000A這樣需要近萬片CPU的大系統(tǒng)。最終,曙光5000A沒有趕上4月15日的成績提交截止日。曙光5000A只有將目光瞄向10月1日——11月Top500排名公布的報名截止日。
假如一切都能按期進行,曙光5000A進入Top500十強是十拿九穩(wěn)的事,但是國際上高性能計算機的發(fā)展速度非???。2007年11月,Top500的十強門檻是82.16T;而到了2008年6月,門檻已經(jīng)提高到106.1T,足見高性能計算競爭之激烈。推遲半年,給曙光5000A沖入十強帶來了很大的不確定性。本著實事求是的精神,曙光盡管沒有放棄,但也不再公開表示沖擊十強了。
假如一切都能按期進行,根據(jù)微軟當時測試的成績,等待微軟的結果只能是出局。曙光5000A瞄向11月的Top500,為李銘他們寬限了近半年時間。
然而,盡管時間上的壓力減輕許多,但后來為了滿足上海超級計算中心提出的新的需求,曙光5000A整個系統(tǒng)的規(guī)模從1300個節(jié)點擴展到了1920個,比李銘他們1月份商量冒險嘗試時的規(guī)模提高了近50%。這遠遠超出了WHS2008標稱的256節(jié)點的支持能力。
如果最初曙光5000A的規(guī)模是1920個節(jié)點,李銘他們也未必敢去嘗試。正可謂,無巧不成書。
在接下來的兩三個月里,李銘他們一方面在北京做一個有140個節(jié)點的高性能計算項目的Linpack測試,積累一些經(jīng)驗,另一方面則在曙光的樣機上不斷進行優(yōu)化。
AMD那邊也傳來了好消息,“巴塞羅那”的缺陷已經(jīng)解決,開始大批量供貨。這使WHS 2008得以去掉影響效率的補丁。
經(jīng)過不斷優(yōu)化,系統(tǒng)運行效率逐步提高到百分之七十多后,用于Linpack測試的函數(shù)庫就成為阻礙性能進一步提升的主要因素。
在Linpack測試過程中,要大量地調用函數(shù)庫進行運算,因此,數(shù)學庫的運算效率就成為影響Linpack測試的重要因素之一。
Linux版的函數(shù)庫是日本的Goto博士寫的。Goto把數(shù)學庫的性能優(yōu)化到了極致,CPU從算出數(shù)據(jù)到數(shù)據(jù)傳送再到下一步計算,中間幾乎沒有等待,這與日本企業(yè)的準時生產方式很相似。在計算機領域,人們常用牛人來表達對技術頂尖高手的敬仰,而Goto絕對是一個牛人,他一個人寫的數(shù)學庫的效率打敗了世界上其他做高性能計算數(shù)學庫的人或者團隊。x86 CPU廠商提供的Windows版本都是由多人組成的團隊編寫的,然而,他們寫的卻比Goto的在效率上相差5%左右。
于是,李銘他們開始調用微軟總部的資源,由總部出面請在德州理工學院做訪問學者的Goto為Windows寫數(shù)學庫。憑借Goto寫的數(shù)學庫,微軟在曙光5000A單節(jié)點樣機上跑出了86%的好成績。
但這個單點成績的說服力并不強,因為曙光5000A有1920個節(jié)點,而Windows常常被人詬病的是加速比,也就是說當節(jié)點數(shù)增加時,性能不能線性提升。而高性能計算涉及到大量的節(jié)點并行計算,只有證明加速比不比別人差,你的單點效率優(yōu)勢才會被認可。
天津基地初露鋒芒
馬上要進行32節(jié)點測試了,到底是先測Linux還是先測Windows?曙光技術支持中心總經(jīng)理邵宗有需要一個答案。
邵宗有找來了曙光的測試工程師詢問Linux測試結果,工程師的回答有點含糊:不是85%就是87%。
“到底是85%還是87%?”邵東友盯了一句。工程師的回答是85%。
邵宗有感覺Windows的測試結果好一點兒,打算先用Windows試一試32節(jié)點的運行效果。
曙光體驗中心的電源和制冷條件無法滿足更大規(guī)模的測試要求。在曙光天津產業(yè)基地進行小批量試產后,7月上旬,葉向宇和敖翔趕到了距天津市區(qū)5公里之外的曙光基地。在老化車間內,他們開始實地測試Windows HPC 2008的擴展性。
曙光原本給他們安排了3天的測試時間。葉向宇心里盤算著,如果一切順利,32節(jié)點的測試可能1天左右就可以結束。但是3天過后,依然進展不大。遇到種種奇怪問題的微軟HPC團隊,有些束手無策。路只有一條——反復集中各種現(xiàn)象和突出問題。這時候葉向宇只能硬著頭皮與邵宗有協(xié)調,爭取更多的時間。
經(jīng)過將近4天測試,他們從操作系統(tǒng)層面到節(jié)點硬件、網(wǎng)絡路由逐一排查,終于查到了故障原因。葉向宇和敖翔,從1個結點、2個結點、4個結點、8個結點一直按照這樣的規(guī)則進行加倍測試,直到32個結點。性能只下降了2%,運算效率達到84%,幾乎實現(xiàn)了節(jié)點數(shù)與運算能力的線性擴展。
后來證明,這4天是非常值得的。如果不是及早發(fā)現(xiàn)網(wǎng)絡路由方面的問題,到時候根本不可能完成1920個節(jié)點的測試。
再續(xù)“車庫傳奇”
32節(jié)點測試完畢后,曙光開始著手搭建曙光5000A。
1920個節(jié)點的曙光5000A重達50噸,耗電高達1MW,能滿足電力、制冷、承重等多個條件的地方確實不多。輾轉之后,他們看中了中科院計算所的地下車庫。
然而,正值奧運,而搭建臨時測試環(huán)境就要架鋼梁、接水管,氣焊所需的乙炔屬于易燃易爆品,在奧運期間禁止運輸。
9月1日,車庫全部清空,曙光的施工隊伍開進現(xiàn)場。多虧曙光5000A的機柜供應商艾默生承接了奧運場館相關設備維護的任務,擁有易燃品運輸?shù)耐ㄐ凶C,及時焊接了鋼梁,保證了施工進度。
經(jīng)過10天奮戰(zhàn),他們完成了包括配電安裝、水管焊接,以及架鋼梁、機柜等機房骨架搭建,節(jié)點也架起來一部分。
9月11日,包括秘書、財務等行政人員在內,曙光公司幾乎傾巢出動,一天就將現(xiàn)場共計700條,總長達60公里的光纖全部部署完畢。
測試現(xiàn)場各方面情況相當簡陋,由于測試要求嚴格的無塵環(huán)境,占地達2000平方米的數(shù)據(jù)中心幾乎完全不通風,只有一個門可供出入。測試過程中50個機柜的散熱風扇同時工作發(fā)出的噪音,特別是冷卻水泵發(fā)出的刺耳噪聲非常大,整體環(huán)境噪音接近70分貝,讓人難以忍受。
9月12日,曙光和微軟的測試團隊進駐測試現(xiàn)場,聶華親自坐鎮(zhèn)。此時,距離Top500的提交時間只有不到20天了。
走上500強擂臺
曙光和微軟用了3天時間完成部署,9月15日,開始按照1、2、4、8、16、128、256、512、1024的節(jié)點倍數(shù)開始測試。測試超過1024個節(jié)點時,按照每次測試256個節(jié)點線性遞增。
到測試1300個節(jié)點時,運算效率突然開始大幅下降。測試到1556節(jié)點時,系統(tǒng)反應速度變慢,圖形界面處于崩潰邊緣,網(wǎng)絡延時也出現(xiàn)了時大時小的不穩(wěn)定現(xiàn)象。
聯(lián)合測試團隊排查發(fā)現(xiàn),問題很復雜。合作之初,有脫節(jié)現(xiàn)象在所難免。微軟在查軟件問題,曙光在查硬件故障,雙方溝通很少。于是,聶華下了死命令,聯(lián)合查找,盡快把有問題的節(jié)點和故障篩出來。聶華的一個“土辦法”起到了大作用——用白板對故障定位,對所有節(jié)點進行統(tǒng)一編碼,并在白板中標出故障節(jié)點的編號,從而使得故障節(jié)點的數(shù)量和位置一目了然。
在排查過程中發(fā)現(xiàn),InfiniBand網(wǎng)卡、主板、內存、交換機、網(wǎng)絡優(yōu)化、節(jié)點和操作系統(tǒng)都存在或多或少的問題。
問題層出不窮,有些事甚至讓人感到不可思議。比如,有一次機箱內的PDU(電源分配器)因質量問題燒毀,他們決定對所有節(jié)點下電,花了兩天的時間更換了所有PDU。系統(tǒng)重新上電后,網(wǎng)絡卻處于癱瘓狀態(tài)。 聶華逐一檢查網(wǎng)線后,發(fā)現(xiàn)有個交換機上多插了一根網(wǎng)線。聶華拔掉這根多余網(wǎng)線后,系統(tǒng)還是不能正常工作。于是大家忙著調整硬件、換硬件,甚至動用了全套的備用網(wǎng),結果還是丟包。聶華一度懷疑可能是系統(tǒng)中病毒了,當時都動了將所有系統(tǒng)重裝一遍的念頭。無奈之下,聶華對全系統(tǒng)實行了一次關機。重新啟動,系統(tǒng)正常了。
回過頭來仔細一分析,才發(fā)現(xiàn)問題出在頭節(jié)點上。WHS 2008要求按先頭節(jié)點,后其他節(jié)點的順序啟動。當時網(wǎng)線的錯插已經(jīng)造成了WHS 2008的混亂,所以,需要來個類似PC上的硬啟動。由于Linux系統(tǒng)中節(jié)點都是平等的,難怪Linux經(jīng)驗豐富的聶華這次也被難住了。
9月28日,曙光5000A的浮點運算能力達到87.6 T,曙光將這個不太令人滿意的結果提交給Top500。一天之后,系統(tǒng)運算能力突破達到116.3 T,曙光馬上向Top500提交更新,從而在10月1日報名截止之前,拿到了Top500的參賽證。
“特種兵”來了
9月30日,從法國來了一個給曙光5000A調優(yōu)的微軟HPC“特種兵”——老夏。這個老外是專門做大項目性能測試的,被認為是微軟做HPC的兩大“牛人”之一。而此前,微軟也只有他在Windows上成功測過1000個節(jié)點的高性能計算機??衫舷倪€是低估了這次測試的難度,他本以為1周時間就可以收工,以至于他的簽證并沒有足夠長的時間。
國慶期間,大家都放棄了休息。10月4日,當節(jié)點數(shù)增加到1834時,按照李銘的預計,性能將達到130T以上,而結果卻只有121T。
在121T的點上,測試性能的數(shù)字一度停滯了,系統(tǒng)開始運行緩慢,作業(yè)難以提交。這讓包括聶華在內的所有人都心急如焚。
提高Linpack測試提高效率最有效的兩個途徑,一是找出最優(yōu)的參數(shù),二是擴大問題規(guī)模。而目前兩方面都出了問題,請老夏來,就是希望能憑借他的經(jīng)驗,重新調參數(shù)。
規(guī)模擴大帶來運行緩慢問題也被排查出來,癥結出在SQL Server數(shù)據(jù)庫上。這個數(shù)據(jù)庫用來管理所有節(jié)點和作業(yè)的狀態(tài),每一個資源變化,都要寫一次數(shù)據(jù)庫。同步把單條變化寫入的做法,在規(guī)模小于1000個節(jié)點的時候,可以表現(xiàn)出非常好的易管理性。但隨著規(guī)模擴大,需要寫入的變化增多了,出現(xiàn)了擁塞現(xiàn)象,后續(xù)操作要排隊等候。他們向美國總部求助,修改了一小段源碼,把數(shù)據(jù)庫操作由同步單條寫入改成了異步批量寫入,很快解決了問題。
其實,老夏剛到中國就感到了壓力,10月7日下午,聶華按照測試進度時間表向李銘發(fā)出了最后通牒。從這一天開始,所有人都開始連軸轉地工作。就在這段時間,聶華創(chuàng)下了三天兩夜守在機房的記錄,微軟項目組成員分成兩班倒,李銘和敖翔一班,葉向宇和李浩然一班。老夏也入鄉(xiāng)隨俗,一大早就來到車庫,一直干到凌晨一兩點,這幾乎相當于他平常兩天的工作量。大家白天修故障機器、調參數(shù),晚上夜深人靜的時候就提交作業(yè)。
10月9日凌晨,李銘提交了一次作業(yè),換班休息。在回家路上,他有些灰心了。盡管如此拼命,故障節(jié)點還是會經(jīng)常導致作業(yè)失敗,網(wǎng)絡路由問題很大,但Voltaire公司在國內人力有限,國外人員遲遲沒有到位,不斷調試參數(shù)也沒有使性能取得實質性突破,成功希望渺茫。或許這一走,他就不用再回測試現(xiàn)場了。
轉機在凌晨四點多出現(xiàn)了?!拔覀儨y到了140T!”睡眼惺忪的李銘接到曙光刀片技術部負責人沙超群打來的電話,他一下子又興奮起來。這意味著,在聶華設定的最后期限——中午12點之前,微軟再次保住了留下來的資格。
這次成功主要是因為解決了節(jié)點穩(wěn)定性問題,有故障的點開始收斂,大部分硬件問題已經(jīng)被解決掉了。盡管波折很多,但140T其實是最苦的,對聶華和李銘都是如此。這是個里程碑式的數(shù)字,但離曙光當初向外界公布的160T還有一定差距。
男兒有淚不輕彈
如同黎明前的黑暗,聶華和微軟的項目組成員備受煎熬。從140T到160T,他們又開始了一段艱難歷程。李銘向聶華承諾,只要解決好節(jié)點穩(wěn)定性和網(wǎng)絡路由優(yōu)化中的其中一個問題,他們就有信心調優(yōu)沖到160T。
可問題是,時間太短了!節(jié)點穩(wěn)定性只能一邊工作,一邊在運行中烤機,而長時間烤機又是達到穩(wěn)定性的必要步驟。優(yōu)化網(wǎng)絡路由也主要寄希望于Voltaire公司,畢竟只有他們才最熟悉自己的產品。
就在舉步維艱的時候,事情再次有了轉機,而這僅僅是140T性能指標出來后的第二天。10月10日,Voltaire公司派來的一名叫尼爾的技術支持人員趕到中國,他全力協(xié)助項目組繼續(xù)做路由方面以及網(wǎng)絡系統(tǒng)方面的優(yōu)化,一切都在向好的方向發(fā)展。
時間越逼近數(shù)據(jù)提交截止日11月1日,每個人身上感受到的壓力就越大。盡管聶華不說,但每個人都能感受到他度日如年的焦慮,弦繃得越來越緊了。在160T久攻不下的情況下,李銘和微軟項目組的成員商量走走上層路線,請微軟中國研發(fā)集團總裁張亞勤與曙光董事長李國杰院士見一面,順便減輕一下李銘他們的壓力,時間約定在10月13日上午九點半。
就在見面當天的7點50分,進行過網(wǎng)絡優(yōu)化的系統(tǒng)終于沖上了一個值得紀念的新臺階——167T,這是一個皆大歡喜的結果。高層會面如期進行,只不過談論的話題與李銘他們的初衷大不相同了。
“咱們沖到160T那天一定得喝頓大酒慶祝一下?!?聶華很早就說過。這天晚上,再次提交一回作業(yè)之后,聯(lián)合項目組的20多名成員齊齊來到位于北京四環(huán)邊上的水岸紹興,聶華拿來了四瓶軍需特供茅臺,一醉方休。也只有這一天,聶華和微軟項目組成員都沒有值班。
這些漢子們平時都很少哭,可這一次,沒有一個人能例外,包括老夏。項目組所有人承受了太久的壓力,終于有了一個釋放的出口。喝酒之前是慶功,喝到一定程度時,在場的所有男人們都開始流淚。如果說,前面無論再難,大家都咬牙挺著,有遲疑,有搖擺,但大家始終沒有放棄。而當承諾兌現(xiàn)的那一天到來時,這種放松和喜悅,也許唯有恣意流淌的眼淚才能表達。
喝慣了紅酒的法國男人老夏不知道茅臺的厲害,一杯接著一杯往下咽,出門的時候,兩次掉進餐廳人工布景的水溝。他開始漸漸理解讀懂了曙光和微軟的這些中國人,明白自己究竟加入了一支怎樣的團隊,所有人又為什么能在工作中如此拼命,他們是在為理想和信念而戰(zhàn)。
其實聶華也非常后怕,如果沒能測到160T以上,他該怎么向曙光交代,曙光又怎么向外界交代……盡管這個數(shù)字,是他根據(jù)多方數(shù)據(jù)參考推定的。但在10月13日之前,他甚至開始后悔當初怎么就把這個數(shù)字輕易說出了口。
驚艷一躍
沖破了160T,在聶華心中已經(jīng)算達到80分了,后面做的就是心態(tài)較為放松的附加題了。直到這時,項目組才開始設想排名的事情。聶華提出了新目標,沖進Top500前十名。而綜合分析2008年6月的Top500榜單,較為穩(wěn)妥的就是沖過180T(6月榜單中180T的系統(tǒng)排名第六)。如果超過180T還排不進前十,那就是天意了;而如果只差一點兒沒到180T,那也就從滿分又退回了80分。聶華下定了決心。事實證明,這個判斷是正確的。
167T的成績出來后,項目組松懈了一段時間,有兩天工作效率還比較低。但他們很快調整了狀態(tài),鉚足了勁兒沖高。老夏因為簽證到期,18號不得不走了,臨走前,大家讓老夏提交了一次作業(yè),希望給這個老外一份最好的禮物,可惜失敗了。老夏擁抱作別他的同事,有信心,也有遺憾,李銘又一次落了淚。
一直測到10月25日,又一個新成績出來了,174.9T,這個結果已經(jīng)大大超出微軟美國產品部的預期了。當時的作業(yè)量已經(jīng)很大了,也用滿了1920個節(jié)點。但作業(yè)規(guī)模上去以后,運算時間延長了,出問題的概率也增加了,所以項目組成員還是如履薄冰地操作每次作業(yè)。
10月25日已經(jīng)是聶華規(guī)定的最后期限了,后續(xù)還有其他工作在排隊等候。但畢竟離180T僅有一步之遙,所有人都不甘心,聶華又給了一天機會。10月26日,一個似乎是上天與他們開玩笑的數(shù)字出現(xiàn)了,179.8T,離目標近在咫尺。這個結果不錯,但又的確差那么0.2T,就像跳高冠亞軍之別,不是成績不好,只是那細微的差別帶來了太大的遺憾。
不止聶華,項目組所有人的心情都很復雜。聶華咬咬牙,再次壓縮排期,給項目組多擠出一天,28日晚上12點是聶華的時間底線了。李銘他們繼續(xù)把作業(yè)規(guī)模擴大到N值為220萬以上,28日早上,操作又一次失敗了,而這個作業(yè)當時已經(jīng)運行了五個小時了,如果它能正常完成,成績約為185T。
時間讓項目組不得已做出了最穩(wěn)妥的選擇,把作業(yè)規(guī)模降到了N值為200萬的量值。以他們開發(fā)的小工具的測算,這次作業(yè)剛剛能超過180T。這次作業(yè)在28日下午開始提交,人們都有些敏感了,現(xiàn)場開始清場,門也鎖上,就希望把人數(shù)降到最低,沒有任何干擾。
在這段等候最終結果的八個半小時中,聶華、李銘、曹鎮(zhèn)男(曙光技術支持中心副總經(jīng)理)、沙超群是最后成績的見證者。晚上11點左右,終于得出了180.6T的結果。現(xiàn)場沒有鮮花彩帶和掌聲,甚至連四個男人的歡呼雀躍都沒有。這個成績讓所有人都很滿意,但大家卻顯得異常平靜。
此時,曙光Linux測試人員已經(jīng)待命,他們要連夜趕裝Linux,進行后續(xù)的其他驗收項目測試。剛剛測出180.6T成績的曙光5000A狀態(tài)不錯,聶華想了想,決定再沖一次,最終因為某個節(jié)點出現(xiàn)故障,作業(yè)還是失敗了,時間不允許他們再做嘗試。
成績定格在180.6T,這是一個讓所有參與的人都感到欣慰的結果。
10月29日凌晨4點,聶華和李銘準備離開,他們回頭最后望了一眼,關好了車庫大門。
4個小時以后,曙光Linux團隊開始進駐。
尾聲
2008年12月9日,曙光在深圳明華國際會議中心舉辦了曙光5000A深圳站的發(fā)布,曙光也借此機會答謝曙光5000A的合作伙伴。會后大家聚在一起,聊起來,又像是開了一場“控訴會”。原來大家都有過被聶華逼著加班加點趕進度的“慘痛”經(jīng)歷,而且不僅李銘收到過聶華的最后通牒,幾乎在場的每家供應商,網(wǎng)絡、交換機、板卡、主板等廠商,都有過被聶華下過最后通牒的“恐怖”遭遇。
聶華也承認,所有的合作伙伴都被他“威脅”過。但是沒有辦法,因為曙光5000A的研發(fā)過程涉及到復雜的項目管理,特別是從9月1日計算所地下車庫開始改造到10月1日必須提交測試結果,大家都必須按照這個時間表同步進行。就拿曙光5000A大量使用的光纖為例,這種光纖世界上只有三家公司能夠生產,而且日產量很小。因此,聶華要求光纖廠商每日隨生產隨發(fā)貨,這邊隨收貨隨安裝。與其說是在聶華的威脅下,倒不如說是在參與曙光5000A帶來的品牌提升的誘惑下,這家光纖廠商最終讓聶華的威脅得逞了。
聶華的威脅并不是外強中干,當他跟李銘說不行就換Linux時,他的底氣在于計算所和曙光對Linux太熟悉了,曙光4000A的Linpack就是在Linux下運行的,而且Top500中的大機器已經(jīng)證實了Linux的擴展性,因此,曙光5000A上Linux應該更有把握。
但曙光最終選擇Windows,聶華道出其中的原因有三:一是做了別人不敢做的事情,對曙光的能力是個極大的提升;二是證明曙光5000A是全球最大的通用計算機,既可以跑Linux也可以跑Windows;三是與微軟合作有利于拓展基于Windows的應用空間。
提起12月9日,人們就會想起“一二?九”運動帶來的愛國精神,而深圳則是國家華南超級計算中心所在地。以龍芯CPU擔綱的千萬億次高性能計算機——曙光6000有望在2010年落戶華南超級計算中心。
在國際高性能計算領域的巔峰,我們看到了民族的曙光。
后記
元月11日,時逢周日,頂著深冬京城凜冽的寒風,李銘、葉翔宇和本文的3個作者走進了位于金源購物中心一層的上島咖啡。應該跟上島道上一句歉,因為我們除了有個人要了一份套餐外,就靠一壺清茶支撐著,從晚上7點開始,聊過9點半購物中心的打烊直至10點半。第二天中科院計算所智能計算機中心張佩珩副主任不僅為我們詳細介紹了計算所在高性能計算預研和曙光5000A研發(fā)過程中的關鍵作用,而且還帶我們到地下車庫,對曙光5000A做了詳細的介紹。第三天,聶華又撥冗跟我們聊了近2個小時。
本文所有的素材均取自對上述各位嘉賓的采訪,只是因為故事性很強,我們嘗試著換一種寫法。
在采訪過程中,我們感觸最深的是,曙光5000A作為一個非常復雜的系統(tǒng),涉及到多家合作,這里面既有國別的差異,也有企業(yè)文化的不同,但大家目標一致,頂住時間上的壓力,不計得失,夜以繼日,終成正果。通常,系統(tǒng)聯(lián)調遇到問題時,最容易出現(xiàn)扯皮現(xiàn)象——大家極力要把自己擇出來。但曙光和微軟的測試團隊則相互理解、相互支持,有問題先查自己。有過系統(tǒng)抓總經(jīng)歷的人都明白,這是至關重要的。
還應該提到的是李銘他們敢于冒險、勇于承擔責任的精神和吃苦耐勞的實干,在我們對外企的多年采訪經(jīng)歷中還是第一次遇到。這可能也得益于微軟中國研發(fā)集團的研究文化,Google標榜其工程師可以有20%的自由支配的時間,而微軟中國研發(fā)集團的文化可以容忍李銘他們在一段時間內100%地支配自己的時間,而且還瞞著他們的老板。
最后應該強調的是,Linpack測試只是衡量曙光5000A系統(tǒng)的極限計算能力,與目前用戶的應用模式有著很大的差異,曙光5000A的硬件設計是為用戶的應用而非沖擊Linpack而優(yōu)化的。我們從計算所、曙光和微軟都聽到了這種答案。