張敬一 劉志佳 張銳 毛雙蘭
(1 航天東方紅衛(wèi)星有限公司,北京 100094)(2 中國空間技術研究院西安分院,西安 710100)
在電子信息技術發(fā)展推動下,光學遙感小衛(wèi)星可以完成高分辨率光學遙感圖像的采集并將數據傳輸至地面,滿足人們對高分辨率遙感信息的需求,同時以其研制成本低、周期短、操作靈活等優(yōu)勢越來越受到廣大用戶的青睞,成為航天光學遙感領域重要的發(fā)展方向。高分辨率光學遙感小衛(wèi)星有效載荷產生的光學遙感數據量大、數據率高,需要經過星上數傳系統處理并傳輸到地面,由用戶使用。在其生產研制過程中,數傳地面測試系統作為星上數傳、光學載荷數據處理功能測試驗證的重要系統,對衛(wèi)星入軌后有效載荷、數傳系統在軌正常工作和應用起著至關重要的作用。
數傳地面測試系統主要由數傳通道測試系統和數傳基帶測試系統組成。數傳通道測試系統完成數傳射頻信號處理、解調、幀同步等功能,包括接收天線、射頻電纜、衰減器、下變頻、解調器(解擾、譯碼功能可選用)等通用商用設備。數傳基帶測試系統完成基帶數據處理(解擾、譯碼、解密解格式、解壓縮),以及測試數據存儲、測試功能模塊間數據交互、測試軟件集群管理等測試功能,并無商用設備,要根據星上數傳系統設計[1-2]進行逆處理設計。近年來,由于需求量旺盛,高分辨率光學遙感小衛(wèi)星生產向研制批量化發(fā)展,基于刀片服務器的數傳基帶測試系統已無法適應這一趨勢,亟需一種小型、通用、靈活、可靠和可擴展的數傳基帶測試系統。
本文以機架服務器+光纖交換機作為小型、通用、可擴展的硬件架構,繼承基于刀片服務器的數傳基帶測試系統各功能軟件,對其進行并行處理和負載均衡優(yōu)化設計后,移植于新硬件架構,實現一種小型實時數傳基帶測試系統,可滿足現有多種類型高分辨率光學小衛(wèi)星使用的450 Mbit/s×2通道數傳基帶數據處理測試功能需求,同時提高系統集成度、通用性和測試效能。
傳統數傳基帶測試系統在設計原理與實現上保持一致。各測試功能,包括數傳基帶數據處理(解擾、譯碼、解密解格式、解壓縮)、測試數據存儲、測試功能模塊間數據交互、測試軟件集群管理等,均由對應的功能模塊實現。其構成如圖1所示。
在圖1中,1項功能軟件布置于單臺硬件設備上,實現1項功能;各功能模塊是獨立的,通過模塊間數據交互功能模塊(千兆交換機)互連,進行作業(yè)消息和業(yè)務數據的交互;集群管理模塊通過作業(yè)消息與各業(yè)務模塊交互,完成業(yè)務模塊啟動、運行和停止的統一控制,并收集控制信息、模塊間連接信息和業(yè)務模塊數據處理結果;各業(yè)務模塊將本模塊處理后得到的業(yè)務數據傳遞給下一個業(yè)務模塊繼續(xù)處理;系統最終輸出載荷數據,由無限帶寬(IB)網絡傳向后端快視。該系統設計由于系統集成度不高、通用性較差和測試實效性差,無法滿足光學遙感小衛(wèi)星批量化生產所需的頻繁轉場、快速集成和實時判讀等需求。
立足于光學遙感小衛(wèi)星批量化生產需求,本文提出了一種小型化、通用化、易于集成、測試系統實時性有效性高的數傳基帶測試系統設計改進。本文系統設計在原理上繼承傳統數傳基帶測試系統功能模塊設計。在設計實現上,與傳統設計相比,將獨立分散的硬件改進設計為小型、通用、可擴展的硬件架構,質量、體積、功耗大大降低;引入混合并行處理機制,提高軟件自身及系統軟件整體的處理速度,并通過動態(tài)負載均衡算法實現一個高復雜或者多個較低復雜度并行處理軟件對同一臺機架服務器硬件(CPU和內存)資源的負載均衡,在宏觀上提高硬件資源平均使用率,顯著降低數傳基帶測試系統級時間延遲。如圖2所示,以機架服務器+光纖交換機為系統硬件架構,根據軟件功能需求并結合硬件資源,將各功能模塊軟件靈活均衡地分布在機架服務器上。
圖2 本文數傳基帶測試系統構成Fig.2 Constitution of baseband test system of data transmission proposed
數傳基帶測試系統設計改進關鍵技術有以下3點:①基于機架服務器+光纖交換機的系統硬件設計,將傳統設計的獨立硬件設計為小型、通用、可擴展的硬件架構;②基于信息傳遞接口(MPI)+共享存儲并行編程(OpenMP)混合并行處理的軟件設計,提高多臺機架服務器之間和同一臺機架服務器上多個同時執(zhí)行軟件的并行處理速度與能力;③OpenMP多線程動態(tài)負載均衡設計,實現同一臺機架服務器上多個并行軟件同時執(zhí)行時多核CPU和內存資源的負載均衡。
基于刀片服務器的傳統數傳基帶測試系統硬件架構[5]如圖3所示。該系統設計考慮刀片服務器大規(guī)模軟件運算處理能力和處理后數據存儲優(yōu)勢,與一些輔助專用設備構建整個系統,從技術角度可以滿足數傳基帶數據處理需求,但是對小型、通用、可擴展等需求存在較大差距。其設計在以下4個方面存在缺點:①由于刀片服務器處理能力和兼容性的局限,只能支持單一刀片配備單一軟件,如果需要功能模塊增加,刀片服務器也需相應增加,導致系統質量、體積、功耗都隨之增加;②對于解擾、譯碼、解密等預處理功能,由最新的總線和接口標準(PCIE)接口專用硬件板卡配備在專用服務器上實現,作為獨立的預處理機,通過千兆交換機連入系統;③刀片服務器本地磁盤寫入速度較低,無法完成在原始數據存儲的同時傳輸至后端的功能,此外,單臺刀片服務器本地磁盤容量有限,無法作為長期專用存儲設備,所以要專門配備2臺存儲陣列作為原始數據記錄設備; ④刀片服務器要使用380 V工業(yè)用電供電,對測試場所的供電要求較高且功耗大。
對于不同應用場景,刀片服務器和機架服務器各有利弊[6]。從空間密度上講,刀片服務器集成度更高、更節(jié)省空間,單點存儲能力強,布線也更簡單,特別是對于大型數據處理系統,刀片服務器更有優(yōu)勢;而機架服務器存在存儲數據分散難以管理、不利于資源和數據共享等缺點,但隨著計算機技術的發(fā)展,機架服務器在單機成本、系統集成度、主板可擴展性、高速海量存儲、多模光纖高速傳輸(TCP/IP協議)接口等方面有較大改進,在構建小型實時光學遙感小衛(wèi)星數傳基帶測試系統上,較刀片服務器具有一定優(yōu)勢。①單臺機架服務器具有多核處理器和大容量高速內存擴展,可以支持一個或多個軟件對硬件資源的需求;②機架服務器支持多種類型硬件擴展接口(包括PCIE接口),實現預處理功能板卡可直接安裝在機架服務器上;③機架服務器可自身配置高速海量存儲,實現數傳原始數據記錄的同時向后端傳輸的功能;④機架服務器電源為普通110~220 V供電,適應各類具有常規(guī)供電測試場地,可滿足頻繁轉場測試需求。根據當前光學遙感小衛(wèi)星對數傳基帶測試系統測試處理能力的需求,建立如圖4所示的硬件架構,4~6臺2U(U為美國電子工業(yè)聯盟標定的服務器外部尺寸單位)機架服務器通過光纖交換機進行互連,可以完成原來刀片服務器及附屬設備組成的450 Mbit/s×2通道數傳基帶測試系統硬件功能。該硬件架構是通用的,可根據測試需求擴展硬件。
圖3 基于刀片服務器的系統硬件架構Fig.3 System hardware architecture based on blade server
圖4 基于機架服務器的系統硬件架構
傳統數傳基帶測試系統,由于系統硬件異構和整體配置水平較低,系統各功能軟件整體運行為流水式串行處理,數據輸入與輸出時延較大,而光學遙感小衛(wèi)星測試實時需求越來越迫切,對系統的集成度和處理能力要求高,因此考慮在新硬件架構上,對軟件設計加入并行處理機制,解決多個軟件同時運行于多臺和單臺機架服務器的并行實時處理問題。
MPI[7-8]是多主機聯網協作進行并行計算的工具,它能協調多臺主機間的并行計算,因此在并行規(guī)模上的可伸縮性很強,能在從個人電腦到世界TOP10的超級計算機上使用。它可以用于單主機上多核/多CPU的并行計算,但效率低,使用進程間通信的方式協調并行計算,導致并行效率較低、內存開銷大、編程麻煩。
OpenMP[9-11]是針對單主機上多核并行計算設計的工具,更適合單臺計算機共享內存結構上的并行計算。由于使用線程間共享內存的方式協調并行計算,它在多核/多CPU結構上的效率很高、內存開銷小、編程語句簡潔直觀,因此編程容易,編譯器也容易實現(現在最新版的C、C++、Fortran編譯器基本上都內置OpenMP支持)。不過,OpenMP最大的缺點是只能在單主機上工作,不能用于多主機間的并行計算。
由以上分析可以看出,OpenMP和MPI可以互補,通過OpenMP和MPI混合方式[12-13],能實現系統內各功能軟件在多臺及單臺機架服務器上的系統級和單機級并行處理。本文采用如圖5所示的混合并行處理實現方案。首先,使用MPI實現系統內不同機架服務器所承載軟件之間的任務級并行化,通過TCP/IP協議族提供的進程間通信接口,實現軟件進程間通信,從而提高軟件間數據交互實時性;然后,進程間通信到達本地的數據,處理該數據的本地OpenMP使用后軟件完成子任務級線程計算,實現對單臺機架服務器多核CPU和內存等計算資源的共享與并行使用。
圖5 MPI+OpenMP混合并行處理實現方案Fig.5 Implementation scheme of MPI+OpenMP hybrid parallel processing
OpenMP特別適用于多核處理器上的并行程序設計。它使用Fork/Join式并行模式(如圖6所示)。其基本思想是,一個OpenMP應用程序開始時只有一個主線程,程序中的串行部分都由主線程執(zhí)行,并行的部分是通過派生其他線程來執(zhí)行,如果并行部分沒有結束,就不會執(zhí)行串行部分。對于本文所選用的機架服務器,配置一個或多個大運算量格式解析或解壓縮OpenMP程序時,機架服務器自身配備的Windows Server 2008操作系統無法很好地完成多核處理器和內存這些共享計算資源的多線程負載均衡問題。
圖6 Fork/Join并行模式Fig.6 Fork/Join parallel mode
通常來說,先完成任務的劃分并創(chuàng)建相應的多線程,然后才是操作系統對子任務線程進行執(zhí)行和調度。因此,在進行任務負載劃分時,無法預知操作系統可能的調度行為,從而難以知道將來系統的負載情況。在實際系統中,當任務被分解后,每個子任務都將以操作系統線程的形式存在并調度運行。每個支持多核處理器的操作系統,都有一套自己的線程調度算法,而該調度算法將直接影響每個子任務線程的執(zhí)行完成時間。系統中其他任務的執(zhí)行情況,又將影響調度算法的執(zhí)行結果,因此需要根據整個系統的負載變化情況動態(tài)決定OpenMP的任務劃分和負載均衡[14]。
本文通過對機架服務器及其所使用的Windows Server 2008操作系統、C++編譯器進行OpenMP擴展編譯,在編譯的目標程序代碼中設計支持動態(tài)創(chuàng)建線程的代碼,然后通過程序設計實現系統中的各種線程信息參數收集,并提供反饋機制,包括核心處理器占用數量,每個處理核心所支持的超線程數量,當前系統所能處理的子線程數量,以及當前系統的空閑子線程處理能力的變化歷史統計記錄。在此程序設計的基礎上,通過軟硬件平臺上大量試驗,采集大量數據處理線程與資源分配信息參數數據,分析得到各種因素對任務劃分和負載均衡的影響,根據這些因素影響程度的大小,設計多線程對硬件計算資源的動態(tài)劃分和負載均衡算法,改進操作系統資源調度,使得單臺機架服務器可支持OpenMP軟件程序多線程負載均衡運行[15-16]。
在相同數傳測試數據處理能力下,基于刀片服務器的傳統數傳基帶測試系統設計(如圖3所示)與本文數傳基帶測試系統設計(如圖4所示),在硬件架構的設備數量、體積、質量和功耗的對比,如表1所示,改進后系統硬件架構的集成度大幅提升,供電通用性顯著增強。
表1 2種系統指標對比
1)單個軟件OpenMP使用前后處理速度對比
每個數傳基帶測試系統功能軟件使用OpenMP后,均可實現軟件的并行處理。由各軟件改進前后測試結果可知,運算量及復雜度較高的軟件,其使用OpenMP后處理速度有較為明顯的提升。這里以運算量及復雜度最高解壓縮功能軟件為例,介紹單個軟件使用OpenMP前后處理速度對比。表2和表3中給出了采用某衛(wèi)星真實遙感圖片(城市+山川+河流)作為圖像數據源,測試4∶1壓縮比和無損壓縮2種典型壓縮處理的解壓縮處理性能對比。從表2中可以看到:對同一數據源,改進后4∶1壓縮比解壓縮的處理時間(解碼時間)約是改進前的1/4,解壓縮速率約是改進前的4倍;CPU使用率是改進前的4.5倍。從表3中可以看到:對同一數據源,改進后無損壓縮解壓縮的處理時間約是并行化后的1/5,解壓縮速率約是改進前的5倍,CPU使用率是改進前的5.5倍。4∶1壓縮比解壓縮處理運算量及復雜度比無損壓縮比解壓縮處理高,改進前后的解碼速率稍低。可見,使用OpenMP后可提升數傳基帶數據處理各功能軟件自身的處理速度。
表2 4∶1壓縮比解壓縮處理性能對比
表3 無損壓縮解壓縮處理性能對比
2)多個軟件OpenMP使用及負載均衡前后對單臺服務器資源使用結果對比
圖7為傳統數傳基帶測試系統(OpenMP使用及負載均衡前)多個軟件在單臺服務器(24核CPU,內存16 Gbyte)上運行時資源使用情況。在截圖時刻,CPU總平均使用率僅為25%;CPU使用記錄顯示,24核中只有12核在工作,且12核負載不均衡,系統內存的總使用率達到了11.00 Gbyte。圖7中物理內存使用記錄曲線,反映的是截圖時刻之前物理內存隨時間的變化。通過數據和曲線可知:多個軟件同時運行時,操作系統對多核CPU和內存調度機制發(fā)揮作用。數據輸入前,內存使用較高并處于平穩(wěn)狀態(tài);數據輸入后,內存使用量短時提升,隨著多核CPU從閑置到開始業(yè)務處理,內存中緩存數據被快速處理,出現內存使用快速下降并短時維持;隨著數據不斷輸入,多核CPU使用率趨于平穩(wěn),內存使用量迅速回到平衡點。在操作系統調度機制下,多核CPU無法實時處理不斷輸入的數據,內存使用隨時間呈線性增長。
圖7 OpenMP使用及負載均衡前服務器資源使用情況Fig.7 Server resource usage before OpenMP usage and load balancing
圖8為本文數傳基帶測試系統(OpenMP使用及負載均衡后)多個軟件在單臺服務器上運行時資源使用情況。在截圖時刻,CPU總平均使用率達到了78%;CPU使用記錄顯示,24核全部負載均衡;系統內存的總使用率在截圖時刻達到了8.52 Gbyte。結合物理內存使用記錄曲線可知,多個并行軟件同時運行時,動態(tài)負載均衡發(fā)揮作用:在數據輸入前,內存使用低于圖7;數據輸入后,隨著多核CPU從閑置到開始業(yè)務處理,內存使用迅速下降,維持時間約為圖7中的4倍;隨著數據不斷輸入,CPU使用率趨于平穩(wěn),內存使用量迅速回到平衡點,并一直保持。
圖7與圖8不同,是由于OpenMP使用及負載均衡后,多核CPU和內存都工作在較為合理的共享工作范圍內,單臺機架服務器硬件資源被充分調度給其承載的所有并行軟件使用,可滿足輸入數據率實時處理需求,實現多個并行軟件在單臺機架服務器上執(zhí)行。
3)系統軟件整體運行實效性對比
在系統層面,通過MPI將系統內各臺機架服務器軟件進行任務級并行,最終構成數傳基帶測試系統。與傳統數傳基帶測試系統同時輸入相同450 Mbit/s×2通道數據源,通過兩者輸入輸出時延比較時效性。系統輸入時間為數據輸入起始時間與輸入停止時間的差值。系統輸出時延分為2個部分:①系統建立延時是指數據輸入起始時間與輸出起始時間差值;②系統處理時延為系統輸出起始時間至系統停止輸出時間,由于解壓縮是基帶測試系統中復雜度最高的軟件,在其運行后系統處理時延以解壓縮工作時間為主。以在軌衛(wèi)星載荷平均輸出數據率3.6 Gbit/s為例,選取其高壓縮比數傳原始數據作為系統輸入數據源,綜合壓縮比約為4.5∶1(4路全色4∶1,4路多光譜6∶1),數傳幀效率為0.863。試驗結果如圖9所示,本文系統建立時延顯著縮短;系統處理時延約是傳統系統的1/4,且與系統輸入時間基本一致。由此可見,本文系統除去系統建立延時,可以實時完成輸入數據的處理能力,從整星研制角度,可節(jié)省研制過程中大量測試處理等待時間。
圖9 2種系統輸出數據率對比Fig.9 Comparison of output data rate for two systems
本文設計的光學遙感小衛(wèi)星數傳基帶測試系統,具有基帶處理功能完備、集成度高、通用性強、時效性高等特點,可以很好解決光學遙感小衛(wèi)星批量化生產需求,如基于通用硬件架構適應不同光學遙感小衛(wèi)星的快速軟件改造,易于運輸、快速集成和常規(guī)供電等優(yōu)點適用于頻繁轉場,可實時判讀測試結果,顯著縮短測試等待時間。后續(xù)將研究基于單臺高性能機架服務器的數傳基帶測試系統,實現更高性能的通用化、智能化、小型化光學遙感小衛(wèi)星數傳基帶測試系統。
參考文獻(References)
[1] 蒙紅英,郝修強.高分一號數傳分系統設計及在軌驗證[J].航天器工程,2014,23(z1):51-55
Meng Hongying,Hao Xiuqiang. Design and on-orbit verifi-cation of data transmission subsystem of GF-1 satellite [J]. Spacecraft Engineering, 2014, 23(z1): 51-55 (in Chinese)
[2] 張敬一,歐民,毛志毅.小衛(wèi)星數傳基帶數據處理通用集成平臺設計[J].航天器工程,2017,26(1):79-85
Zhang Jingyi, Ou Min, Mao Zhiyi. Universal integrated platform design for data transmission baseband data processing of small satellite [J]. Spacecraft Engineering, 2017, 26(1): 79-85 (in Chinese)
[3] 劉志佳,嚴林,宋紫溪.基于刀片服務器的數傳地面測試平臺設計[C]//2011年小衛(wèi)星技術交流會論文集.北京:航天東方紅衛(wèi)星有限公司,2011:75-79
Liu Zhijia, Yan Lin, Song Zixi. Design for the test platform of satellite DTS based on blade server [C]//Proceedings of the Small Satellite Technology Conference 2011. Beijing: DFH Satellite Co., Ltd., 2011:75-79 (in Chinese)
[4] 趙利民,倪琳娜,劉勇.遙感載荷通用數據處理平臺設計與實現[J].航天器工程,2014, 23(4): 77-83
Zhao Limin, Ni Linna, Liu Yong. Design and practice of general data processing platform for remote-sensing payload [J]. Spacecraft Engineering, 2014, 23(4): 77-83 (in Chinese)
[5] 宋紫溪,嚴林,覃正熙.高分一號衛(wèi)星高碼速率數據傳輸地面測試系統[J].航天器工程,2014,23(z1):56-59
Song Zixi,Yan Lin, Qin Zhengxi. Ground test system for high-speed data transmission of GF-1 satellite [J]. Spacecraft Engineering, 2014, 23 (z1): 56-59 (in Chinese)
[6] 張勇.刀片服務器與機架式服務器的比較分析[J].中國教育信息化,2009(9):78-79
Zhang Yong.Comparison and analysis between blade server and rack server [J]. China Education Informatization, 2009(9): 78-79 (in Chinese)
[7] 趙捷,趙榮彩,韓林.面向MPI代碼生成的Open64編譯器后端[J].計算機學報,2014,37(7):1620-1631
Zhao Jie, Zhao Rongcai, Han Lin. An MPI backend for Open64 compiler [J]. Chinese Journal of Computers, 2014, 37(7): 1620-1631 (in Chinese)
[8] 趙偉彪. MPI并行空間算法在云計算平臺上的遷移技術研究[D].成都:電子科技大學,2014
Zhao Weibiao. Research on migration of MPI parallel Geo-information algorithm based on cloud computing [D]. Chengdu: University of Electronic Science and Technology of China, 2014 (in Chinese)
[9] 潘小敏,皮維超,盛新慶.基于共享內存的高效OpenMP并行多層快速多級子算法[J].北京理工大學學報,2012,32(2):164-169
Pan Xiaomin, Pi Weichao, Sheng Xinqing. Efficient parallelization of multilevel fast multipole algorithm based on OpenMP [J]. Transactions of Beijing Institute of Technology, 2012, 32(2): 164-169 (in Chinese)
[10] 劉京.面向Open64的OpenMP相關編譯優(yōu)化技術研究[D].合肥:中國科學技術大學,2015
Liu Jing. Research on optimization technology of OpenMP for Open64 [D]. Hefei: University of Science and Technology of China, 2015 (in Chinese)
[11] 胡榮.多核架構下基于OpenMP的Huffman壓縮算法并行程序設計研究[D].長沙:湖南大學,2012
Hu Rong. Research on parallel program design of Huffman compression algorithm based on OpenMP in multi-core architecture [D]. Changsha: Hunan University, 2012 (in Chinese)
[12] 李雨航,李景山,趙仕美.遙感衛(wèi)星圖像系統幾何校正多級并行算法[J].遙感信息,2016,31(3):51-55
Li Yuhang, Li Jingshan, Zhao Shimei. Multi-level para-llel algorithm of systematically geometric correction for remote sensing satellite imagery [J]. Remote Sensing Information, 2016, 31(3): 51-55 (in Chinese)
[13] 劉陽.壓縮光譜成像中結構稀疏重構算法的分布式計算[D].西安:西安電子科技大學,2014
Liu Yang. Distributed computing for structural sparsity reconstruction algorithm in compressed spectral imaging [D]. Xi’an: Xidian University, 2014 (in Chinese)
[14] 范會敏,李滋田.基于OpenMP 的多線程負載均衡調度策略[J].計算機與現代化,2013,15(12):192-195
Fan Huimin, Li Zitian. Scheduling scheme of multi-thread load balance in OpenMP [J]. Computer and Modernization, 2013, 15(12): 192-195 (in Chinese)
[15] 任小西,唐玲,李仁發(fā).OpenMP多線程負載均衡調度策略研究與實現[J].計算機科學,2010,37(11):145-151
Ren Xiaoxi, Tang Ling, Li Renfa. Study and implementation of OpenMP multi-thread load balance sche-duling scheme [J]. Computer Science, 2010, 37(11): 145-151 (in Chinese)
[16] 陳佐,楊秋偉,萬新.一種多線程負載均衡分析方法研究[J].計算機應用研究,2011,28(5):1752-1755
Chen Zuo, Yang Qiuwei, Wan Xin. Research on analyzing load equilibrium of multi-threads [J]. Application Research of Computers, 2011, 28(5): 1752-1755 (in Chinese)