潘 靈
(中國西南電子技術(shù)研究所,四川 成都 610036)
近年來,云計算、大數(shù)據(jù)、人工智能等技術(shù)高速發(fā)展,為社會帶來了巨大的經(jīng)濟價值,并且深刻地改變改變著當今社會。然而,這些技術(shù)構(gòu)建的底層硬件和操作系統(tǒng)是x86 等通用處理器或非實時操作系統(tǒng),很難直接應(yīng)用在對體積、功耗、高低溫等極端環(huán)境下。軍用武器電子裝備,尤其是航空電子裝備和航天載荷等,對環(huán)境適應(yīng)性和處理實時性有非常高的要求,因此不得不大量基于現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)/信號處理(Digital Signal Process,DSP)等嵌入式處理器構(gòu)建系統(tǒng),而目前廣泛采用的模塊綜合化集成方法,雖然能夠獲得較獨立式裝備更高的集成度和資源利用率,但集成難度大、復(fù)雜度高、周期長。為使武器電子裝備適應(yīng)下一代信息化戰(zhàn)爭的對抗需求,需要龐大的計算能力作為支撐,采用模塊綜合化的方式已經(jīng)很難對超大規(guī)模計算系統(tǒng)進行集成,迫切需要提出一種新的系統(tǒng)架構(gòu)。本文提出的高性能嵌入式云計算的處理平臺架構(gòu)就是誕生在這個技術(shù)背景下。
采用二層資源調(diào)度的方式,將高速實時數(shù)據(jù)分析應(yīng)用運行在容器虛擬機集群中。第1 層資源調(diào)度為通過容器虛擬機集群管理底層的嵌入式硬件資源,將計算資源和內(nèi)存資源封裝為容器虛擬機,在容器虛擬機中運行Node Manager 及Resource Manager,同時容器虛擬機占用的計算、內(nèi)存等資源可彈性分配與設(shè)置[1];第2 層資源調(diào)度是通過資源管理調(diào)度高速實時數(shù)據(jù)分析分布式應(yīng)用。在容器虛擬機集群中,可以運行多個資源調(diào)度集群,形成彈性可擴展的分布式計算集群,從而在容器虛擬機集群中部署專用加速應(yīng)用,如圖1所示。
圖1 功能應(yīng)用在容器虛擬機集群中部署框架
專用加速分布式應(yīng)用需要通過云加速平面中的FPGA/DSP,實現(xiàn)實時專用加速算法。在通過容器虛擬機集群部署專用加速應(yīng)用時,通用數(shù)據(jù)處理鏡像直接運行在容器虛擬機上。各類專用算法鏡像,在鏡像運行到容器虛擬機上后,再將特定的加速算法,offload 到FPGA/DSP 加速資源上。加速算法之間通過實時高帶寬低時延網(wǎng)絡(luò)交互數(shù)據(jù)。
在總體方案設(shè)計過程中,首先對硬件組成進行邏輯上的分析,得出如圖2 所示的硬件組成邏輯圖。根據(jù)圖計算的理論和方法[2],在總體方案設(shè)計上,將并行計算平臺分為若干軟件配置項,主要分為調(diào)度類的配置項與計算類的配置項,各配置項分別完成并行計算中與之相關(guān)的任務(wù)。
并行計算框架主要包括通用調(diào)度域和實時計算域兩個維度。通用調(diào)度域包含系統(tǒng)控制器(Master)、任務(wù)驅(qū)動器(Driver)、節(jié)點控制器(Agent)、執(zhí)行器組管理器(WorkerMgr)幾個功能模塊,實時計算域中包含多個執(zhí)行器,承擔實質(zhì)的實時計算任務(wù),如圖3 所示[3-4]。
圖2 嵌入式并行計算硬件邏輯
圖3 并行計算框架結(jié)構(gòu)內(nèi)部邏輯關(guān)系
DSP 的執(zhí)行器框架包含:Ti systembios 操作系統(tǒng)、RapidIO 通信中間件、實時數(shù)據(jù)集管理等基本組成部分;并在此基礎(chǔ)上,框架封裝了基本的roundRobin、mergeto 等基本算子。用戶自定義Map函數(shù)、Reduce 函數(shù)等功能,與框架進行集成,形成一個可運行在DSP 處理核上的算法,進入分布式框架的算法庫進行管理[5]。算法產(chǎn)生過程如圖4 所示。
實時計算圖的運行過程就是計算圖中多操作到硬件資源的部署過程,如圖5 所示。大規(guī)模計算圖或者多計算圖并行運行時,這些圖的運行需要將計算圖中的多操作并行部署到計算域中通用的計算資源中去。
圖4 DSP 執(zhí)行器框架形成算法
圖5 計算圖中多操作到硬件資源的映射
計算圖遠程并行加載關(guān)鍵技術(shù)是一種基于遠程過 程調(diào)用(Remote Procedure Call,RPC)網(wǎng)絡(luò)遠程調(diào)用框架。通過節(jié)點控制器和執(zhí)行器組管理器分層部署策略,將計算圖中的多個操作部署到硬件資源域中的大規(guī)模數(shù)量的計算核上的應(yīng)用技術(shù)。該技術(shù)能夠?qū)崿F(xiàn)多DSP 核,甚至單核上多線程,以及多FPGA 分區(qū)等多種計算粒度的程序部署。
執(zhí)行器(Worker)可能部署于不同計算節(jié)點的計算核上,也可能部署于同一個計算節(jié)點的不同計算核上。為實現(xiàn)每個計算圖中各個執(zhí)行器(Worker)通信與位置無關(guān),并滿足執(zhí)行器(Worker)間通信的高效性和實時性,執(zhí)行器(Worker)之間采用統(tǒng)一的虛端口進行信息交互,突破了基于本地共享內(nèi)存與SRIO 總線共享內(nèi)存模型進行統(tǒng)一的內(nèi)存映射通信技術(shù),如圖6 所示。
圖6 核間通信Worker 通信
本文針對當前軍事電子裝備中嵌入式計算資源與裝備功能深度綁定,無法實現(xiàn)計算資源云化共享的問題,提出了輕量級計算資源云化方法,實現(xiàn)了高動態(tài)復(fù)雜任務(wù)的快速分解和跨平臺靈活部署。針對商用并行計算系統(tǒng)難以滿足實時性需求的問題,提出了分布式系統(tǒng)分域處理的理論和方法,將分布式系統(tǒng)分為通用調(diào)度域和實時計算域兩個維度,計算資源和分布式任務(wù)的管理和維護部署到通用調(diào)度域,并行計算任務(wù)算法部署到實時計算域中,實現(xiàn)了調(diào)度平面與加速平面的協(xié)同運行,實時平面響應(yīng)時間達到us 級。針對MapReduce、Spark 等大數(shù)據(jù)處理框架由于功能復(fù)雜、資源需求高,導(dǎo)致難以適應(yīng)嵌入式計算資源的問題,提出了輕量級圖計算實現(xiàn)方法,使平臺具備支持大規(guī)模信號級并行計算的能力,支持計算節(jié)點數(shù)大于256,計算核大于1 024,并發(fā)任務(wù)數(shù)不低于128 個。