受訪者供圖
凌晨1點46分,鐘發(fā)海終于將所有的參賽作品提交到2018ASC世界大學(xué)生超級計算機競賽組委會郵箱。幾個小時前,他和團隊成員還在編寫腳本,處理最后一遍審核作品時發(fā)現(xiàn)的格式錯誤。
ASC世界大學(xué)生超級計算機競賽(簡稱“ASC超算競賽”)由中國發(fā)起組織,由亞洲超算協(xié)會和中國浪潮公司聯(lián)合主辦,是世界上最大規(guī)模的超算競賽,與美國SC、德國ISC并稱為國際三大超算賽事。2018年初,我校物理工程學(xué)院的羅榮輝副教授和河南省超級計算機中心的尚遠博士,從有計算機相關(guān)比賽經(jīng)驗的同學(xué)中挑選出6名本科生,組成了鄭州大學(xué)代表隊:物理工程學(xué)院2016級的鐘發(fā)海、2015級的馬天翔,力學(xué)與工程科學(xué)學(xué)院2015級的孔文雁,臨床醫(yī)學(xué)系2013級的郭佶睿,以及國際學(xué)院2015級的耿金貴、2016級的劉旭。2018年5月,他們代表學(xué)校參加了2018ASC世界大學(xué)生超級計算機競賽,與來自全球高校的300多支隊伍進行了角逐,最終獲得二等獎的好成績。
此次ASC超算競賽的題目為復(fù)合型,要求參賽隊伍在3000瓦功耗約束下自行搭建超算系統(tǒng),運行和優(yōu)化國際通行基準(zhǔn)測試HPL系統(tǒng)和基準(zhǔn)測試HPCG系統(tǒng)、2017年諾貝爾化學(xué)獎冷凍電鏡技術(shù)的核心應(yīng)用RELION系統(tǒng)以及微軟人工智能閱讀理解系統(tǒng)。團隊成員在此之前從未受過專業(yè)的系統(tǒng)訓(xùn)練,對計算機底層原理的認知不夠深入,所以在提升運算速度方面存在很大困難。計算機底層原理的運用為何如此重要?鐘發(fā)海舉例說:“比如計算π的值,用普通計算機編程知識編寫程序,可能需要十幾秒才能算出結(jié)果,但是運用計算機底層原理知識,例如循環(huán)展開、寄存器等,可以讓硬件的性能得以最大限度的發(fā)揮,運算速度能夠提高十幾倍?!?br> 為了尋找解題思路,團隊成員在現(xiàn)有知識和經(jīng)驗的基礎(chǔ)上,查閱了百余篇英文文獻。遇到自己不懂的計算機底層原理專有名詞,他們就一個一個地查字典,力求準(zhǔn)確掌握、理解透徹。在解決RELION題目時,馬天翔發(fā)現(xiàn)了自己在基礎(chǔ)知識上的欠缺,于是他從零開始學(xué)習(xí)大部分計算機專業(yè)學(xué)生都沒有接觸過的Linux操作系統(tǒng)。
在團隊里,郭佶睿主要負責(zé)硬件構(gòu)建,包括CPU、顯卡等硬件的選擇和組建以及系統(tǒng)裝配,孔文雁負責(zé)基準(zhǔn)測試,鐘發(fā)海和馬天翔負責(zé)2017年諾貝爾化學(xué)獎冷凍電鏡技術(shù)的核心應(yīng)用RELION的題目,耿金貴和劉旭負責(zé)人工智能閱讀理解的題目。由于團隊成員來自不同的校區(qū)和院(系),工作內(nèi)容又各有分工,所以他們大部分時間選擇在線上進行交流討論,討論出新的思路或方案后又埋頭于各自的工作。
郭佶睿雖然是臨床醫(yī)學(xué)系的學(xué)生,但是他對無線電技術(shù)十分感興趣。他是信息工程學(xué)院無線電協(xié)會的一員,多次參加有關(guān)無線電通訊類的比賽,對計算機硬件及網(wǎng)絡(luò)有比較深入的了解。但是參加此次比賽,他卻面臨著一個巨大的難題———缺少構(gòu)建超算平臺所需的硬件?!扒蓩D難為無米之炊”,這讓有過ASC大賽經(jīng)驗的郭佶睿相當(dāng)頭疼。硬件的缺失幾乎讓整個團隊寸步難行,沒有硬件就無法搭建超算平臺,也就無法進行項目測試。
面對困難,團隊成員并沒有氣餒,想盡各種辦法來克服困難、創(chuàng)造條件??孜难阍趤嗰R遜等平臺上租用超算服務(wù)器對自己的項目構(gòu)思進行測試?!坝捎谑峭ㄓ玫姆?wù)器,所以很不穩(wěn)定,需要長時間盯著,非常耗費精力,速度也很慢。”孔文雁說。耿金貴和劉旭也同樣受到硬件缺失的影響,他們選擇了更加直接的方法:“我們?nèi)ゾW(wǎng)吧通宵,選擇了幾臺顯卡配置為GTX1080Ti的電腦,臨時搭建了一個超算平臺,盡可能地提高人工智能回答問題的準(zhǔn)確度。”
為了合理調(diào)配手中的資源,隊員們根據(jù)各項任務(wù)的緊迫程度制定了一個時間表,以保證在同一時間段內(nèi),超算平臺只“跑”一組數(shù)據(jù),從而提高整體效率。鐘發(fā)海說:“這就好比是一個水管,如果接5個水龍頭,雖然每個都能出水,但出水量都很小,如果只接一個水龍頭,出水量卻要大得多。”為了節(jié)約運算資源,他們減少了運算數(shù)據(jù)量,通過小容量的測試來對自己的想法進行原理性驗證。“沒有運算資源的時候,我們就查閱資料,分析一下現(xiàn)有成果,再做一些設(shè)想,一旦手頭有可用的計算資源,就馬上驗證我們的設(shè)想?!惫ヮUf。
所謂人工智能機器閱讀理解,就是需要參與者自行設(shè)計神經(jīng)網(wǎng)絡(luò)模型,讓人工智能機器來回答大賽指定的問題。為了盡可能地提高準(zhǔn)確率,劉旭和耿金貴不斷調(diào)整參數(shù),改變內(nèi)部網(wǎng)絡(luò),從而使準(zhǔn)確度評分大幅度提升,達到31.74分。
運行RELION系統(tǒng),就是執(zhí)行2D、3D分類以及最終3D重建的圖像分析。在這一挑戰(zhàn)中,隊員們需要合理配置運算資源以減少運算時間。最初,2D、3D分類任務(wù)需要運行9千余秒,3D重建任務(wù)需要運行8萬余秒,相當(dāng)于一天左右的時間。為了提高運算效率,隊員們對編譯器、MPI軟件、GPU等軟件進行了協(xié)同優(yōu)化,設(shè)計出合理的程序方案。不同的程序方案有不同的優(yōu)化方向,具體到某一個任務(wù)上,測試一次需要百余種優(yōu)化。為了減少計算占用的資源,鐘發(fā)海和馬天翔不得不對優(yōu)化方向進行排列組合,不斷嘗試,尋求協(xié)同優(yōu)化。在嘗試了十幾種優(yōu)化方案后,2D、3D分類任務(wù)運行時間縮短至3千余秒,3D重建任務(wù)運行時間縮短至4千余秒,運算效率分別比原來提高了3倍和20倍。
在備戰(zhàn)比賽的過程中,團隊成員一直將“Thereisnoshortpathtosuccess”當(dāng)作座右銘———“成功之路無捷徑”。在這場競爭激烈的拉鋸戰(zhàn)中,面對基礎(chǔ)差、題目難、硬件匱乏等重重困難,他們腳踏實地,迎難而上,勇于拼搏,不懈努力,滿懷著對科創(chuàng)的熱情和昂揚的斗志,在超算之路上譜寫出屬于自己的青春之歌。