5月21-22日,2022第八屆華為軟件精英挑戰(zhàn)賽-“普朗克計(jì)劃”總決賽及頒獎典禮在深圳成功舉辦。大賽吸引了來自國內(nèi)外826所高校、3291支隊(duì)伍、2萬余名大學(xué)生報(bào)名參賽,歷時(shí)兩個(gè)多月的激烈角逐,經(jīng)過八大賽區(qū)區(qū)域初賽、區(qū)域復(fù)賽、全球總決賽等環(huán)節(jié)的層層考驗(yàn),最終,來自粵港澳賽區(qū)的“我們啥也不會”隊(duì)獲得全球總決賽冠軍。賽隊(duì)撰文分享比賽經(jīng)驗(yàn)。
一、比賽初衷
我們是2022華為軟件精英挑戰(zhàn)賽冠軍隊(duì)伍--我們啥也不會隊(duì)。“我們啥也不會”卻拿了冠軍,聽起來有點(diǎn)凡爾賽。但在我們隊(duì)伍剛開始報(bào)名參賽的時(shí)候,是完全沒有預(yù)知到冠軍這份意外之喜的。畢竟,當(dāng)初我們只是抱著重在參與的心態(tài),想通過華為舉辦的這場大型的全球性的比賽,看一看自己的編碼水平與頂尖高手的差距,然后以此激勵(lì)自己不斷學(xué)習(xí)進(jìn)步,這是我們隊(duì)伍參加華為軟件精英挑戰(zhàn)賽的真實(shí)的初衷。
二、回顧初賽
回顧這兩個(gè)月的比賽經(jīng)歷,一些場景恍如昨日。印象深刻也是讓我感覺最難的時(shí)候是在初賽階段,因?yàn)槌煽儾惶硐?,我們?nèi)齻€(gè)人可以用“寸步不離”來形容每一次的參賽方案討論。在實(shí)驗(yàn)室做比賽的時(shí)候在討論,去食堂吃飯?jiān)谟懻?,排?duì)做核酸在討論,回去寢室了還打電話討論。接著嘗試各種想法,但是收效甚微。不夸張地說,那段時(shí)間晚上睡覺閉上眼,都是想著怎么優(yōu)化。我感覺我們隨時(shí)會輸?shù)舯荣?,但是我們沒有放棄。
在距離比賽結(jié)束還剩三天的時(shí)候,我感覺大家都身心疲憊了。我們在提交完20次代碼之后,都想趕緊回寢室休息了,所以那天晚上是我們初賽以來最早離開實(shí)驗(yàn)室的一天。在回去寢室的路上,我們討論出了一個(gè)彼此都認(rèn)為會有很大優(yōu)化效果的方案。我們感覺,這次方案即將迎來了一次較大的突破。經(jīng)過不斷的編碼驗(yàn)證,快到凌晨兩點(diǎn)的時(shí)候,效果出來了,同時(shí)我們也真正地看到了希望。同時(shí)也明白一個(gè)道理,大腦需要足夠的休息它才能正常的工作。所以當(dāng)你越迫切想做出突破的時(shí)候,最好的方法就是在這之前,到戶外走走。
三、從復(fù)賽到總決賽現(xiàn)場
最終我們是團(tuán)隊(duì)第十名的成績從初賽晉級到復(fù)賽。那時(shí)候和隊(duì)友打趣說:我們現(xiàn)在起碼少了一半的競爭對手,競爭激烈程度減少一半。而且在經(jīng)過了初賽的磨練,我們對賽題有了一定的了解,同時(shí)信心也大增,很多優(yōu)化方案也是在這個(gè)時(shí)候不斷涌現(xiàn)出來。仿佛幸運(yùn)之神眷顧我們,最終我們通過復(fù)活賽晉級到了總決賽。
5月22號,在總決賽現(xiàn)場,對我們來說是最難忘最驚心動魄的一天。總決賽賽題在復(fù)賽賽題上有小改動,我們討論完之后寫了第一個(gè)版本,我隊(duì)友把代碼提交了上去,得到的結(jié)果選手程序運(yùn)行失敗。大家整體緊張了起來。然后隊(duì)友試圖轉(zhuǎn)移壓力,把代碼發(fā)給我讓我改,但我改完前后提交了三次,結(jié)果分別是選手程序運(yùn)行失敗,方案分配不合法,方案輸出格式錯(cuò)誤。腦袋嗡嗡作響,神經(jīng)緊繃。二十次提交機(jī)會已經(jīng)用掉了四次,難道我們要止步于此了?隊(duì)友跟我說要沉住,在認(rèn)真排查bug之后,我提交了第五版代碼,終于成功運(yùn)行拿到了100多萬的分?jǐn)?shù),暫排在了10幾名。此時(shí)三人都松了一口氣。不知道是緊張還是興奮,在我起身去拿水果的時(shí)候,拿水果叉的手都還在微微發(fā)抖。
在這之后,我們又討論了幾個(gè)可以降分的方案,逐步將分?jǐn)?shù)降到90萬分,84萬分,暫列第一。在知道我們暫列第一時(shí),組里雀躍了一下,我緊繃的神經(jīng)放松下來,其中一個(gè)隊(duì)友已經(jīng)開始哼起了好運(yùn)來,但我另一個(gè)隊(duì)友明顯還是特別緊張,喝了好幾杯茶,一瓶礦泉水,期間還把茶水打翻灑在了鍵盤上。好家伙,不是說把壓力轉(zhuǎn)移給我嗎?竟然比我還緊張。再之后經(jīng)過幾輪持續(xù)的討論和編碼之后,我們最終將分?jǐn)?shù)降到了79萬。此時(shí)已經(jīng)用完了所有的提交次數(shù),我們也感覺自己交了目前最好的答卷了。只能說盡人事聽天命了。
四、總決賽頒獎,我們是第一名
和貪心算法本質(zhì)一樣,在比賽封榜前我們看到自己仍是第一名的位置,就越期待自己能如愿第一,貪心一回。我們進(jìn)會場走紅毯的時(shí)候看到了放在中間的第一名的獎杯,我心里在祈禱:We are the champions!(如果你們也聽過皇后樂隊(duì)這首歌)最后,是的,我們?nèi)缭噶?!?dāng)華為云CTO張宇昕公布第一名是“我們啥也不會”隊(duì)的時(shí)候,我們?nèi)缭噶?!回顧這充滿奇跡的兩個(gè)多月,我們不僅學(xué)到了如何去團(tuán)隊(duì)合作,還明白了互相鼓勵(lì)的重要性,堅(jiān)持就是勝利的硬道理。最后引用一句在華為云組織的出海游玩的輪渡上聽魔術(shù)師在表演結(jié)束時(shí)說的一句話:當(dāng)你相信奇跡的時(shí)候,奇跡才會發(fā)生!
五、決賽方案及分析
全球總決賽的變更點(diǎn)是從第二個(gè)時(shí)刻起,在每個(gè)時(shí)刻,選手可以從 site_bandwidth.csv 中,任意選取20個(gè)邊緣節(jié)點(diǎn)。這些被選中的邊緣節(jié)點(diǎn),前一時(shí)刻所占用帶寬向當(dāng)前時(shí)刻的緩存疊加比例由 5%(下取整)調(diào)整為 1%(下取整)。
該變更點(diǎn)一出,我就發(fā)現(xiàn),每個(gè)時(shí)刻任意選取的20個(gè)邊緣節(jié)點(diǎn)只會占用下一時(shí)刻1%的緩存,此為問題的關(guān)鍵點(diǎn)。由于邊緣節(jié)點(diǎn)采用 95 計(jì)費(fèi)規(guī)則 , 那我們就應(yīng)該充分的利用不計(jì)費(fèi)的那 5%個(gè)時(shí)刻,而不同的邊緣節(jié)點(diǎn)不計(jì)費(fèi)的那5%個(gè)時(shí)刻的重復(fù)出現(xiàn)概率低,且某個(gè)時(shí)刻為不計(jì)費(fèi)的邊緣節(jié)點(diǎn)超過二十個(gè)的概率更低。因?yàn)檫@是帶寬請求的數(shù)據(jù)特性決定的,若是所有邊緣節(jié)點(diǎn)的95分位數(shù)都是接近或達(dá)到自身帶寬上限,那并沒有優(yōu)化的必要,需要做的是開更多的邊緣節(jié)點(diǎn)。而根據(jù)極端平均的帶寬請求計(jì)算,20個(gè)邊緣節(jié)點(diǎn)不計(jì)費(fèi)的5%時(shí)刻都不相同情況下,這些時(shí)刻才能湊足整個(gè)時(shí)間序列,而如果每個(gè)時(shí)刻有20個(gè)邊緣節(jié)點(diǎn)是白嫖盡量多的帶寬,那么就要使用400個(gè)邊緣節(jié)點(diǎn),實(shí)際上題目給出的邊緣節(jié)點(diǎn)個(gè)數(shù)小于等于135個(gè)。并且也可以從客戶節(jié)點(diǎn)個(gè)數(shù)小于等于35個(gè),帶寬值不大于80,000MB,而邊緣節(jié)點(diǎn)個(gè)數(shù)小于等于135個(gè),提供帶寬上限不大于1,000,000MB,進(jìn)行側(cè)面估算是否有較多同時(shí)刻為不計(jì)費(fèi)的5%時(shí)刻的邊緣節(jié)點(diǎn)。
在計(jì)算成本時(shí),某個(gè)邊緣節(jié)點(diǎn)的不計(jì)費(fèi)的5%時(shí)刻都使用滿的100萬帶寬,則因?yàn)?%的緩存疊加到下一時(shí)刻,該邊緣節(jié)點(diǎn)最少有一個(gè)時(shí)刻帶寬的大于等于5w,則95分位數(shù)也會大于等于5w,大部分情況下是無法接受的(針對不同數(shù)據(jù)集也有特例),而減少免費(fèi)使用5%的時(shí)刻,變成免費(fèi)使用大于等于2.5%小于等于5%的時(shí)刻,也會導(dǎo)致有更多的請求帶寬流分流到各個(gè)服務(wù)器的95分位數(shù),并且會導(dǎo)致中心節(jié)點(diǎn)成本增加。而現(xiàn)在將這些不計(jì)費(fèi)的5%時(shí)刻緩存疊加比例由 5%調(diào)整 1%,可以考慮填滿更多不計(jì)費(fèi)的5%時(shí)刻,也不會導(dǎo)致95分位數(shù)計(jì)算成本過大,并因帶寬流能更好的聚合而降低中心節(jié)點(diǎn)成本。而95分位數(shù)(盡量小于V=2,000MB)及以下的帶寬的5%的緩存疊加和1%的緩存疊加的差異并不大,并不需過于考慮。
不過在賽場上為了保險(xiǎn)起見,是先將選擇到20個(gè)邊緣節(jié)點(diǎn),盡量填滿選擇的不計(jì)費(fèi)5%時(shí)刻,并計(jì)算緩存時(shí)疊加比例為 1%,結(jié)果出來成本為1016805,排名靠前,想法得到驗(yàn)證和代碼沒有bug后,將20個(gè)邊緣節(jié)點(diǎn)增加到40個(gè)甚至50個(gè),成本進(jìn)一步降低,最終達(dá)到79w。
而實(shí)際輸出時(shí)選擇哪些邊緣節(jié)點(diǎn)為緩存疊加比例為1%的答案是,只需每個(gè)時(shí)刻(從大到小排序得到)使用最大帶寬的20個(gè)邊緣節(jié)點(diǎn)作為下一時(shí)刻的輸出即可,根據(jù)上述的估算與運(yùn)行結(jié)果證明某時(shí)刻最大帶寬的20個(gè)邊緣節(jié)點(diǎn)已經(jīng)必定包括了該時(shí)刻的所有的為大于95分位數(shù)的服務(wù)器。
能取得這樣好的成績,通過比賽總結(jié)下來最寶貴的經(jīng)驗(yàn)就是“堅(jiān)持”二字,我們視賽場為戰(zhàn)場,廢寢忘食,分工協(xié)作,不斷優(yōu)化代碼,取得了最后的勝利!
- 百度與寧德時(shí)代達(dá)成戰(zhàn)略合作,聚焦無人駕駛與數(shù)智化領(lǐng)域
- 合合信息與中科曙光簽署合作協(xié)議,AI賦能信創(chuàng)產(chǎn)業(yè)升級
- 英特爾火力全開炮轟AMD和英偉達(dá):漏洞數(shù)量及危害性“遙遙領(lǐng)先”
- SUSE發(fā)布SUSE Edge Suite 與Edge 3.2 ,助力零售企業(yè)實(shí)現(xiàn)無縫化運(yùn)營
- Gartner:2025年全球IT支出將達(dá)到5.61億美元,同比增長9.8%
- 消息稱去年全球IT支出超過5萬億美元 數(shù)據(jù)中心系統(tǒng)支出大幅增加
- 2025年全球數(shù)據(jù)中心:數(shù)字基礎(chǔ)設(shè)施的演變
- 谷歌押注多模態(tài)AI,BigQuery湖倉一體是核心支柱
- 數(shù)字化轉(zhuǎn)型支出將飆升:到2027年將達(dá)到4萬億美元
- 量子與人工智能:數(shù)字化轉(zhuǎn)型的力量倍增器
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。