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