孫凝暉:算力網為供給側和消費側帶來多種收益
算力網是算力、算法和數據對象三要素相融合的基礎設施化。互聯網底層是以5G、光纖、星網為主的數據通信網;中間是以IP為核心的互聯網體系結構;上層是萬維網(WWW,也稱為信息網),通過信息網,我們每個人都可以隨時隨地訪問世界上任何地方的數據和信息。與信息網平行的就是算力網,其存在的目的是服務千行百業的模型上網,讓用戶能夠隨時隨地訪問世界上任何地方的算力資源。在信息網和算力網之上,進一步構建出消費互聯網和產業互聯網。算力網與信息網不同,信息網是以信息(即網頁)為核心,而算力網以算法為核心,高效適配多樣性算力,對數據資產進行深度加工,產出各式各樣的模型。
當前,我國正在推進“東數西算”工程,其目標就是在企業級的算力網和城市級的算力網的基礎上,進一步構建一個國家級的算力網。從算力基礎設施化的角度來看,“東數西算”工程的關鍵是在“數”和“算”上做原創性的工作,這樣才能真正把“東數西算”工程持續推進下去。
算力網的生態和云計算的生態應該有所不同。云計算只有兩種角色,即算力消費者和算力供給者,供給者包括亞馬遜、阿里巴巴這些云供應商;而算力網擁有更多細分的角色,如算力提供商、算力運營商、算力增值服務商等,應將算力的各個環節進行解耦,以此構建一個真正的算力網生態。在這個生態下,我們需要關注算力網為用戶帶來的多種收益。
在算力供給側方面算力網帶來的收益
一是可為“東數西算”工程節約用電120億度,消納“棄風棄光”。2021年,全國數據中心的總耗電量大致相當于湖南省全省的用電量,那么“東數西算”工程能不能節電呢?現在西部的算力大概占全國的4%,據估計,未來五年,西部算力大概會占全國總算力的20%。因為,西部數據中心PUE(電源使用效率)比較低,再減去電力傳輸的損耗,能比在東部數據中心節約30%左右的電量。按照全國數據中心一年總耗電量兩千億度來計算,“東數西算”工程一年可以節約120億度電,約占我國一年總用電量八萬億度的0.15%。此外,西部擁有大量綠電資源,但2021年“棄風棄光”就達到273.8億度,如果該部分可以被西部數據中心動態消納,就可以實現節能減排。
二是整合國家超級計算中心資源,統一賬戶統一運維,提供深度超算優化服務。目前,我國大概有十個左右的國家級超級計算中心,如果將國家級超級計算中心用超算互聯網的方式統一起來,建立一個虛擬的、國家最大的超級計算中心來提供服務,可有效提高超算的資源利用率。同時,統一的超級計算中心可以屏蔽底層體系結構的異構性,通過移植和優化,以服務的形式為用戶提供服務。
三是虛擬機可按需跨地域調度,降低資費和應用延遲。“東數西算”工程經常會提起虛擬機跨地域調度,如果我們能夠很好地讓虛擬機根據用戶的需求進行跨地域調度,就會得到很多收益。例如,根據用戶的位置,可以就近調度用戶的虛擬機,減少延遲;也可以根據實時報價,把用戶虛擬機調度到綠電節點,降低算力的電費;還可以做負載平衡,提高該重載的情況下整個應用的吞吐能力。
四是整合城市中小算力中心的閑置資源,形成虛擬城市算力網,降低使用門檻,提高利用率。可以城市為單元進行資源整合,當前許多城市都建立了大大小小的算力中心,有的是政府投資建設,有的是企業投資建設,都有不同的服務對象。但這些數據中心里存在大量閑置資源,如果將算力網運用到各個城市里,就像虛擬運營商一樣建立虛擬的城市算力網,對閑置資源進行統一運維、統一調度、統一交易,將大大提升公共資源的利用率。
五是新的算力容器抽象能夠實現更細粒度的時空隔離,提高資源利用率。算力網需要一個新的算力容器抽象,所有的算力資源都被封裝到一個最小的調度單元里供用戶使用。單機時代,操作系統里的進程本質上就是一個算力容器,以一個進程為單位,按照時間分片的方式,對單機硬件資源進行調度。云計算時代,算力容器是虛擬機,能夠對CPU、內存、存儲、網卡等硬件資源進行時空分片,后來有了更細粒度的軟件層面的算力容器——開源應用容器引擎(Docker)。過去幾年,中國科學院計算技術研究所提出了“任務閉包”的概念,可以在應用級進行更細粒度的封裝。有了這個最小粒度的算力容器后,除了提高資源利用率之外,還可以提高應用在重載下的通量。例如我們基于“任務閉包”做過一個紅包實驗,可以在一定時延要求下將通量提高六倍。
在算力消費側方面算力網帶來的收益
一是算網協同進行優化調度,為應用提供確定性時延保障。對于“東數西算”工程來說,網絡延遲將是一個嚴重的問題。從東部到西部,存在著30~60秒不等、方差很大的網絡延遲,跟本地毫秒級、抖動極小的延遲無法相提并論。很多工業制造應用,對于延遲抖動的要求極高。目前,未來互聯網基礎設施(CENI)可以將延遲控制在0.03毫秒之內,這樣將東邊的數據送到西邊,對那些網絡延遲抖動比較敏感的應用可以提供確定性延遲保障。
二是聯邦模型突破數據壁壘,利用分布式算力構建智能模型網。人工智能一般都是在本地建模,例如醫療數據,各個醫院都是在自己的數據中心內進行建模。如果要建大模型,需要把這些數據參數都傳到一個大的數據中心里進行建模,這樣在數據隱私等方面就存在較多風險。有了聯邦模型,無須傳遞數據,只需傳遞模型,不同算力中心可將本地模型集中傳遞到聯邦模型所在的算力中心,進行迭代式建模,從而實現分散式算力和數據協同工作。
三是主干編程面向物聯網(IoT)應用,提高端邊云協同場景下超異構分布式環境開發效率。歷史上每出現一些新應用,都伴隨著新的編程工具的出現。例如,在自動化時代,有可編程邏輯控制器(PLC);在單機時代,有小應用程序(Applet)等的組件編程;在互聯網時代,有以編程語言(Java)為代表的階段式事件驅動和以分布式計算系統(MapReduce)為代表的大數據,以及以符號數學系統(TensorFlow)為代表的人工智能。在物聯網時代,我們不但要考慮算法數據,更要考慮算力。在互聯網時代,手機端算力差別不大,但物聯網時代智能硬件端的算力差距很大,異構性很強,所以我們的編程要對此進行感知。中國科學院計算技術研究所提出一個叫主干編程的方式,通過主謂賓式的編程模式,以主干支干嵌套式進行任務分發,能夠很好地適應物聯網場景的多樣性。
四是云函數編程支持算力網原生應用編程,實現應用跨云橫向擴展。云函數編程可以解決應用原生進行橫向跨云擴展的需求,傳統云應用只能在一個集群內進行擴展,應用跨云就得進行重構。云函數是把應用變成一個個更小粒度的云函數,將每個函數都放到容器中,然后實現協同擴展,這樣云函數可以部署在一個云里,也可以擴展到其他云里,進而解決算力跨云擴展的問題。例如,進行跨云分布式訓練時,因為分布式訓練需要資源較多,單個云資源不夠,可以把另外一個云的資源也拉進來進行訓練,這個場景下云函數編程會非常方便。
五是用戶視角下的算力度量方式可以真正實現現收現付制(Pay-as-You-Go)。這一收益與算力度量有關,我們如果把算力做成服務的形式,就需要提供算力的度量和付費方式,這對提升用戶體驗來說非常重要。例如,用戶要對1億個64位整數進行排序,該如何進行度量和收費?如果按當前部分云計算廠商的方式進行度量便存在兩個問題。首先是度量不統一,很多人工智能應用使用8位、16位浮點/整型操作進行度量,高性能計算用64位浮點進行度量,而圖形處理器(GPU)是用32位/16位浮點進行度量,度量衡不統一;其次是用戶體驗和用戶付費不統一,例如,在兩臺服務器上執行相同的排序程序,一個用時1分鐘,另一個用時1.5分鐘,理論上花費時間多的體驗更差,但按當前據時間計費的模式,花時間長的反而費用更高,這與實際情況相悖。所以,針對這兩個問題,我們要把度量衡統一到64位基本操作,同時,用一種用戶可以感知算力使用量的方式進行計費。這樣就能夠真正實現現收現付制,如同高速公路一般,付費多少與使用這條高速公路的情況直接相關。
總而言之,當前算力網更多關注的還是在供給側方面的收益,我們應該更多地關注用戶在消費側方面的收益,通過技術創新,讓中小企業更愿意來使用算力,并從使用算力中得到好處,這才是算力網能夠持續發展的關鍵因素。
來源:《中國網信》2022年第7期