潘 靈
(中國西南電子技術研究所,四川 成都 610036)
近年來,云計算、大數據、人工智能等技術高速發展,為社會帶來了巨大的經濟價值,并且深刻地改變改變著當今社會。然而,這些技術構建的底層硬件和操作系統是x86 等通用處理器或非實時操作系統,很難直接應用在對體積、功耗、高低溫等極端環境下。軍用武器電子裝備,尤其是航空電子裝備和航天載荷等,對環境適應性和處理實時性有非常高的要求,因此不得不大量基于現場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)/信號處理(Digital Signal Process,DSP)等嵌入式處理器構建系統,而目前廣泛采用的模塊綜合化集成方法,雖然能夠獲得較獨立式裝備更高的集成度和資源利用率,但集成難度大、復雜度高、周期長。為使武器電子裝備適應下一代信息化戰爭的對抗需求,需要龐大的計算能力作為支撐,采用模塊綜合化的方式已經很難對超大規模計算系統進行集成,迫切需要提出一種新的系統架構。本文提出的高性能嵌入式云計算的處理平臺架構就是誕生在這個技術背景下。
采用二層資源調度的方式,將高速實時數據分析應用運行在容器虛擬機集群中。第1 層資源調度為通過容器虛擬機集群管理底層的嵌入式硬件資源,將計算資源和內存資源封裝為容器虛擬機,在容器虛擬機中運行Node Manager 及Resource Manager,同時容器虛擬機占用的計算、內存等資源可彈性分配與設置[1];第2 層資源調度是通過資源管理調度高速實時數據分析分布式應用。在容器虛擬機集群中,可以運行多個資源調度集群,形成彈性可擴展的分布式計算集群,從而在容器虛擬機集群中部署專用加速應用,如圖1所示。

圖1 功能應用在容器虛擬機集群中部署框架
專用加速分布式應用需要通過云加速平面中的FPGA/DSP,實現實時專用加速算法。在通過容器虛擬機集群部署專用加速應用時,通用數據處理鏡像直接運行在容器虛擬機上。各類專用算法鏡像,在鏡像運行到容器虛擬機上后,再將特定的加速算法,offload 到FPGA/DSP 加速資源上。加速算法之間通過實時高帶寬低時延網絡交互數據。
在總體方案設計過程中,首先對硬件組成進行邏輯上的分析,得出如圖2 所示的硬件組成邏輯圖。根據圖計算的理論和方法[2],在總體方案設計上,將并行計算平臺分為若干軟件配置項,主要分為調度類的配置項與計算類的配置項,各配置項分別完成并行計算中與之相關的任務。
并行計算框架主要包括通用調度域和實時計算域兩個維度。通用調度域包含系統控制器(Master)、任務驅動器(Driver)、節點控制器(Agent)、執行器組管理器(WorkerMgr)幾個功能模塊,實時計算域中包含多個執行器,承擔實質的實時計算任務,如圖3 所示[3-4]。

圖2 嵌入式并行計算硬件邏輯

圖3 并行計算框架結構內部邏輯關系
DSP 的執行器框架包含:Ti systembios 操作系統、RapidIO 通信中間件、實時數據集管理等基本組成部分;并在此基礎上,框架封裝了基本的roundRobin、mergeto 等基本算子。用戶自定義Map函數、Reduce 函數等功能,與框架進行集成,形成一個可運行在DSP 處理核上的算法,進入分布式框架的算法庫進行管理[5]。算法產生過程如圖4 所示。
實時計算圖的運行過程就是計算圖中多操作到硬件資源的部署過程,如圖5 所示。大規模計算圖或者多計算圖并行運行時,這些圖的運行需要將計算圖中的多操作并行部署到計算域中通用的計算資源中去。

圖4 DSP 執行器框架形成算法

圖5 計算圖中多操作到硬件資源的映射
計算圖遠程并行加載關鍵技術是一種基于遠程過 程調用(Remote Procedure Call,RPC)網絡遠程調用框架。通過節點控制器和執行器組管理器分層部署策略,將計算圖中的多個操作部署到硬件資源域中的大規模數量的計算核上的應用技術。該技術能夠實現多DSP 核,甚至單核上多線程,以及多FPGA 分區等多種計算粒度的程序部署。
執行器(Worker)可能部署于不同計算節點的計算核上,也可能部署于同一個計算節點的不同計算核上。為實現每個計算圖中各個執行器(Worker)通信與位置無關,并滿足執行器(Worker)間通信的高效性和實時性,執行器(Worker)之間采用統一的虛端口進行信息交互,突破了基于本地共享內存與SRIO 總線共享內存模型進行統一的內存映射通信技術,如圖6 所示。

圖6 核間通信Worker 通信
本文針對當前軍事電子裝備中嵌入式計算資源與裝備功能深度綁定,無法實現計算資源云化共享的問題,提出了輕量級計算資源云化方法,實現了高動態復雜任務的快速分解和跨平臺靈活部署。針對商用并行計算系統難以滿足實時性需求的問題,提出了分布式系統分域處理的理論和方法,將分布式系統分為通用調度域和實時計算域兩個維度,計算資源和分布式任務的管理和維護部署到通用調度域,并行計算任務算法部署到實時計算域中,實現了調度平面與加速平面的協同運行,實時平面響應時間達到us 級。針對MapReduce、Spark 等大數據處理框架由于功能復雜、資源需求高,導致難以適應嵌入式計算資源的問題,提出了輕量級圖計算實現方法,使平臺具備支持大規模信號級并行計算的能力,支持計算節點數大于256,計算核大于1 024,并發任務數不低于128 個。