堅持是勝利的硬道理,2022華為軟件精英挑戰(zhàn)賽冠軍分享比賽經(jīng)驗

5月21-22日,2022第八屆華為軟件精英挑戰(zhàn)賽-“普朗克計劃”總決賽及頒獎典禮在深圳成功舉辦。大賽吸引了來自國內(nèi)外826所高校、3291支隊伍、2萬余名大學生報名參賽,歷時兩個多月的激烈角逐,經(jīng)過八大賽區(qū)區(qū)域初賽、區(qū)域復賽、全球總決賽等環(huán)節(jié)的層層考驗,最終,來自粵港澳賽區(qū)的“我們啥也不會”隊獲得全球總決賽冠軍。賽隊撰文分享比賽經(jīng)驗。

一、比賽初衷

我們是2022華為軟件精英挑戰(zhàn)賽冠軍隊伍--我們啥也不會隊?!拔覀兩兑膊粫眳s拿了冠軍,聽起來有點凡爾賽。但在我們隊伍剛開始報名參賽的時候,是完全沒有預知到冠軍這份意外之喜的。畢竟,當初我們只是抱著重在參與的心態(tài),想通過華為舉辦的這場大型的全球性的比賽,看一看自己的編碼水平與頂尖高手的差距,然后以此激勵自己不斷學習進步,這是我們隊伍參加華為軟件精英挑戰(zhàn)賽的真實的初衷。

二、回顧初賽

回顧這兩個月的比賽經(jīng)歷,一些場景恍如昨日。印象深刻也是讓我感覺最難的時候是在初賽階段,因為成績不太理想,我們?nèi)齻€人可以用“寸步不離”來形容每一次的參賽方案討論。在實驗室做比賽的時候在討論,去食堂吃飯在討論,排隊做核酸在討論,回去寢室了還打電話討論。接著嘗試各種想法,但是收效甚微。不夸張地說,那段時間晚上睡覺閉上眼,都是想著怎么優(yōu)化。我感覺我們隨時會輸?shù)舯荣?,但是我們沒有放棄。

在距離比賽結(jié)束還剩三天的時候,我感覺大家都身心疲憊了。我們在提交完20次代碼之后,都想趕緊回寢室休息了,所以那天晚上是我們初賽以來最早離開實驗室的一天。在回去寢室的路上,我們討論出了一個彼此都認為會有很大優(yōu)化效果的方案。我們感覺,這次方案即將迎來了一次較大的突破。經(jīng)過不斷的編碼驗證,快到凌晨兩點的時候,效果出來了,同時我們也真正地看到了希望。同時也明白一個道理,大腦需要足夠的休息它才能正常的工作。所以當你越迫切想做出突破的時候,最好的方法就是在這之前,到戶外走走。

三、從復賽到總決賽現(xiàn)場

最終我們是團隊第十名的成績從初賽晉級到復賽。那時候和隊友打趣說:我們現(xiàn)在起碼少了一半的競爭對手,競爭激烈程度減少一半。而且在經(jīng)過了初賽的磨練,我們對賽題有了一定的了解,同時信心也大增,很多優(yōu)化方案也是在這個時候不斷涌現(xiàn)出來。仿佛幸運之神眷顧我們,最終我們通過復活賽晉級到了總決賽。

5月22號,在總決賽現(xiàn)場,對我們來說是最難忘最驚心動魄的一天。總決賽賽題在復賽賽題上有小改動,我們討論完之后寫了第一個版本,我隊友把代碼提交了上去,得到的結(jié)果選手程序運行失敗。大家整體緊張了起來。然后隊友試圖轉(zhuǎn)移壓力,把代碼發(fā)給我讓我改,但我改完前后提交了三次,結(jié)果分別是選手程序運行失敗,方案分配不合法,方案輸出格式錯誤。腦袋嗡嗡作響,神經(jīng)緊繃。二十次提交機會已經(jīng)用掉了四次,難道我們要止步于此了?隊友跟我說要沉住,在認真排查bug之后,我提交了第五版代碼,終于成功運行拿到了100多萬的分數(shù),暫排在了10幾名。此時三人都松了一口氣。不知道是緊張還是興奮,在我起身去拿水果的時候,拿水果叉的手都還在微微發(fā)抖。

在這之后,我們又討論了幾個可以降分的方案,逐步將分數(shù)降到90萬分,84萬分,暫列第一。在知道我們暫列第一時,組里雀躍了一下,我緊繃的神經(jīng)放松下來,其中一個隊友已經(jīng)開始哼起了好運來,但我另一個隊友明顯還是特別緊張,喝了好幾杯茶,一瓶礦泉水,期間還把茶水打翻灑在了鍵盤上。好家伙,不是說把壓力轉(zhuǎn)移給我嗎?竟然比我還緊張。再之后經(jīng)過幾輪持續(xù)的討論和編碼之后,我們最終將分數(shù)降到了79萬。此時已經(jīng)用完了所有的提交次數(shù),我們也感覺自己交了目前最好的答卷了。只能說盡人事聽天命了。

四、總決賽頒獎,我們是第一名

和貪心算法本質(zhì)一樣,在比賽封榜前我們看到自己仍是第一名的位置,就越期待自己能如愿第一,貪心一回。我們進會場走紅毯的時候看到了放在中間的第一名的獎杯,我心里在祈禱:We are the champions!(如果你們也聽過皇后樂隊這首歌)最后,是的,我們?nèi)缭噶?!當華為云CTO張宇昕公布第一名是“我們啥也不會”隊的時候,我們?nèi)缭噶?!回顧這充滿奇跡的兩個多月,我們不僅學到了如何去團隊合作,還明白了互相鼓勵的重要性,堅持就是勝利的硬道理。最后引用一句在華為云組織的出海游玩的輪渡上聽魔術(shù)師在表演結(jié)束時說的一句話:當你相信奇跡的時候,奇跡才會發(fā)生!

五、決賽方案及分析

全球總決賽的變更點是從第二個時刻起,在每個時刻,選手可以從 site_bandwidth.csv 中,任意選取20個邊緣節(jié)點。這些被選中的邊緣節(jié)點,前一時刻所占用帶寬向當前時刻的緩存疊加比例由 5%(下取整)調(diào)整為 1%(下取整)。

該變更點一出,我就發(fā)現(xiàn),每個時刻任意選取的20個邊緣節(jié)點只會占用下一時刻1%的緩存,此為問題的關(guān)鍵點。由于邊緣節(jié)點采用 95 計費規(guī)則 , 那我們就應該充分的利用不計費的那 5%個時刻,而不同的邊緣節(jié)點不計費的那5%個時刻的重復出現(xiàn)概率低,且某個時刻為不計費的邊緣節(jié)點超過二十個的概率更低。因為這是帶寬請求的數(shù)據(jù)特性決定的,若是所有邊緣節(jié)點的95分位數(shù)都是接近或達到自身帶寬上限,那并沒有優(yōu)化的必要,需要做的是開更多的邊緣節(jié)點。而根據(jù)極端平均的帶寬請求計算,20個邊緣節(jié)點不計費的5%時刻都不相同情況下,這些時刻才能湊足整個時間序列,而如果每個時刻有20個邊緣節(jié)點是白嫖盡量多的帶寬,那么就要使用400個邊緣節(jié)點,實際上題目給出的邊緣節(jié)點個數(shù)小于等于135個。并且也可以從客戶節(jié)點個數(shù)小于等于35個,帶寬值不大于80,000MB,而邊緣節(jié)點個數(shù)小于等于135個,提供帶寬上限不大于1,000,000MB,進行側(cè)面估算是否有較多同時刻為不計費的5%時刻的邊緣節(jié)點。

在計算成本時,某個邊緣節(jié)點的不計費的5%時刻都使用滿的100萬帶寬,則因為5%的緩存疊加到下一時刻,該邊緣節(jié)點最少有一個時刻帶寬的大于等于5w,則95分位數(shù)也會大于等于5w,大部分情況下是無法接受的(針對不同數(shù)據(jù)集也有特例),而減少免費使用5%的時刻,變成免費使用大于等于2.5%小于等于5%的時刻,也會導致有更多的請求帶寬流分流到各個服務器的95分位數(shù),并且會導致中心節(jié)點成本增加。而現(xiàn)在將這些不計費的5%時刻緩存疊加比例由 5%調(diào)整 1%,可以考慮填滿更多不計費的5%時刻,也不會導致95分位數(shù)計算成本過大,并因帶寬流能更好的聚合而降低中心節(jié)點成本。而95分位數(shù)(盡量小于V=2,000MB)及以下的帶寬的5%的緩存疊加和1%的緩存疊加的差異并不大,并不需過于考慮。

不過在賽場上為了保險起見,是先將選擇到20個邊緣節(jié)點,盡量填滿選擇的不計費5%時刻,并計算緩存時疊加比例為 1%,結(jié)果出來成本為1016805,排名靠前,想法得到驗證和代碼沒有bug后,將20個邊緣節(jié)點增加到40個甚至50個,成本進一步降低,最終達到79w。

而實際輸出時選擇哪些邊緣節(jié)點為緩存疊加比例為1%的答案是,只需每個時刻(從大到小排序得到)使用最大帶寬的20個邊緣節(jié)點作為下一時刻的輸出即可,根據(jù)上述的估算與運行結(jié)果證明某時刻最大帶寬的20個邊緣節(jié)點已經(jīng)必定包括了該時刻的所有的為大于95分位數(shù)的服務器。

能取得這樣好的成績,通過比賽總結(jié)下來最寶貴的經(jīng)驗就是“堅持”二字,我們視賽場為戰(zhàn)場,廢寢忘食,分工協(xié)作,不斷優(yōu)化代碼,取得了最后的勝利!


極客網(wǎng)企業(yè)會員

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2022-05-26
堅持是勝利的硬道理,2022華為軟件精英挑戰(zhàn)賽冠軍分享比賽經(jīng)驗
5月21-22日,2022第八屆華為軟件精英挑戰(zhàn)賽-“普朗克計劃”總決賽及頒獎典禮在深圳成功舉辦。大賽吸引了來自國內(nèi)外826所高校、3291支隊伍、2萬余名大學生報名參賽,歷時兩個多月的激烈角逐,經(jīng)過八大賽區(qū)區(qū)域初賽、區(qū)域復賽、全球總決賽等環(huán)節(jié)的層層考驗,最終,來自粵港澳賽區(qū)的“我...

長按掃碼 閱讀全文