我與volcano的那些事兒【與云原生的故事】

      網(wǎng)友投稿 856 2025-03-31

      緣起


      我的職業(yè)經(jīng)歷蠻單調(diào)的,從畢業(yè)至今一直在一家公司。但崗位經(jīng)歷還蠻豐富的,一開始在公司做業(yè)務(wù),后來做容器化,21年8月份轉(zhuǎn)入公司的AI云平臺團隊負責(zé)機器學(xué)習(xí)任務(wù)訓(xùn)練,由此開始接觸volcano。到目前為止,為volcao提過多個pr,包括根據(jù)label篩選volcano可以調(diào)度的node、 支持queue資源配額、支持task優(yōu)先級、特定label的task保護、支持彈性等,有幸成為volcano的member,參與開源項目并成為其中的一份子,這種感覺就像一個士兵真的上過戰(zhàn)場、打敗過敵人一樣驕傲,對應(yīng)的,volcano帶給我的成長也非常深刻。

      理解調(diào)度

      在我開始接觸公司的機器學(xué)習(xí)平臺的時候,集群就已經(jīng)在用volcano了,主要是因為gang scheduler等特性。 我之前在做容器化的時候,已經(jīng)深度接觸了k8s,但那時主要支持web、rpc服務(wù),對k8s調(diào)度器的理解僅限于“預(yù)選”和“優(yōu)選”,一度以為k8s調(diào)度的世界就那樣了。volcano給我打開了一個新世界的大門,正因為有批調(diào)度的存在,k8s 支持大數(shù)據(jù)、ai任務(wù)才成為可能(或者說這兩類業(yè)務(wù)向k8s遷移的需求催生了批調(diào)度),再進一步支持業(yè)務(wù)、大數(shù)據(jù)、ai 等多種類型的workload 運行在一個集群上。作為技術(shù)人員,能為推動公司往這個方向走一走(推動業(yè)界就不敢說了),想想就是一個很激動的事情,也能基于此吃好幾年的飯。做多種類型的workload混部,volcano所處的調(diào)度層,就是一個很好的著力點。

      機器學(xué)習(xí)彈性

      在多個pr里面,我印象最深刻的功能是支持彈性調(diào)度,改動代碼最多,耗時最長。說到彈性調(diào)度,人們天然想到的是HPA等機制,我當(dāng)時也確實在測試環(huán)境詳細的部署、測試過HPA,但發(fā)現(xiàn)機器學(xué)習(xí)任務(wù)的彈性用HPA 實現(xiàn)起來有很多不和諧的地方。核心區(qū)別是,普通web/rpc 要不要擴縮容跟服務(wù)當(dāng)前的負載、延遲等有關(guān)系,核心是為了確保服務(wù)可用。而機器學(xué)習(xí)任務(wù)彈性的目的是:集群空閑的時候充分利用資源,緊張的時候(一些訓(xùn)練job縮一下)讓更多的job可以run起來,核心是確保集群資源利用率(訓(xùn)練任務(wù)越快完成越好,但也有個上限,讓機器學(xué)習(xí)任務(wù)1分鐘訓(xùn)練完不實際也沒必要)。這就意味著機器學(xué)習(xí)任務(wù)的彈性組件要了解整個集群的信息,不像HPA 一樣監(jiān)聽至多兩三個metric就行了。而了解整個集群的資源、job信息,非調(diào)度器莫屬,所以機器學(xué)習(xí)任務(wù)的彈性是一定要volcano深度參與的。當(dāng)然,還有一條路是volcano將所有必要的信息暴露出來,由外置的HPA組件做決策,但覺得有些麻煩。

      當(dāng)時先把這個想法拿到社區(qū)里討論,得到了幾個小伙伴的認可,后面詳細梳理了volcano支持彈性需要做的六七個代碼變更點,自然的,在這個過程中對volcano的設(shè)計、代碼實現(xiàn)理解的更深刻了。對一個事情確定方向,再一步步梳理、落地,彈性feature到現(xiàn)在(22年4月)才接近落地, 是一個非常有意義的工程體驗。具體細節(jié)參見 基于Volcano的機器學(xué)習(xí)任務(wù)彈性訓(xùn)練實踐

      我與volcano的那些事兒【與云原生的故事】

      開源項目的運作

      在github之前,我從未深度參與一個開源項目,對一個開源項目的運作 連“見過豬跑”都算不上,最多就是在github上提幾個issue,真正的參與進去之后,收獲還是蠻多的。

      對英文的使用,issue/pr 交流都需要英文,尤其是一些比較大的特性,volcano還要求撰寫設(shè)計文檔,很多特性中文說的通俗易懂都不容易,英文寫一遍更是費了少頭發(fā)。

      之前我對git的使用僅限于“git clone/pull/commit/push/checkout”,不能更多了,我還是算可以的,習(xí)慣用命令行操作git,很多同事日常都是ui操作git。為volcano貢獻代碼時,因為要提交pr,并且提交完pr后,可能社區(qū)討論后要改動一些細節(jié),但為了方便大家review這個pr,就要保證這個pr只有一個commit,以便大家查看FileChanged,git rebase/cherry-pick 這些之前在我看來都是“只可遠觀不可褻玩”的大招,也不得不好好研究了一把。

      一般來說,日常的工作是一個崗位一個坑,組內(nèi)的小伙伴為一個大目標(biāo)服務(wù)。但具體到每個人做的事情的細節(jié),因為分工不同對彼此的工作內(nèi)容不是很熟悉,碰到難題、方案抉擇很難跟小伙伴有比較深度的討論,有一種一個人在走夜路的孤獨,這個時候,社區(qū)反而更容易找到相同關(guān)注點的人。此外,我是專注AI與volcano結(jié)合的,社區(qū)還有許多伙伴因大數(shù)據(jù)而關(guān)注volcano,那么一個feature提出,交由社區(qū)充分討論,也促進了自己更全面的看問題。

      對開源項目的運作流程有了一些了解,維護一個開源項目非常不易,每周社區(qū)例會、文檔、自動化testcase(說實話,從業(yè)六七年也沒有很認真的寫過很多case)。一開始覺得效率特別低,恨不能上午有個想法改好代碼,下午就合進master。但開源項目以文字異步溝通為主,大家日常有自己的工作,復(fù)雜點的pr可能還需要在社區(qū)例會上討論,一個pr一般要兩周左右才能合進去,但是一個項目要走的遠,這也是一個必要的方式,也向volcano的維護者們致敬。

      【與云原生的故事】有獎?wù)魑幕馃徇M行中:https://bbs.huaweicloud.com/blogs/345260

      AI Volcano 云原生 機器學(xué)習(xí)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:vue甘特圖
      下一篇:怎么把空白頁刪了(word怎么把空白頁刪了)
      相關(guān)文章
      在线aⅴ亚洲中文字幕| 亚洲国产成人一区二区精品区| 亚洲欧洲一区二区| 国产国拍亚洲精品福利| 国产一区二区三区亚洲综合| jizzjizz亚洲日本少妇| 国产精品久久久久久亚洲影视 | 亚洲一级特黄无码片| 亚洲色偷拍区另类无码专区| 无码不卡亚洲成?人片| 亚洲国产V高清在线观看| 亚洲黄片毛片在线观看| 国产一区二区三区亚洲综合| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲午夜精品一级在线播放放| 亚洲国模精品一区| 久久精品国产亚洲Aⅴ蜜臀色欲| 国产亚洲老熟女视频| 亚洲无人区一区二区三区| 好看的亚洲黄色经典| 亚洲AV成人片色在线观看高潮| 亚洲免费视频在线观看| 亚洲精品成人图区| 亚洲已满18点击进入在线观看| 亚洲色www永久网站| 国产精品亚洲二区在线| 亚洲人妻av伦理| 日本亚洲欧洲免费天堂午夜看片女人员| 亚洲成在人线av| 久久久亚洲裙底偷窥综合| 亚洲欧洲校园自拍都市| 亚洲综合丁香婷婷六月香| 亚洲精品人成网线在线播放va| 青青青亚洲精品国产| 久久久久亚洲av成人无码电影 | 亚洲人成网站看在线播放| 亚洲国产成人无码AV在线影院| 亚洲av无码乱码在线观看野外 | 亚洲中文字幕乱码一区| 亚洲AV无码乱码在线观看性色扶 | 亚洲狠狠色丁香婷婷综合|