9月11-12日,在第四屆“神威杯”國(guó)產(chǎn)CPU并行應(yīng)用挑戰(zhàn)賽上,我校計(jì)科院本科生團(tuán)隊(duì)(馬聰、張鴻宇、蔣訊、涂然,指導(dǎo)教師彭博、張全)一舉奪得唯一的金獎(jiǎng)。
這是一份沉甸甸的金獎(jiǎng),不僅因?yàn)樗莫?jiǎng)金高達(dá)10萬(wàn)元,更因?yàn)椤吧裢眹?guó)產(chǎn)CPU并行應(yīng)用挑戰(zhàn)賽(簡(jiǎn)稱CPC)在計(jì)算機(jī)產(chǎn)教研融合方面的特殊地位。

團(tuán)隊(duì)成員從左至右:蔣訊、張鴻宇、張全老師、馬聰、涂然
CPC:讓超算顯神威的礪石
超級(jí)計(jì)算機(jī)(簡(jiǎn)稱超算),被稱作“國(guó)之重器”,廣泛應(yīng)用在國(guó)防、前沿科學(xué)研究和經(jīng)濟(jì)社會(huì)生活的方方面面,也是國(guó)際科技競(jìng)爭(zhēng)的重要領(lǐng)域。超算的核心在于芯片(CPU),由江南計(jì)算技術(shù)研究所研發(fā)、搭載申威芯片的“神威”超級(jí)計(jì)算機(jī)是國(guó)產(chǎn)三大系列超算之一。
與傳統(tǒng)的串行計(jì)算不同,在超算上運(yùn)用的是并行計(jì)算技術(shù)。并行計(jì)算,是指將計(jì)算任務(wù)劃分為多個(gè)部分,分配到不同的處理單元,各處理單元相互協(xié)作、同時(shí)運(yùn)行,以達(dá)到加快求解速度或提高求解問(wèn)題規(guī)模的目的。而由于超算的稀缺性,在超算上運(yùn)行的軟件也必須“量身定制”,這樣才能充分發(fā)揮超算優(yōu)越的計(jì)算資源與性能。
但是,目前我國(guó)各大超算中心的利用率仍未達(dá)到理想水平,主要原因是既精通并行計(jì)算技術(shù)、又熟悉國(guó)產(chǎn)CPU計(jì)算平臺(tái)的人才缺乏。為此,2017年由中國(guó)計(jì)算機(jī)學(xué)會(huì)發(fā)起、國(guó)家超級(jí)計(jì)算無(wú)錫中心等單位承辦的CPC應(yīng)運(yùn)而生,其宗旨是激勵(lì)高校、科研機(jī)構(gòu)的計(jì)科學(xué)子積極參與國(guó)產(chǎn)CPU應(yīng)用的開(kāi)發(fā)與創(chuàng)新,通過(guò)產(chǎn)教研融合促進(jìn)國(guó)產(chǎn)超算平臺(tái)的產(chǎn)業(yè)化進(jìn)程和國(guó)際競(jìng)爭(zhēng)水平。
CPC賽制由初賽和決賽組成,都以國(guó)產(chǎn)超算“神威·太湖之光”為競(jìng)賽平臺(tái);初賽每屆有上百支隊(duì)伍參加,線上報(bào)名和提交作品;全國(guó)劃分4個(gè)區(qū)域,每區(qū)域前二名進(jìn)入決賽,余下參賽者按成績(jī)總排名角逐剩下8個(gè)決賽名額;決賽也在線上進(jìn)行,最后在國(guó)家超級(jí)計(jì)算無(wú)錫中心進(jìn)行驗(yàn)算和答辯。最終評(píng)選出金獎(jiǎng)1名,從有成績(jī)的決賽者中評(píng)出銀獎(jiǎng)、銅獎(jiǎng)、并行基金獎(jiǎng)若干。
看看CPC的前三屆金獎(jiǎng)得主吧,清華大學(xué)、山東大學(xué)、華中科技大學(xué)。計(jì)科院團(tuán)隊(duì)就是在這樣兩輪淘汰、強(qiáng)手如林的比拼中脫穎而出。

CPC指導(dǎo)委員會(huì)共同主席、國(guó)家并行計(jì)算機(jī)工程技術(shù)研究中心研究員漆鋒濱為我校隊(duì)伍頒獎(jiǎng)
沖冠:一次驚險(xiǎn)的“戶外穿越之旅”
計(jì)科院超算與并行計(jì)算團(tuán)隊(duì)成立于2019年7月,由本科生組成,專攻以超算為平臺(tái)的高性能計(jì)算。初生牛犢不怕虎,當(dāng)年參賽即進(jìn)入決賽,并獲得并行基金獎(jiǎng)。
今年,經(jīng)同學(xué)們推選,物聯(lián)網(wǎng)工程2018級(jí)馬聰同學(xué)擔(dān)任隊(duì)長(zhǎng),計(jì)科院再次組隊(duì),出征CPC2020。

日常訓(xùn)練
初賽就有點(diǎn)波折,團(tuán)隊(duì)未能進(jìn)入西部賽區(qū)前二名,憑總排名進(jìn)入決賽。馬聰鼓勵(lì)大家說(shuō),兄弟們,別灰心!初賽就是一道門(mén),只要進(jìn)了門(mén),修行靠個(gè)人。
決賽題目公布了,《基于非結(jié)構(gòu)網(wǎng)格的通用計(jì)算加速算法》。大家更有點(diǎn)懵圈了,什么是非結(jié)構(gòu)網(wǎng)格?有通用于非結(jié)構(gòu)網(wǎng)格的算法嗎?如何加速?
非結(jié)構(gòu)網(wǎng)絡(luò),流體力學(xué)中的概念。團(tuán)隊(duì)惡補(bǔ)了許多流體力學(xué)資料,希望找到突破口,但完全不得要領(lǐng)。
馬聰召集大家進(jìn)行“頭腦風(fēng)暴”。通過(guò)相互的思維碰撞,大家認(rèn)識(shí)到,計(jì)算機(jī)科學(xué)以數(shù)學(xué)為工具,進(jìn)行人機(jī)交互時(shí)專注于計(jì)算的形式,它完全可以剝離工程應(yīng)用的內(nèi)容。
從工程應(yīng)用的具象思維跳脫出來(lái)后,團(tuán)隊(duì)重新審題。何為“通用計(jì)算算法”?就是編寫(xiě)一套算法,首先必須適用于賽題給定的三種情形,點(diǎn)和邊構(gòu)成的幾何圖形。然后用盡可能多的算例去驗(yàn)證,因?yàn)樵跊Q賽現(xiàn)場(chǎng)要接受不少于五套算例的測(cè)試。邏輯上,這是一種歸納的方法。同時(shí),對(duì)算法進(jìn)行優(yōu)化,以求耗時(shí)盡可能短。
后來(lái)在決賽現(xiàn)場(chǎng),馬聰?shù)弥皶烆}”不是他們的個(gè)別體驗(yàn),很多隊(duì)伍都吐槽“題目太抽象了,怎么看都像是給定條件不足”。這是后話了。
開(kāi)題都這么費(fèi)勁,解題就更加不知深淺了。這就像一次戶外穿越之旅,開(kāi)題只是確定了起點(diǎn)、終點(diǎn),而中間地帶險(xiǎn)象環(huán)生,如何找到一條可抵達(dá)并耗時(shí)最短的路,就靠理性大冒險(xiǎn)---代碼編寫(xiě)了。
團(tuán)隊(duì)分工,往不同方向打探。其他隊(duì)員折返回來(lái)了,馬聰?shù)姆桨副徽J(rèn)為最可行。于是,馬聰單兵突進(jìn)。
馬聰說(shuō),編程的苦樂(lè),很難與外行言說(shuō)。但他還是盡量“科普”地分享了三個(gè)小故事。
因?yàn)樗惴ū仨氝m用于賽題給定的由點(diǎn)和邊構(gòu)成的三種計(jì)算模型,在編寫(xiě)算法時(shí),首先就要評(píng)估并選定并行策略,按點(diǎn)劃分還是按邊劃分?這好比戶外越野遇到的第一個(gè)分歧路口。馬聰說(shuō),很幸運(yùn),他的選擇被證明總體更優(yōu);而決賽時(shí)交流得知,一些強(qiáng)隊(duì)的相反選擇則影響了成績(jī)。
在調(diào)試代碼時(shí),經(jīng)常莫名其妙的出錯(cuò),腦袋凝滯到凍起。為此,馬聰去網(wǎng)吧整整“休息”了一天。恍然大悟后,改變了一下數(shù)據(jù)的存儲(chǔ)方式,就團(tuán)滅了這些bug。原來(lái),他遇到的是業(yè)界所稱的“內(nèi)存泄漏”問(wèn)題。
組委會(huì)規(guī)定,計(jì)算誤差限為10的負(fù)14次方。馬聰絞盡腦汁,誤差都只能控制在10的負(fù)13次方。幾乎絕望的情況下,團(tuán)隊(duì)向組委會(huì)反映,原來(lái)所有參賽隊(duì)都遇到此問(wèn)題。為此組委會(huì)調(diào)整了評(píng)分細(xì)則。
就這樣,經(jīng)由40天沖刺,在無(wú)錫,馬聰團(tuán)隊(duì)以算法全部通過(guò)測(cè)試算例并耗時(shí)最短的最優(yōu)成績(jī),力壓群雄,捧走了“神威杯”。

我校參賽隊(duì)在決賽中,從左至右:指導(dǎo)教師張全、涂然、張鴻宇、馬聰、蔣訊
獲獎(jiǎng),源于熱愛(ài)、勇氣和堅(jiān)持
計(jì)科院超算與并行計(jì)算團(tuán)隊(duì)成立不足兩年,CPC兩次獲獎(jiǎng),在該領(lǐng)域初露鋒芒,顯現(xiàn)了我校計(jì)科學(xué)子的學(xué)科實(shí)力。
指導(dǎo)教師彭博、張全說(shuō),CPC的結(jié)果有一定的偶然性,一些名校團(tuán)隊(duì)成績(jī)不佳甚至缺席決賽,也是正常的。但是,單憑運(yùn)氣獲獎(jiǎng)是不可能的。這次馬聰和同學(xué)們能夠奪冠,貴在對(duì)計(jì)算機(jī)科學(xué)的熱愛(ài)、勇氣和堅(jiān)持。
并行計(jì)算,計(jì)算機(jī)科學(xué)的一個(gè)高地,難!難就難在它不是純算法編寫(xiě)的,也不是純硬件設(shè)計(jì)的,而是要站在軟硬件的結(jié)合部,針對(duì)超算的結(jié)構(gòu)、性能和優(yōu)勢(shì)來(lái)編程;理論上,還要在軟硬件之間雙向調(diào)試。馬聰、張鴻宇、蔣訊、涂然等10多位同學(xué)加入超算與并行計(jì)算團(tuán)隊(duì),在老師指導(dǎo)下知識(shí)與能力日益精進(jìn)。如果不是出于熱愛(ài),誰(shuí)會(huì)知難而上呢?
馬聰有較強(qiáng)的編程能力,在報(bào)名CPC前,就系統(tǒng)研讀了“神威·太湖之光”的技術(shù)文檔,這也是他領(lǐng)銜參賽隊(duì)的原因。
報(bào)名,與名校隊(duì)伍同場(chǎng)競(jìng)技,是需要勇氣的,尤其今年在疫情之下,參賽要克服特殊的困難。在指導(dǎo)老師的幫助下,4名參賽同學(xué)提前返校,為參賽創(chuàng)造了基礎(chǔ)條件。
在面對(duì)決賽題的迷惑期,團(tuán)隊(duì)沒(méi)有一個(gè)人輕言放棄。大家精神抖擻,像一群小老虎圍著一只刺猬團(tuán)團(tuán)轉(zhuǎn),尋找突破口。在編寫(xiě)算法的沖刺期,馬聰同學(xué)說(shuō),整個(gè)人一直處于興奮狀態(tài),從不曾松懈(除了有一天在網(wǎng)吧“休息”),終于在赴無(wú)錫前完成了算法的編寫(xiě)、優(yōu)化和測(cè)試。

CPC評(píng)審委員會(huì)主席、中科院計(jì)算技術(shù)研究所張?jiān)迫芯繂T(左三)與獲獎(jiǎng)團(tuán)隊(duì)合影 左二為指導(dǎo)教師彭博
計(jì)科院在教學(xué)改革中鼓勵(lì)和扶持同學(xué)們發(fā)展學(xué)科愛(ài)好。明理樓C有整整兩層樓都是學(xué)生科技團(tuán)隊(duì)的團(tuán)部兼實(shí)驗(yàn)室,每個(gè)團(tuán)隊(duì)都有指導(dǎo)教師。馬聰說(shuō),同學(xué)們只需要交水費(fèi)就可以了。這無(wú)疑為學(xué)科競(jìng)賽提供了肥沃的土壤。
談起未來(lái)計(jì)劃,除了考研,團(tuán)隊(duì)決定參加明年的世界大學(xué)生超算競(jìng)賽(ASC),這次張鴻宇自薦當(dāng)隊(duì)長(zhǎng)。
是呀,莫惜金縷衣,惜取少年時(shí),不趁青春年少時(shí)往前沖,更待何時(shí)?