在黃小猛老師(清華大學超算參賽隊伍的帶隊老師)的帶領下,記者走進一清華實驗樓里的一間小屋,最先映入眼簾的是一張單人床,上面放著簡單的被褥,還有一個圓桌擺在屋子的正中央,占據(jù)了小屋的大半部分面積……這就是清華大學“夢之隊”的工作室?ASC2013冠軍隊就是在這么簡陋的環(huán)境下誕生的?就在這樣一個與想象中相去甚遠的場所中,在滿是疑惑的思緒中,開始了采訪……
在介紹采訪內(nèi)容之前,筆者認為有必要先簡單介紹一下ASC大賽的背景和比賽規(guī)則:
ASC亞洲大學生超級計算機競賽是由中國倡議成立,日本、俄羅斯、韓國、新加坡、泰國、中國臺灣、中國香港等國家和地區(qū)的超算專家和機構聯(lián)合發(fā)起和組織,是與美國SC、德國ISC大學生超算大賽并駕齊驅的全球三大超算賽事之一,2013年是第一屆。中國大陸高校的前兩名可獲得參加6月份在德國舉行的ISC13國際大學生超級計算機競賽資格。
各參賽隊由6名在校大學生組成,參賽學生必須為具有該校正式學籍的全日制在校本科生。每支參賽隊伍可配一名指導老師。參賽隊伍需按照競賽評審委員給出的統(tǒng)一命題,在規(guī)定時間內(nèi)獨立完成超算系統(tǒng)方案、測試、優(yōu)化工作并提交書面報告,由評審委員會統(tǒng)一評定。
各參賽隊伍需要在3000瓦的總功耗約束條件下構建小型超算系統(tǒng),并調(diào)試達到其最高運算性能。在應用考核上設置了五個應用進行測試和優(yōu)化:用于測試超級計算機系統(tǒng)浮點性能的Linpack測試、研究生物分子體系的分子動力學應用GROMACS等四個國際常用應用測試,以及組委會特別設置的“基于期權定價應用BSDE”的MIC眾核并行優(yōu)化試題。其中前兩道題是可以自由選擇計算平臺,只有BSDE是必須使用MIC架構進行并行優(yōu)化。
從參賽隊伍的組建到比賽的結束,僅有三個月的時間,這三個月的時間里,要完成參賽隊伍的組件、架構選擇、應用調(diào)優(yōu)、測試等過程。選人組隊,當然是競賽的第一步!
夢之隊——一支具有“對抗性”和“策略性”的隊伍
在交流的過程中,記者發(fā)現(xiàn),清華大學參賽隊伍是一個充滿“對抗性”和“策劃性”的隊伍。
策劃性,主要是因為在比賽的每一個環(huán)節(jié),清華都經(jīng)過了非常強的策劃手段,包括隊員選拔、架構選擇、應用調(diào)優(yōu)等方面,這些策略后文都會提到。
對抗性,是因為清華的這6名隊員每一個都是實力非常強,在編程方面具有非常豐富的經(jīng)驗,有的甚至從初中就開始編程,并且團隊協(xié)作非常之默契。隊長徐持衡、負責硬件和系統(tǒng)的金昊衠、王欣亮、王凝枰(唯一一個大三的,其他都是大四的)、駱可強,去年參賽隊的隊長擔任黃小猛老師的助手。“參賽隊員每天在這邊工作的時間差不多14個小時左右,從早上到晚上一兩點鐘”,黃老師告訴記者,他說的“這邊”就是采訪的那間小屋。
從隊員的組成來看,清華的隊員們都是計算機專業(yè)的本科生。然而,從比賽的應用來看,物理、航空航天等專業(yè)的學生可能更熟悉比賽的應用程序。當記者問到,有沒有考慮過選擇其他專業(yè)的學生做隊員時,黃小猛表示,“從比賽奪冠的角度來說,只有計算機系的最好。因為就算是搞物理的,真把應用本身看懂了,再把代碼調(diào)優(yōu)了,三年時間也未必能做到。而我們只有三個月的時間,那只能是盡我們所能做到比別人強一點點”。
窮舉法確定架構——GPU是最優(yōu)組合
主辦方規(guī)定BSDE應用必須使用MIC架構進行并行優(yōu)化,因此,不涉及到硬件平臺的選擇方面,主要的工作集中在軟件調(diào)優(yōu)。還有其他的四個應用,如何選擇計算平臺?這才是難點所在!
可以用純CPU計算,也可以用CPU加上GPU或者是MIC,還可以用CPU+GPU+MIC,到底該如何選擇? 3000W的功耗也限制了計算節(jié)點的數(shù)量,如何才能在有限的功耗范圍內(nèi)實現(xiàn)最高的計算速度?在計算平臺的選擇上,清華大學采用了窮舉法,在3000W的功耗范圍內(nèi),對所有可能的組合進行測試,光是確定平臺就花了兩到三周的時間。
“最終,我們帶了10塊GPU卡參賽”,黃小猛在采訪中談到,“我們最先想到的是4塊MIC+6塊GPU,帶幾臺CPU,后來沒裝,因為功耗比劃不來,在規(guī)定的能耗之內(nèi)效率上不去,沒有達到我們期望的必勝的效率。”
“MIC經(jīng)常會莫名其妙的變成互聯(lián)MIC,我們拿到的是被動散熱的卡,一旦溫度過高后,就會限頻,限頻后溫度降下來,頻率卻沒法回到原來那么高,會比原來更慢一些。還存在散熱的問題,因為那個MIC卡是3000瓦的被動散熱,一般情況下被動散熱不可以做到那么高。另外,服務器跟MIC卡之間也不是特別兼容”,其中一個隊員補充道,“MIC跟GPU的編程模式不太一樣, GPU的編程模式需要自己指定,英特爾的MIC是自動指定,并且完全不知道bug出在哪,性能不好也完全不知道怎么回事”。
事實上,盡管其他四個可以自由選擇平臺的應用都采用了GPU+CPU的機器,但其中真正用到GPU加速的只有OpenCFD和Linpack兩個,另外兩個應用——WRF和Gromacs只是把GPU放進去了,主要是因為這兩個題目非常復雜,國外也沒把它改成GPU版。
賽場策略——穩(wěn)中取勝
“田忌賽馬”的故事告訴我們,隊伍的實力并不一定和比賽的結果成正比,比賽的結果很大一部分程度取決于戰(zhàn)略。盡管清華夢之隊實力非凡,但策略方面,也絕對不輸旁人。
當時比賽有五個應用,其中有一個應用是比較開放的,代碼量比較小,方便大家去調(diào)整代碼,做特別大的優(yōu)化。
在那個應用我們優(yōu)化到了幾萬倍,然而,這種方法也存在著風險——因為方法相對來說比較激進,可能會被組委會的人質疑,比如說算法去掉了一些部分或者算的不精確。究竟是不是該采取這樣激進的辦法?
經(jīng)過綜合衡量,夢之隊決定采用穩(wěn)中制勝的策略。“因為當時我們的成績已經(jīng)算領先一部分了,于是我們采取更保守的策略穩(wěn)中取勝。結果比下來發(fā)現(xiàn)有人比我們更快,于是后來我們不擔心這個事情了,大家都很開心地把比賽比完了”,一個隊員告訴記者,臉上洋溢著回味和自豪笑容。
夢之隊,一只充滿夢想和希望的隊伍,在他們的身上,我問到了青春的氣息。