北京2023年10月27日 /美通社/ -- 近日,浪潮云海首席科學家張東、資深研究員亓開元在《中國計算機學會通訊》2023年第9期發(fā)表論文《面向一云多芯的系統(tǒng)設計方法》,深入分析一云多芯背后的關鍵挑戰(zhàn)問題,闡釋面向一云多芯的系統(tǒng)設計方法和關鍵技術路線,并在此基礎上,描繪了一云多芯三階段發(fā)展路線圖,為促進一云多芯向應用感知、架構無感知的目標迭代演進提供新思路。
近年來,巨大的市場需求加速了我國云計算軟硬件的發(fā)展,從芯片、整機、云操作系統(tǒng)、中間件到應用軟件的云計算創(chuàng)新鏈、產(chǎn)業(yè)鏈已初步形成。隨著行業(yè)"上云用數(shù)賦智"進程的不斷加速和深化,應用場景呈現(xiàn)多樣化趨勢,越來越多的數(shù)據(jù)中心選擇多元化的算力構建,給融合池化管理和靈活彈性調(diào)度帶來了新的挑戰(zhàn)。
中央處理器(CPU)作為應用最廣泛的算力器件,多廠商、不同架構疊加組合造成的多元異構現(xiàn)象尤為突出。Intel、AMD等x86架構仍是數(shù)據(jù)中心的主導力量,但占比逐步縮減;ARM架構憑借運算核心多、功耗低等優(yōu)勢,發(fā)展勢頭強勁;開源的RISC-V架構也逐步興起。同時,在全球產(chǎn)業(yè)鏈重構的背景下,我國核心器部件的研發(fā)和生產(chǎn)也進入蓬勃發(fā)展階段,但因起步較晚、技術路線各異、發(fā)展水平不一,多元異構處理器將會長期并存發(fā)展。
一云多芯關鍵科學問題
云計算作為一種追求性價比的算力供給模式,其處理器的升級、換代和擴容正從單一架構向多元異構轉(zhuǎn)變。在多元異構處理器功能、性能和可靠性存在差異的情況下,為滿足高效穩(wěn)定的技術需求,實現(xiàn)應用跨處理器低成本或自由切換,規(guī)避供應風險,保障關鍵業(yè)務長期穩(wěn)定運行,"一云多芯"成為云計算發(fā)展的必然趨勢。
互聯(lián)網(wǎng)行業(yè)面向公有云的一云多芯工作開始得較早,憑借技術和資金儲備自研高性價比的處理器,如亞馬遜推出基于ARM的Graviton處理器,打破了對x86架構的依賴。針對行業(yè)私有云南向資源多樣性與北向應用復雜性的矛盾,目前國內(nèi)金融、電信、能源等行業(yè)也已開始進行一云多芯的研究和建設,早期通過云管理層實現(xiàn)納管多個異構資源池,雖然能形成統(tǒng)一入口,但由于資源池割裂、應用無法跨架構編排,造成資源供給效率低下。
云海云操作系統(tǒng)(InCloud OS)、Apsara Stack、EasyStack等通過單一資源池實現(xiàn)異構資源的統(tǒng)一調(diào)度和互聯(lián)互通,但當前階段主要解決"多芯"的混部問題,距離以應用為中心的跨架構運行和低成本切換尚有較大差距。為滿足多芯共存條件下業(yè)務的穩(wěn)定運行、平滑切換和彈性伸縮,如下科學問題和技術難題亟待解決。
1.應用跨架構可移植及運行環(huán)境等價性問題。應用程序運行在多芯系統(tǒng)不同處理器架構的節(jié)點上,首先需要確保程序本身的跨架構可移植。進一步,層次化、模塊化的復雜應用在異構節(jié)點間進行動態(tài)遷移、遠程調(diào)用或水平擴展,如何保障運行環(huán)境(操作系統(tǒng)、運行時、依賴庫等)的跨架構等價可執(zhí)行成為挑戰(zhàn)(見圖1)。
2.多元異構算力量化分析和負載感知調(diào)度問題。多元異構CPU性能差異達2~10倍,附加異構加速單元的節(jié)點間計算能力的差異更是數(shù)量級的。應用在異構節(jié)點間遷移、切換或伸縮時,需要保證用戶體驗前后一致,遵守業(yè)務的服務水平協(xié)議(Service Level Agreement,SLA)。如何針對多元異構算力等價關系進行評估建模和量化分析,實現(xiàn)負載感知均衡調(diào)度和自適應彈性伸縮成為關鍵科學問題。
3.非對等架構下分布式應用的狀態(tài)一致性保證問題。相比于傳統(tǒng)分布式節(jié)點的對等性,一云多芯應用分布的異構節(jié)點非對等性不容忽視。針對非對等分布式云原生應用,實現(xiàn)有狀態(tài)任務在異構節(jié)點間高效一致性共識協(xié)商和數(shù)據(jù)同步,以及無狀態(tài)任務的非侵入流量動態(tài)控制和平滑切分,成為跨架構云原生應用編排的關鍵技術難點。
一云多芯系統(tǒng)設計和關鍵技術
ACM圖靈獎獲得者尼古拉斯·沃斯(Niklaus Wirth)提出了著名的公式"程序=數(shù)據(jù)結構+算法",揭示了程序的時間和空間本質(zhì)。一云多芯系統(tǒng)作為一種軟件定義外延,除了數(shù)據(jù)平面的指令邏輯和數(shù)據(jù)狀態(tài)兩個時空要素外,還包括控制平面對多元異構資源的管控。因此,一云多芯系統(tǒng)可以抽象為"資源管理+運行程序+數(shù)據(jù)狀態(tài)"。
其中,資源管理通過軟件定義提供計算、存儲、網(wǎng)絡和安全等硬件資源抽象,以虛擬機、容器、裸金屬(bare metal)等粒度為應用提供資源封裝及運行環(huán)境;運行程序按照分層解耦分為資源層、平臺層和應用層,例如,承載用戶業(yè)務的應用程序、資源管理程序;數(shù)據(jù)狀態(tài)是指程序運行所依賴的內(nèi)存瞬時數(shù)據(jù)、數(shù)據(jù)庫持久化數(shù)據(jù)及流量狀態(tài)等。
根據(jù)上述定義,一云多芯系統(tǒng)應從程序的可運行性、資源的可管理性及狀態(tài)的可遷移性三方面分別進行設計。
1. 程序的可運行性程序的跨架構運行在一云多芯系統(tǒng)中,程序的首要設計目標是可運行性,即可以在不同處理器架構的環(huán)境中移植運行,技術路線包含跨平臺語言、跨平臺編譯以及指令翻譯技術(見下表程序的跨架構運行技術)
主要特點 |
適用場景 |
局限性 |
|
跨平臺語言 |
程序本身適用具有跨平臺特性的編程 |
Web應用、OpenStack各組 |
運行時環(huán)境依賴、本地庫依賴 |
跨平臺編譯 |
通過編譯生成與目標架構匹配的二進 |
應用的跨平臺構建。例如通過 |
對于可執(zhí)行程序、仍然需要二 |
二進制翻譯 |
無需重新編譯。實現(xiàn)二進制指令的直接 |
桌面輕量應用、模擬器、科研 |
性能損耗較大,對處理器能力 |
跨平臺語言以Java、Python為代表,通過跨平臺語言實現(xiàn)程序架構無關部分的跨架構運行,但仍然存在一些架構相關的問題:(1)運行時環(huán)境依賴,例如,Java程序在多芯系統(tǒng)中運行需要提供不同架構的Java虛擬機(Java Virtual Machine,JVM)運行時;(2)本地庫依賴,例如Java本地接口(Java Native Interface,JNI)需要跨平臺移植。
跨平臺編譯即交叉編譯,借助特定處理器架構環(huán)境及編譯工具生成其他架構的可執(zhí)行程序。交叉編譯通過架構無關的源代碼實現(xiàn)程序的跨平臺二進制代碼生成,但是對于可執(zhí)行程序,仍然需要統(tǒng)一二進制代碼與處理器架構。
二進制翻譯即指令集翻譯技術,是解決應用跨架構移植問題的研究熱點,實現(xiàn)方法包括軟件級二進制翻譯和芯片級二進制翻譯。無論軟件級還是芯片級,均受到翻譯系統(tǒng)的限制。軟件級二進制翻譯需要對應用運行環(huán)境進行改造,增加了運行環(huán)境的復雜性,而芯片級二進制翻譯過程性能損耗嚴重。例如,目前針對純運算類程序的翻譯器效率是直接編譯的60%~70%,如果涉及系統(tǒng)調(diào)用、鎖等操作,效率將下降到30%~40%,并且二進制翻譯過程依然存在指令集不兼容的問題,例如高級矢量擴展(Advanced Vector Extensions,AVX)指令。
運行時的等價封裝
跨平臺語言解決了應用的跨架構問題,但是需要提供跨架構的運行時;交叉編譯解決了跨架構編譯問題,但是仍然存在運行時的動態(tài)庫依賴問題。因此,程序在多芯系統(tǒng)中運行不僅需要考慮自身的可運行性,對于現(xiàn)代化的復雜應用,還應綜合考慮其依賴的運行時。可行的路線是結合標準化的容器方式對應用程序及其運行時依賴進行封裝,作為實現(xiàn)應用的跨架構部署及切換的基礎資源封裝。
也就是說,基于同一套源代碼,針對不同的架構構建不同的容器鏡像,如果程序是基于跨平臺的語言構建的,則將程序腳本或中間代碼與運行時封裝為容器;如果程序是基于非跨平臺的語言構建的,則可以通過交叉編譯,構建各種架構下的二進制文件,然后將其與依賴庫等封裝為容器,此流程可以通過一套流水線作業(yè)自動構建,并推送至鏡像庫。
綜上所述,一云多芯程序可運行性設計包括三個方面,首先實現(xiàn)應用程序的跨架構編譯及運行,其次構建標準容器化封裝,最后通過云資源編排管理實現(xiàn)輕量化部署(見圖2)。
2.資源的可管理性資源可管理性包括架構感知和算力量化分析,以及面向系統(tǒng)的資源均衡調(diào)度和面向業(yè)務的彈性伸縮。
架構感知技術架構感知是一云多芯實現(xiàn)節(jié)點調(diào)度、界面功能自適應展示的關鍵,是支撐程序的可運行性、實現(xiàn)資源封裝生命周期管理的基礎,可通過收集器、調(diào)度器、攔截器實現(xiàn)。(1)收集器采集并上報各節(jié)點的CPU架構、硬件特性等信息,建立包含架構特性的主機列表。(2)調(diào)度器為各種粒度的資源封裝選擇匹配的主機節(jié)點,采用級聯(lián)過濾器機制,加載多個獨立的過濾器,依次對創(chuàng)建請求與主機進行匹配。在一云多芯場景下,通過級聯(lián)架構感知過濾器,識別資源封裝創(chuàng)建請求中的鏡像架構標簽,根據(jù)CPU架構特性匹配結果過濾出主機節(jié)點。(3)攔截器用于建立可動態(tài)擴展的"架構-功能"映射矩陣,解析資源封裝管理請求的動作及架構特征,執(zhí)行攔截請求并將結果反饋展示,從而實現(xiàn)不同架構功能差異化的自動識別、動態(tài)擴展,屏蔽底層實現(xiàn)差異,提供統(tǒng)一的資源管理視圖。
算力量化技術
因不同架構的處理器計算能力不同,相同應用即便使用了同等規(guī)格的資源封裝(例如相同的CPU核心、內(nèi)存等),在異構環(huán)境上運行的性能也存在差異。根據(jù)應用場景,算力可分為CPU通用算力和XPU異構算力。一云多芯系統(tǒng)目前面臨的主要問題是CPU的多元異構,多廠商的ARM、x86架構處理器在指令集、核心數(shù)、生產(chǎn)工藝等方面均有所不同,因此在性能上也存在差異。這種差異性可以通過算力等價關系刻畫,根據(jù)層次劃分為規(guī)格算力、有效算力和業(yè)務算力(見表2)。
其中,規(guī)格算力的通用性最強,有效算力對特定負載類型更具針對性,業(yè)務算力更加貼近真實的應用場景,但由于負載和應用的多樣性,有效算力、業(yè)務算力的測算需要聯(lián)合上下游生態(tài)共同完成。
定義 |
測算對象 |
量化方法 |
測算工具 |
|
規(guī)格算力 |
從服務器系統(tǒng)資源層面測試評估
|
處理器、內(nèi)存、磁盤和 |
系統(tǒng)整機規(guī)格性能基 |
SPEC CPU、 |
有效算力 |
從平臺層面測試評估中間件的資 |
Redis、MySQL、 |
針對中間件的井發(fā)性 |
Redis-Benchmark 、 |
業(yè)務算力 |
從應用層面使用真實業(yè)務負載測 |
客戶關系管理(CRM) |
針對業(yè)務事務處理能 響應時延、選代時間等 |
Jmeter、LoadRunner |
均衡調(diào)度技術
從資源層面,在為資源封裝選擇節(jié)點時,根據(jù)節(jié)點計算能力利用均衡策略對負載進行調(diào)度,這是一個以資源利用率最大化為目標的約束優(yōu)化問題。均衡調(diào)度算法作用在級聯(lián)過濾器之后,從過濾出的主機節(jié)點中選擇負載相對最小的作為最終目標,對于一云多芯系統(tǒng),此過程的關鍵是節(jié)點的算力量化分析?;谝?guī)格算力評估多類型資源的規(guī)格系數(shù),再結合歸一化、主資源公平等數(shù)值方法,能夠測算出各節(jié)點的可用算力。基于歸一化的算法如下:
節(jié)點j的得分Scorej是r種資源類型權重得分之和,包括CPU、內(nèi)存、硬盤等,如式(1)。各資源類型權重得分算法如式(2),其中,ResourceNormalizedji為節(jié)點j資源i可分配量的最小-最大正向歸一化,如式(3)所示;WeighterMultiplieri為資源的權重,可根據(jù)負載的CPU、內(nèi)存或IO密集類型調(diào)整權重,體現(xiàn)每種資源的重要程度,coefficientji為各資源的規(guī)格算力系數(shù),例如,ARM型和x86型CPU的規(guī)格算力量化關系為1∶2,規(guī)格系數(shù)分別為1和2,可分配CPU核數(shù)相同的情況下,x86型節(jié)點被調(diào)度的優(yōu)先級更高,從而實現(xiàn)一云多芯場景下基于算力量化的均衡調(diào)度。
彈性伸縮技術
為了支撐面向業(yè)務峰值和低谷的彈性伸縮,要做到資源封裝的精準規(guī)劃、快速調(diào)度和算力等價,保證應用服務彈得對、彈得快、彈得準。(1)在資源規(guī)劃方面,根據(jù)應用負載特定周期內(nèi)的概率分布特征,基于歷史數(shù)據(jù)時間序列建立負載趨勢模型,刻畫應用負載、服務質(zhì)量與資源關系的負載畫像和容量畫像,通過負載趨勢預測和應用異常反饋方式規(guī)劃資源封裝伸縮需求。(2)在快速調(diào)度方面,基于架構感知、均衡調(diào)度技術,在擴展資源封裝時快速調(diào)度至最佳節(jié)點,并拉起應用服務,保障應用服務及時響應。(3)在彈性伸縮引發(fā)資源封裝跨架構切換時,基于算力量化技術刻畫不同架構的算力,根據(jù)有效算力、業(yè)務算力計算資源封裝的等價關系,確保業(yè)務的服務質(zhì)量隨資源增減而線性伸縮。
3.狀態(tài)的可遷移性資源層的應用狀態(tài)遷移將持久化數(shù)據(jù)、內(nèi)存瞬時狀態(tài)、外設配置以及網(wǎng)絡流量整體遷移至目標節(jié)點,涉及資源封裝內(nèi)所有相關數(shù)據(jù)狀態(tài)。除了應用本身之外,還涉及操作系統(tǒng)、中間件等,遷移難度較大。為解決此問題,可進一步遵循資源層、平臺層和應用層解耦的思路,采用基于云原生微服務治理的狀態(tài)同步和流量切分方法。
資源封裝遷移
虛擬機的在線熱遷移技術已經(jīng)相對成熟,通常通過預拷貝算法將源虛擬機的內(nèi)存增量狀態(tài)以迭代的方式傳輸?shù)侥康闹鳈C,也出現(xiàn)了后拷貝、混合拷貝等優(yōu)化算法以及硬件壓縮加速技術,加速內(nèi)存拷貝收斂,減少停機時間,提升遷移效率。但是虛擬機遷移仍存在相同廠商CPU代際差距、不同廠商同架構兼容性、不同架構無法熱遷移的限制。容器的在線遷移技術研究起步較晚,本質(zhì)上是進程組的遷移,當前的研究主要基于用戶空間的檢查點和恢復(Checkpoint and Restore In Userspace,CRIU)實現(xiàn)容器運行時狀態(tài)的遷移,并衍生出了一系列縮短遷移時間、降低不可用時間的優(yōu)化方法。
此外,自適應容器在線遷移通過動態(tài)調(diào)整壓縮算法的加速因子實現(xiàn)CPU和網(wǎng)絡帶寬資源的匹配,減少容器快照的傳輸時間。以虛擬機和容器為資源封裝粒度的整體遷移,雖然已經(jīng)有了一些研究與應用,但是仍存在遷移數(shù)據(jù)量大、停機時間和總遷移時間長的問題,實現(xiàn)應用跨架構平滑切換難度較大。隨著云原生技術的發(fā)展,結合服務治理方式成為可行路線,其中的關鍵技術包括有狀態(tài)服務的數(shù)據(jù)同步、無狀態(tài)服務的流量切換。
數(shù)據(jù)狀態(tài)同步
多副本的狀態(tài)同步依賴于分布式一致性算法。ACM圖靈獎獲得者萊斯利·蘭伯特(Leslie Lamport)提出了基于消息傳遞且具有高容錯性的Paxos共識算法,ZooKeeper的ZAB,MySQL的wsrep、Etcd,Redis的Raft協(xié)議都基于其核心思想實現(xiàn)了數(shù)據(jù)狀態(tài)一致性。在此基礎上,一云多芯平臺層的數(shù)據(jù)狀態(tài)同步需要進一步考慮節(jié)點非對稱特征。下文以Raft協(xié)議為例進行說明。
選舉(leader election)過程:主節(jié)點(leader)向所有的從節(jié)點(follower)周期性發(fā)送心跳來保證主節(jié)點地位,當一個從節(jié)點在一個超時周期內(nèi)沒有收到心跳,則該節(jié)點轉(zhuǎn)化為候選(candidate)節(jié)點參與選舉。一云多芯系統(tǒng)中各節(jié)點的處理能力、網(wǎng)絡條件等不同導致超時影響差異化,可采用基于極大似然估計的適應性方法,避免心跳延遲大、處理能力弱的節(jié)點頻繁觸發(fā)選舉,同時保證處理能力強的節(jié)點可快速發(fā)起選舉。對于投票策略,采用節(jié)點優(yōu)先級或縮小隨機超時取值范圍機制,使強節(jié)點更容易獲得多數(shù)票。
復制(log replication)過程:采用法定寫入(quorum write)機制,主節(jié)點接收來自客戶端的請求,向從節(jié)點發(fā)起寫入提議并接收反饋投票,每個提議獲得的票數(shù)大于半數(shù)才能提交寫入。在一云多芯中異構節(jié)點作為容災可用區(qū)(Availability Zone,AZ)設計,須保證各容災可用區(qū)都被寫入。
業(yè)務流量切分
云原生應用通過網(wǎng)關或負載均衡器將流量分發(fā)至各無狀態(tài)副本實例,流量就是無狀態(tài)工作負載的狀態(tài)。在多芯系統(tǒng)中,當應用在異構節(jié)點間遷移或彈性伸縮時,需要切分流量,并引流至對應節(jié)點的副本上。為保證服務質(zhì)量不降級,根據(jù)有效算力、業(yè)務算力量化分析確定等價目標副本的規(guī)格和數(shù)量,并分配其承擔的流量比例,流量切換應與業(yè)務邏輯充分解耦,可采用服務網(wǎng)格的思想實現(xiàn)。
控制面感知副本變化生成流量切分策略,下發(fā)至網(wǎng)絡代理和網(wǎng)關。對于東西向流量,網(wǎng)絡代理劫持流量并根據(jù)切分策略按比例轉(zhuǎn)發(fā)到不同的副本。對于南北向流量,網(wǎng)關在流量轉(zhuǎn)發(fā)時根據(jù)切分策略轉(zhuǎn)發(fā)到不同副本。在流量切分的瞬時過程中,受目標節(jié)點副本未啟動、TCP連接延遲等因素的影響,會出現(xiàn)無法響應、丟包等應用服務質(zhì)量下降的情況,可以通過預熱、探針、重試、排水技術保障應用跨架構的平滑切換。
一云多芯發(fā)展路徑
按照資源可管理性、程序可運行性、狀態(tài)可遷移性系統(tǒng)設計,一云多芯可以分三個階段逐步演進(見圖6)。
階段一:混合部署、統(tǒng)一管理、統(tǒng)一視圖
第一階段以可管理性為目標,實現(xiàn)異構處理器節(jié)點的統(tǒng)一池化管理、統(tǒng)一服務目錄和統(tǒng)一監(jiān)控運維,可運行性和可遷移性方面通過同源異構、離線遷移、手動切換、業(yè)務切分實現(xiàn)應用跨架構的部署和協(xié)同。目前國內(nèi)外一云多芯建設主要處于這一階段。遵循系統(tǒng)設計方法,筆者團隊在InCloud OS的研發(fā)實踐中,提出了基于同源異構的持續(xù)集成、基于不可變基礎設施的持續(xù)交付及架構感知調(diào)度方法,支持同一主線云操作系統(tǒng)源代碼編譯,構建異構節(jié)點的可執(zhí)行程序,實現(xiàn)C/C++、Java、Python、Go多語言千萬級代碼在8種主流處理器上的分鐘級構建,為各類型應用提供了參考指導方案。
在基于InCloud OS建設的云平臺中,單資源池支持所有主流處理器架構,并按每個控制器1000個節(jié)點級聯(lián)擴展,實現(xiàn)了相距超過1000公里的三地數(shù)據(jù)中心一云多芯跨域統(tǒng)一管理、互聯(lián)互通,支撐云數(shù)智多樣化業(yè)務需求,制定了技術規(guī)范和參考架構。
階段二:業(yè)務牽引、分層解耦、架構升級
在第一階段的基礎上,為進一步滿足應用的低成本跨架構切換,第二階段通過分層解耦和架構升級,實現(xiàn)應用的跨架構遷移、多架構混合部署和流量切分。筆者團隊分別在資源層、平臺層及應用層進行了初步探索。
1.在資源層,結合GuestOS感知應變機制進一步提升面向多元CPU的遷移適用性,提出了基于一致性快照的在線遷移方法。通過變更數(shù)據(jù)塊追蹤和多線程異步優(yōu)化,實現(xiàn)10 TB大規(guī)格虛擬機的快速完整遷移。遷移后,系統(tǒng)啟動初始化硬件檢查,若不支持相關CPU特性則切換到應變(fallback)措施,保證系統(tǒng)正常運行,特別針對Windows虛擬機實現(xiàn)了CPU、固件自適應,兼容Win XP以上桌面版和Win 2000以上服務器版,已在實際生產(chǎn)環(huán)境中展開應用。然而,虛擬機遷移的方式對應用是無感知的,遷移可能產(chǎn)生數(shù)據(jù)庫和應用異常的風險,需要應用開發(fā)者配合,對虛擬機遷移后的可用性進行進一步驗證。
2.在平臺層,目前生產(chǎn)環(huán)境采用的方案是通過數(shù)據(jù)同步、業(yè)務切分實現(xiàn)有狀態(tài)應用的跨架構運行?;贗nCloud OS提供x86和ARM數(shù)據(jù)庫集群服務及數(shù)據(jù)同步服務,數(shù)據(jù)同步服務根據(jù)源端數(shù)據(jù)庫預寫日志(Write Ahead Log,WAL)捕獲數(shù)據(jù)變化,在傳輸中通過加密壓縮算法、事務合并、網(wǎng)絡包封裝優(yōu)化網(wǎng)絡協(xié)議開銷和延遲,在目標端通過分組多任務并行和原生加載機制提升重放效率,實現(xiàn)亞秒級數(shù)據(jù)同步。應用基于讀寫分離架構設計,面向x86架構數(shù)據(jù)庫讀寫、ARM架構數(shù)據(jù)庫只讀,實現(xiàn)一云多芯場景下數(shù)據(jù)庫跨架構運行。
3.在應用層,InCloud OS于2023年1月完成首個一云多芯場景下SPEC Cloud基準測試,驗證了基于單一資源池承載多型x86、ARM處理器架構的資源可管理性、計算密集型聚類算法K-means的跨架構程序可運行性、IO密集型分布式數(shù)據(jù)庫Cassandra的狀態(tài)可遷移性,并結合均衡調(diào)度算法,實現(xiàn)了擴展性超過90%,性能超過SLA基線20%,平均上線時間超過世界紀錄25%。
階段三:軟件定義、算力標準、全棧多芯
一云多芯是芯與云的融合,是平臺和生態(tài)的協(xié)同。在第三階段,通過處理器、整機、云操作系統(tǒng)、數(shù)據(jù)庫、中間件和應用等產(chǎn)業(yè)鏈上下游的共同配合,實現(xiàn)應用與處理器架構的徹底解耦,保障業(yè)務長期穩(wěn)定運行。
1.在算力資源層,提升處理器性能、可靠性的同時,通過系統(tǒng)設計定義處理器設計標準化和兼容性,同時推動二進制翻譯技術在應用過程中不斷優(yōu)化。在支持處理器多芯的基礎上,擴展對GPU、DPU等異構算力的統(tǒng)一抽象,實現(xiàn)異構加速協(xié)同。
2.在平臺層,突破應用特征感知的可變粒度資源調(diào)度分配技術,解決應用類型與資源封裝的自適應配置和編排問題,研究函數(shù)拓撲編排、高效調(diào)度和快速啟動技術,解決大規(guī)模云原生應用的靈活構建和彈性擴展問題。
3.在應用層,促進應用支持多芯同源異構,完善云原生化轉(zhuǎn)型升級最佳實踐,與資源層和平臺層相結合,實現(xiàn)應用感知、架構無感知的平滑切換和彈性伸縮。
4.在算力評估、標準和測評方面,研究多元異構有效算力的量化方法,聯(lián)合專業(yè)測評機構及產(chǎn)業(yè)鏈上下游,建立一云多芯行業(yè)標準。
結束語:一云多芯是解決數(shù)據(jù)中心多芯共存問題的必然趨勢。為解決應用跨架構可運行、算力量化分析、負載感知調(diào)度、非對等架構分布式狀態(tài)一致性的問題,筆者團隊提出了一云多芯系統(tǒng)的核心設計理念和系統(tǒng)設計方法。
1.堅持系統(tǒng)觀念,場景驅(qū)動、系統(tǒng)設計。從以CPU為核心向以系統(tǒng)為核心的設計模式轉(zhuǎn)變,以應用為導向建立多元異構融合、軟件定義和軟硬協(xié)同的技術發(fā)展路線,持續(xù)提升計算效率和能效比。
2.加強生態(tài)協(xié)作,分層解耦、開放標準。處理器、整機、云操作系統(tǒng)、中間件、應用逐層解耦,通過生態(tài)協(xié)同消除單一技術路線帶來的垂直封閉、生態(tài)離散問題,實現(xiàn)一云多芯標準化和規(guī)范化。
3.制定發(fā)展路線圖,迭代創(chuàng)新、持續(xù)演進。從混合部署、離線遷移和手動切換,到基于架構升級的平滑切換和彈性伸縮,再到算力標準和全棧多芯迭代演進。
當前的研究和實踐工作正處于第一階段向第二階段的過渡時期,圍繞程序可運行性、資源可管理性和狀態(tài)可遷移性技術進行了探索和布局,下一步需要加強產(chǎn)業(yè)鏈、創(chuàng)新鏈協(xié)作,向應用感知、架構無感知的目標迭代演進,推動一云多芯計算理論基礎更加堅實完備,軟硬協(xié)同和軟件定義機制更加成熟有效,應用感知場景范式更加清晰可行,產(chǎn)業(yè)生態(tài)更加標準規(guī)范。