絡(luò)深度拆解:從算力度量到AI調(diào)度與電力協(xié)同)
很多人第一次聽到“算力網(wǎng)絡(luò)”這四個字第一反應(yīng)是這不就是把一堆服務(wù)器用網(wǎng)絡(luò)連起來嗎這樣理解不算全錯但如果只停留在這一層后續(xù)所有方案討論你都插不上話。算力網(wǎng)絡(luò)真正要解決的不是機(jī)器連沒連上的問題而是當(dāng)你有計算需求時如何讓遠(yuǎn)處某個閑置的算力節(jié)點(diǎn)在你能接受的時間內(nèi)把結(jié)果還給你。它的核心對象是計算能力而不是帶寬網(wǎng)絡(luò)只是搬運(yùn)任務(wù)的通道算力才是真正被調(diào)度和運(yùn)營的資源。我這兩年做了不少算力調(diào)度相關(guān)的工程從邊緣小盒子到千卡集群都碰過。算力網(wǎng)絡(luò)這個名詞聽起來新本質(zhì)上卻是把“計算能力”當(dāng)成一種可流動、可運(yùn)營的資源來打理。它涉及算力度量、算力路由、算力調(diào)度、算電協(xié)同等多個層面每一層都有不少坑。這篇文章想把它拆開講透結(jié)合我實(shí)際做過的項(xiàng)目從概念聊到關(guān)鍵技術(shù)再聊到AI場景和算力與電力的協(xié)同計算。適合正在做云計算、邊緣計算、數(shù)據(jù)中心網(wǎng)絡(luò)規(guī)劃的同學(xué)也適合剛?cè)胄小⑾敫闱宄懔π袠I(yè)底層邏輯的讀者。1. 算力網(wǎng)絡(luò)到底在解決什么問題1.1 算力孤島時代計算資源是怎么被浪費(fèi)的在算力網(wǎng)絡(luò)這個概念火起來之前業(yè)內(nèi)其實(shí)已經(jīng)有很長時間的資源利用率焦慮。拿我見過的數(shù)據(jù)中心來說CPU平均利用率常年只有百分之十幾GPU利用率好一些但也存在大量碎片化空閑。原因很簡單每個數(shù)據(jù)中心的算力都是孤島式的容量按業(yè)務(wù)峰值申請但業(yè)務(wù)不可能每一秒都跑在峰值上。舉一個我實(shí)際經(jīng)歷過的例子某城市邊緣節(jié)點(diǎn)放著幾百張推理卡平時利用率不到三成但隔壁一個短視頻推薦業(yè)務(wù)每天要把幾千個推理任務(wù)跨城調(diào)度到中心機(jī)房因?yàn)檫吘壒?jié)點(diǎn)沒有對外暴露算力。這就是典型的“算力不過去任務(wù)就得繞遠(yuǎn)路”。表面看是網(wǎng)絡(luò)規(guī)劃問題根子卻是算力沒有形成統(tǒng)一資源池。算力孤島帶來的浪費(fèi)是多維度的。第一層是硬件浪費(fèi)機(jī)器買了、折舊照算但真正跑業(yè)務(wù)的時間很少。第二層是能源浪費(fèi)數(shù)據(jù)中心即使空閑也要維持制冷和基礎(chǔ)功耗這個水平通常能占到滿載功耗的四到六成。第三層是運(yùn)維浪費(fèi)每個孤島都要獨(dú)立維護(hù)一套監(jiān)控、告警、擴(kuò)縮容機(jī)制人力成本直接翻倍。這些浪費(fèi)疊加起來才是推動算力網(wǎng)絡(luò)落地的最真實(shí)動力——不是概念驅(qū)動是成本驅(qū)動。1.2 算力網(wǎng)絡(luò)的核心邏輯把計算變成像用電一樣隨取隨用算力網(wǎng)絡(luò)的核心理念是把分散的算力整合成一個可以統(tǒng)一調(diào)度的算力資源池讓用戶側(cè)看到的是一個整體而不是一堆IP和機(jī)房。類比電網(wǎng)來說最直觀——你不需要知道自己家用的電是哪個水電站發(fā)的只需要插上插頭電就來了。算力網(wǎng)絡(luò)要做的事情就是在“插上插頭”和“電到來”之間加一個足夠聰明的調(diào)度大腦。但這個“大腦”比想象中復(fù)雜得多。電網(wǎng)里電的流動有物理規(guī)律約束功率和頻率之間關(guān)系明確潮流計算很成熟。算力網(wǎng)絡(luò)里任務(wù)在哪個節(jié)點(diǎn)跑、跑多久、占用多少資源、產(chǎn)生多少結(jié)果全是離散的、不確定的。所以算力網(wǎng)絡(luò)不能簡單套用電網(wǎng)里的輪詢或靜態(tài)路由方案必須引入動態(tài)的、實(shí)時的狀態(tài)感知和決策機(jī)制。同時算力網(wǎng)絡(luò)的價值必須靠規(guī)?;拍馨l(fā)揮出來。只有幾十個節(jié)點(diǎn)時人工分配也能湊合節(jié)點(diǎn)上千個、任務(wù)類型十幾種、用戶需求各異時就必須靠系統(tǒng)化調(diào)度。這也是為什么現(xiàn)在業(yè)界談算力網(wǎng)絡(luò)很少只談網(wǎng)絡(luò)協(xié)議更多在談資源抽象、服務(wù)化封裝和全局調(diào)度策略。1.3 算力網(wǎng)絡(luò)要解決的核心痛點(diǎn)整理下來算力網(wǎng)絡(luò)要穿透的核心痛點(diǎn)大概有三類。第一類是資源利用率問題把空閑算力用起來第二類是服務(wù)質(zhì)量問題讓任務(wù)在合適的位置跑減少排隊(duì)和繞路第三類是成本問題在跨地域、跨供應(yīng)商的算力之間選擇性價比最優(yōu)的組合。這三類痛點(diǎn)對應(yīng)著不同角色的訴求。對算力供給方來說算力網(wǎng)絡(luò)意味著更高的資源售賣率和更低的空閑成本。對算力使用方來說意味著更快的響應(yīng)和更便宜的價格。對網(wǎng)絡(luò)運(yùn)營方來說意味著流量更均衡、鏈路利用率更高。三方訴求能在同一個系統(tǒng)里統(tǒng)一關(guān)鍵就在于“計算能力”被抽象成了可度量、可路由、可交易的對象。2. 算力網(wǎng)絡(luò)的關(guān)鍵技術(shù)拆解2.1 算力度量怎么量化“計算能力”沒有度量就無法調(diào)度。算力網(wǎng)絡(luò)首先要回答“一個節(jié)點(diǎn)到底有多少算力”這個問題。但不同業(yè)務(wù)對算力的度量維度完全不一樣CPU密集型任務(wù)要看核數(shù)和主頻內(nèi)存密集型任務(wù)看內(nèi)存帶寬AI推理看INT8 TOPSAI訓(xùn)練看FP16算力。實(shí)際工程中我們通常用一個三元組來描述節(jié)點(diǎn)能力算力類型通用計算、智能計算、超級計算、算力容量FLOPS、TOPS等指標(biāo)、算力質(zhì)量可用性、空閑率、平均排隊(duì)時延。這三個維度缺一個調(diào)度決策就會偏向某一個方向。比如只看容量不看質(zhì)量就會把任務(wù)發(fā)到一個算力大但已經(jīng)排隊(duì)排到天荒地老的節(jié)點(diǎn)。這里有個經(jīng)常被忽略的問題算力是動態(tài)的不是靜態(tài)的。一臺機(jī)器在跑業(yè)務(wù)和空閑時的可用算力完全不一樣甚至同一臺機(jī)器不同時刻的狀態(tài)差異也很大。所以度量系統(tǒng)必須做實(shí)時采集采集周期至少到秒級才能支撐后續(xù)的路由決策。我見過不少團(tuán)隊(duì)拿每小時同步一次的數(shù)據(jù)做調(diào)度結(jié)果決策永遠(yuǎn)慢半拍任務(wù)延遲上去了還找不到原因。我在實(shí)踐中還踩過一個坑不同廠商的硬件指標(biāo)沒法直接比較。某廠商標(biāo)稱的TOPS是在特定稀疏率、特定位寬下測出來的拿它和另一家同類指標(biāo)直接比就是刻舟求劍。所以我們在內(nèi)部會建立一個“折算基準(zhǔn)”把所有異構(gòu)算力統(tǒng)一折算成標(biāo)準(zhǔn)單位再參與調(diào)度。這一步不做后面所有調(diào)度都是空中樓閣。2.2 算力路由網(wǎng)絡(luò)怎么把任務(wù)送到最合適的節(jié)點(diǎn)算力路由是算力網(wǎng)絡(luò)的“大腦”層級核心工作是把用戶的請求和節(jié)點(diǎn)的算力狀態(tài)映射起來。這里的難點(diǎn)在于路由不僅要看網(wǎng)絡(luò)路徑還要看算力狀態(tài)。一個節(jié)點(diǎn)即使離用戶只有幾毫秒的網(wǎng)絡(luò)時延如果它的算力已經(jīng)跑滿任務(wù)排隊(duì)時間反而更長那它就不是最優(yōu)選擇。我實(shí)際做過的調(diào)度算法會綜合四類參數(shù)網(wǎng)絡(luò)時延和帶寬占用、算力負(fù)載含當(dāng)前排隊(duì)任務(wù)數(shù)、任務(wù)類型匹配度、能耗和成本。大體上就是給每個候選節(jié)點(diǎn)算一個綜合得分然后結(jié)合約束條件取最優(yōu)。約束條件包括數(shù)據(jù)位置、資源預(yù)留、任務(wù)優(yōu)先級等。很多論文喜歡在算法層面討論得很花哨但工程上先把參數(shù)定準(zhǔn)比優(yōu)化算法更關(guān)鍵。舉個例子一個實(shí)時渲染任務(wù)對時延敏感我會把網(wǎng)絡(luò)時延的權(quán)重調(diào)高一個批量數(shù)據(jù)分析任務(wù)對成本敏感我會把能耗和單位算力成本的權(quán)重調(diào)高。同一個調(diào)度框架通過調(diào)權(quán)重就能適配不同業(yè)務(wù)這才是算力路由在實(shí)踐中真正可行的形態(tài)。2.3 算力調(diào)度與算力編排兩層容易混淆的機(jī)制算力路由負(fù)責(zé)把請求引到某個節(jié)點(diǎn)算力調(diào)度負(fù)責(zé)在節(jié)點(diǎn)內(nèi)部安排資源算力編排則負(fù)責(zé)把復(fù)雜業(yè)務(wù)拆成多個子任務(wù)分配到多個節(jié)點(diǎn)協(xié)同完成。這三層是層層遞進(jìn)的關(guān)系但很多人會把調(diào)度和編排混為一談。拿一個大模型推理業(yè)務(wù)舉例。算力路由決定把它分到A區(qū)域的GPU集群算力調(diào)度決定在集群里分配多少張卡、什么規(guī)格的顯存算力編排則負(fù)責(zé)把這個推理請求拆成預(yù)處理、模型推理、后處理三個子任務(wù)分別在不同類型的算力節(jié)點(diǎn)上執(zhí)行。這三層各司其職邊界一旦模糊出了問題就很難定位是哪個環(huán)節(jié)的鍋。實(shí)際項(xiàng)目里編排層往往由業(yè)務(wù)方自己的平臺控制調(diào)度層由資源管理平臺控制路由層由算力網(wǎng)絡(luò)控制面控制。三層之間要通過標(biāo)準(zhǔn)接口交互每一層的狀態(tài)都要暴露成數(shù)據(jù)服務(wù)否則上層調(diào)度就是盲人摸象。我見過太多團(tuán)隊(duì)只把調(diào)度器拉通了編排層和路由層還是各管各的結(jié)果全局調(diào)度永遠(yuǎn)只能在自己那一畝三分地里優(yōu)化。2.4 算力網(wǎng)絡(luò)的控制面與數(shù)據(jù)面算力網(wǎng)絡(luò)從架構(gòu)上看通常分成控制面和數(shù)據(jù)面。數(shù)據(jù)面就是真實(shí)承載業(yè)務(wù)的那條路徑任務(wù)從用戶側(cè)流入經(jīng)過網(wǎng)絡(luò)到達(dá)算力節(jié)點(diǎn)跑完后結(jié)果再流回來。控制面則負(fù)責(zé)監(jiān)控全網(wǎng)狀態(tài)、制定決策、下發(fā)路由策略??刂泼婧蛿?shù)據(jù)面的關(guān)系可以理解成導(dǎo)航和開車的關(guān)系。導(dǎo)航基于實(shí)時路況規(guī)劃路線但最終車還是要在真實(shí)道路上走。算力網(wǎng)絡(luò)的控制面會持續(xù)收集全網(wǎng)節(jié)點(diǎn)的算力狀態(tài)和鏈路質(zhì)量重建一張“算力地圖”然后根據(jù)業(yè)務(wù)需求在算力地圖上做路徑規(guī)劃。這張地圖不能太粗糙至少要把每個節(jié)點(diǎn)的異構(gòu)算力類型、實(shí)時負(fù)載、網(wǎng)絡(luò)入站出站時延都標(biāo)出來。工程上控制面最喜歡做的是“全網(wǎng)視圖的定期同步”數(shù)據(jù)面關(guān)心的是“某一條具體路徑是否可用”。兩邊天然存在張力控制面要全局信息數(shù)據(jù)面要低延遲和穩(wěn)定性。解決的辦法是分層緩存——控制面全局?jǐn)?shù)據(jù)不用實(shí)時同步到每個轉(zhuǎn)發(fā)節(jié)點(diǎn)只要保證關(guān)鍵決策所需的核心信息有足夠新鮮度就夠了。3. AI算力網(wǎng)絡(luò)大模型時代的算力調(diào)度新難題3.1 AI負(fù)載的特殊性為什么傳統(tǒng)調(diào)度不頂用傳統(tǒng)云業(yè)務(wù)的調(diào)度單位是容器幾十GB內(nèi)存、幾個核任務(wù)分鐘級就能結(jié)束。大模型訓(xùn)練一個任務(wù)動輒占滿幾百顆GPU時間跨度是幾天甚至幾周調(diào)度維度完全變了。而且AI訓(xùn)練任務(wù)中間還要周期性做checkpoint狀態(tài)要定期落盤保存稍有閃失幾百萬的算力成本就白燒了。AI推理任務(wù)則完全相反是突發(fā)型負(fù)載隨用戶請求來來去去對時延極其敏感。一個推理服務(wù)可能上一分鐘還在低負(fù)載下一分鐘因?yàn)槟硞€熱點(diǎn)事件流量暴漲三倍。這種脈沖式特征讓傳統(tǒng)基于歷史均值預(yù)測擴(kuò)容的方案頻繁失靈。所以AI算力網(wǎng)絡(luò)不能一套調(diào)度策略走天下必須針對負(fù)載特征做差異化管理。訓(xùn)練任務(wù)適合“預(yù)約式搶占式”混合調(diào)度推理任務(wù)適合“彈性配額”調(diào)度。這也意味著算力網(wǎng)絡(luò)的度量系統(tǒng)要同時支持長周期資源預(yù)留和短周期實(shí)時刷新對底層數(shù)據(jù)采集的要求比傳統(tǒng)云高出一個量級。3.2 AI算力網(wǎng)絡(luò)的實(shí)踐訓(xùn)練與推理的差異化調(diào)度在訓(xùn)練場景我會優(yōu)先做資源預(yù)留。用戶提前申請算力時系統(tǒng)會評估集群的可用資源、中斷風(fēng)險、檢查點(diǎn)策略然后給出一個比較精確的開始時間和結(jié)束時間。如果資源不足就進(jìn)入排隊(duì)隊(duì)列等前序任務(wù)完成。這個排隊(duì)策略在工程上要注意“公平性”和“利用率”的平衡否則容易變成長期任務(wù)餓死短任務(wù)。在推理場景我會優(yōu)先做彈性調(diào)度。用一套秒級采集的GPU利用率曲線來決定擴(kuò)縮容冷啟動容器必須預(yù)熱好流量高峰到來前做預(yù)擴(kuò)容。這里的關(guān)鍵是快調(diào)度決策必須在幾百毫秒內(nèi)完成否則用戶已經(jīng)流失了。我實(shí)測下來推理彈性調(diào)度的核心瓶頸往往不在算法而在鏡像拉取和模型加載的速度所以熱點(diǎn)模型要做到多節(jié)點(diǎn)熱備。還有一類非常典型但容易被忽視的AI負(fù)載是數(shù)據(jù)預(yù)處理和模型微調(diào)。它們對GPU要求不高但對CPU、內(nèi)存、存儲帶寬要求很大。這類任務(wù)如果被調(diào)度到高算力的GPU節(jié)點(diǎn)反而是浪費(fèi)。AI算力網(wǎng)絡(luò)的價值很大一部分就體現(xiàn)在把這些細(xì)碎任務(wù)分診到合適的算力層級上別讓昂貴的大算力卡干搬磚的活。3.3 AI算力網(wǎng)絡(luò)的架構(gòu)要點(diǎn)落地AI算力網(wǎng)絡(luò)時有幾個架構(gòu)層面的要點(diǎn)值得提前想清楚。第一模型倉庫和數(shù)據(jù)集的位置要納入調(diào)度考量。大模型動輒幾百GB從存儲中心拉到計算節(jié)點(diǎn)的時間不能忽略所以調(diào)度決策要考慮數(shù)據(jù)位置盡量就近拉取必要時先把數(shù)據(jù)預(yù)熱到節(jié)點(diǎn)緩存里。第二AI任務(wù)的狀態(tài)管理要統(tǒng)一抽象。訓(xùn)練任務(wù)的checkpoint、推理服務(wù)的會話狀態(tài)都要能被調(diào)度系統(tǒng)感知和遷移否則無法實(shí)現(xiàn)跨節(jié)點(diǎn)容災(zāi)。第三要預(yù)留下一次優(yōu)化迭代的上報通道。我見過一個實(shí)際案例一開始只做了“算力路由”沒管數(shù)據(jù)位置結(jié)果一個200GB的模型要從異地存儲拉到GPU節(jié)點(diǎn)花了二十分鐘業(yè)務(wù)側(cè)根本等不起。后來我們把“數(shù)據(jù)位置”作為一個獨(dú)立因子寫進(jìn)路由打分模型加載耗時直接降了一個數(shù)量級。這件事給我的教訓(xùn)是AI算力網(wǎng)絡(luò)不能只盯著計算能力看存儲和數(shù)據(jù)的調(diào)度同樣重要。4. 算力與電力協(xié)同電池系統(tǒng)對電網(wǎng)的平滑能力到底怎么算4.1 問題背景AI負(fù)載波動對電網(wǎng)的沖擊算力網(wǎng)絡(luò)討論得越深入有一個問題就躲不開算力要吃電。AI負(fù)載的波動對電網(wǎng)的沖擊是真實(shí)存在的而且比傳統(tǒng)互聯(lián)網(wǎng)業(yè)務(wù)大得多。大模型訓(xùn)練任務(wù)啟動時瞬間拉起幾千塊GPU集群功耗在幾分鐘內(nèi)飆升幾十兆瓦checkpoint落盤時也會有周期性的大電流沖擊。如果多個AI數(shù)據(jù)中心在同一時間做同樣動作電網(wǎng)側(cè)會感受到非常明顯的功率波動。要解決這個問題通常有兩條路。一條是從算力側(cè)出發(fā)把峰值負(fù)載錯開比如通過算力網(wǎng)絡(luò)的調(diào)度能力讓不同集群的訓(xùn)練時間錯峰。另一條是從電力側(cè)出發(fā)在數(shù)據(jù)中心部署電池儲能系統(tǒng)用儲能吸收和釋放功率波動把數(shù)據(jù)中心的對外功率表現(xiàn)為一個平穩(wěn)、可控的負(fù)荷。第二條路里有一個核心工程問題電池系統(tǒng)到底需要多大功率、多大容量才能把電網(wǎng)側(cè)的波動平滑到合格范圍這就是“電池系統(tǒng)對電網(wǎng)的平滑能力”的計算問題。我在實(shí)際工程里驗(yàn)證過一套計算方法下面拆開講。4.2 平滑能力的核心公式與計算邏輯“平滑能力”本質(zhì)上要回答三個問題能削掉多大的功率尖峰、能扛多久、能把波動率降到什么程度。對應(yīng)的工程指標(biāo)是功率容量、能量容量、平滑率。第一步確定目標(biāo)曲線。把原始負(fù)載曲線P_load(t)通過滑動平均得到目標(biāo)曲線P_target(t)?;瑒悠骄拇翱陂L度是關(guān)鍵參數(shù)窗口越大目標(biāo)曲線越平滑電池需要跟著補(bǔ)償?shù)姆群统掷m(xù)時間也越大。實(shí)際項(xiàng)目中窗口長度通常根據(jù)電網(wǎng)考核周期來定比如考核分鐘級爬坡率窗口就取1到5分鐘。第二步計算電池系統(tǒng)需要提供的補(bǔ)償功率。補(bǔ)償功率P_batt(t) P_load(t) - P_target(t)。電池系統(tǒng)的功率容量就取這個補(bǔ)償序列的最大絕對值再乘上1.1到1.2的安全裕度。為什么要乘裕度因?yàn)閷?shí)際負(fù)載不是光滑曲線負(fù)載預(yù)測也有誤差電池如果每次都頂著極限跑壽命衰減會非常快。第三步計算電池系統(tǒng)的能量容量。把補(bǔ)償序列中所有正值放電方向做累計累計結(jié)果的最大值就是電池在對應(yīng)窗口內(nèi)需要能放出的能量。但工程上要注意如果負(fù)載一直高于目標(biāo)曲線窗口內(nèi)積分值會持續(xù)增長這時需要結(jié)合運(yùn)行窗口來截斷計算取一個滑動窗口內(nèi)的最大累計放電量作為能量需求。第四步算平滑率。平滑率等于1減去平滑后最大爬坡率除以原始最大爬坡率再乘以100%。平滑后最大爬坡率一般取電網(wǎng)允許的爬坡上限或者目標(biāo)曲線的最大爬坡率。這個指標(biāo)用來衡量電池系統(tǒng)把負(fù)載波動“抹平”的效果是甲方最關(guān)心的驗(yàn)收指標(biāo)之一。4.3 實(shí)際工程中的一個完整計算案例假設(shè)某AI推理池的功率負(fù)載按分鐘采樣某段時間內(nèi)的功率序列為12.0MW、17.0MW、16.2MW、15.8MW、11.5MW。我們把滑動窗口設(shè)為5分鐘每個時刻的目標(biāo)功率取窗口內(nèi)所有值的平均。比如最后一個點(diǎn)窗口覆蓋全部5個值目標(biāo)功率P_target (12.017.016.215.811.5)/5 14.5MW。那么每時刻的補(bǔ)償功率為t112.0 - 14.5 -2.5MW電池充電t217.0 - 14.5 2.5MW電池放電t316.2 - 14.5 1.7MW電池放電t415.8 - 14.5 1.3MW電池放電t511.5 - 14.5 -3.0MW電池充電功率容量需求 max(|補(bǔ)償序列|) × 安全裕度 3.0MW × 1.2 3.6MW。能量容量需求放電部分的累計能量約為(2.51.71.3)MW × 1分鐘 / 60 ≈ 91.7kWh充電部分最大累計能量是3.0MW × 1分鐘 / 60 50kWh。綜合來看按最大放電需求91.7kWh作為能量下限再乘上安全裕度和放電深度系數(shù)實(shí)際配置容量要放到120kWh左右才穩(wěn)。再看平滑率。原始負(fù)載最大爬坡出現(xiàn)在t1到t2之間爬坡率 (17.0 - 12.0) / 1min 5MW/min。如果電網(wǎng)允許的爬坡上限是2MW/min那電池在t1到t2之間至少要額外承擔(dān)3MW的下發(fā)補(bǔ)償這和上面補(bǔ)償序列的結(jié)論正好吻合。平滑率 (1 - 2/5) × 100% 60%。需要注意的是這只是靜態(tài)計算。實(shí)際工程中還要考慮電池SOC維持在合理區(qū)間、電池響應(yīng)時間、充放電循環(huán)效率以及負(fù)載預(yù)測的不確定性。很多時候計算出來的理論容量還會因?yàn)殡姵刈陨硇阅芮€再放大15%~25%才會進(jìn)入采購環(huán)節(jié)。5. 實(shí)操建議與避坑指南5.1 從零開始落地算力網(wǎng)絡(luò)要注意的幾件事很多團(tuán)隊(duì)看到“算力網(wǎng)絡(luò)”四個字第一反應(yīng)就是上一套調(diào)度軟件或者買一批網(wǎng)絡(luò)設(shè)備。但我的經(jīng)驗(yàn)是第一步永遠(yuǎn)不是買工具而是把現(xiàn)狀盤清楚。先回答幾個問題你有哪些算力資產(chǎn)各自是什么類型當(dāng)前利用率如何負(fù)載峰值出現(xiàn)在什么時間如果這些問題靠拍腦袋回答后面所有調(diào)度策略都是空中樓閣。第二件事從單一場景切入。別一上來就做全局最優(yōu)。先選一個痛點(diǎn)最明顯的場景比如把某個利用率低的機(jī)房接入統(tǒng)一調(diào)度讓它承接跨機(jī)房的突發(fā)任務(wù)。跑通一個閉環(huán)再逐步擴(kuò)展。我見過太多團(tuán)隊(duì)想一口氣把十幾個機(jī)房全部納入統(tǒng)一調(diào)度結(jié)果項(xiàng)目拖了一年半載還在搭平臺業(yè)務(wù)方已經(jīng)失去耐心了。第三件事網(wǎng)絡(luò)團(tuán)隊(duì)和算力團(tuán)隊(duì)一定要合署辦公或者至少建立穩(wěn)定的協(xié)作機(jī)制。算力網(wǎng)絡(luò)最微妙的地方在于網(wǎng)絡(luò)時延和算力負(fù)載是互相耦合的。網(wǎng)絡(luò)團(tuán)隊(duì)只知道調(diào)整路由策略算力團(tuán)隊(duì)只知道調(diào)整資源配額兩邊不溝通調(diào)度出來的結(jié)果一定不是最優(yōu)。我在項(xiàng)目里見過太多因?yàn)閳F(tuán)隊(duì)割裂導(dǎo)致的事故比如網(wǎng)絡(luò)擴(kuò)容做完了算力調(diào)度策略沒同步更新結(jié)果業(yè)務(wù)反而繞了遠(yuǎn)路。5.2 算力狀態(tài)延遲最容易踩的坑調(diào)度系統(tǒng)依賴的數(shù)據(jù)永遠(yuǎn)是一個過去時刻的狀態(tài)。你采集到的“空閑”可能是5秒前的空閑5秒內(nèi)可能已經(jīng)有一批任務(wù)涌入。所以調(diào)度決策要容忍這種延遲策略上要帶一點(diǎn)“保守余量”不能看到空閑就全額分配。我一般在分配時會留出15%~20%的余量防止?fàn)顟B(tài)刷新間隙被新任務(wù)打穿。還有一個問題是任務(wù)回填。大任務(wù)和小任務(wù)混排時如果調(diào)度器總是優(yōu)先大任務(wù)小任務(wù)可能被餓死排到天荒地老都跑不上。要避免這個問題可以在調(diào)度策略里設(shè)置一個“最大等待時間”超過閾值后不管優(yōu)先級直接放行。這個機(jī)制在混部場景里非常重要否則小任務(wù)經(jīng)常會被大任務(wù)活活壓死。5.3 算力網(wǎng)絡(luò)上線后的可觀測性設(shè)計上線只是開始觀測才是日常。算力網(wǎng)絡(luò)至少要有一套全鏈路監(jiān)控覆蓋三個層面網(wǎng)絡(luò)層看連接質(zhì)量、時延、丟包算力層看節(jié)點(diǎn)負(fù)載、隊(duì)列深度、任務(wù)成功率業(yè)務(wù)層看端到端響應(yīng)時間、用戶滿意度。三個層面的指標(biāo)要對齊才能快速定位問題到底出在網(wǎng)絡(luò)、算力還是業(yè)務(wù)側(cè)。我個人強(qiáng)烈建議在設(shè)計的第一個版本就加入“調(diào)度決策日志”。每一次調(diào)度都記錄下決策輸入、決策結(jié)果、實(shí)際效果。后面想優(yōu)化策略時這些日志就是最寶貴的訓(xùn)練數(shù)據(jù)。沒有這些日志出了問題復(fù)盤只能靠猜那和高成本運(yùn)維有什么區(qū)別。5.4 算力網(wǎng)絡(luò)后續(xù)可以怎么擴(kuò)展算力網(wǎng)絡(luò)這件事往后走一定會和更多系統(tǒng)產(chǎn)生交集。比如容量規(guī)劃能不能用歷史的調(diào)度數(shù)據(jù)預(yù)測未來一周的算力需求提前指導(dǎo)采購和擴(kuò)容再比如成本核算能不能把算力調(diào)度的結(jié)果精確折算成錢讓業(yè)務(wù)方看到“這次任務(wù)比上個月便宜了多少”這些都是一旦基礎(chǔ)調(diào)度跑通之后立刻就能產(chǎn)生增量的方向。還有一個方向是把算力網(wǎng)絡(luò)的調(diào)度能力開放出去做成API服務(wù)。業(yè)務(wù)方不需要關(guān)心底層有多少機(jī)房、什么型號的GPU只需要調(diào)一個接口傳入任務(wù)描述、數(shù)據(jù)規(guī)模、期望時延系統(tǒng)自動完成節(jié)點(diǎn)選擇、資源分配、數(shù)據(jù)調(diào)度。這個才真正意義上做到了“計算能力像公共服務(wù)一樣被消費(fèi)”。我在做算力網(wǎng)絡(luò)項(xiàng)目的這幾年里回過頭看最難的不是算法也不是設(shè)備而是讓各方在同一個目標(biāo)下協(xié)作。算力網(wǎng)絡(luò)是一個會持續(xù)演進(jìn)的系統(tǒng)工程它從“把算力連接起來”開始到“讓計算能力變得隨手可用”結(jié)束中間的路很長。我個人最大的體會是先把手頭的算力資源盤點(diǎn)清楚再來談?wù){(diào)度這兩個字。算力網(wǎng)絡(luò)的價值不在宏大敘事里而在那些每天都在發(fā)生的細(xì)碎優(yōu)化中。