李 明 楊志祥
現(xiàn)代信息化戰(zhàn)爭中,海戰(zhàn)場逐漸呈現(xiàn)出戰(zhàn)場空間大、作戰(zhàn)節(jié)奏快、信息密度大、資源消耗高等特點。隨著作戰(zhàn)模式由以平臺為中心向以網(wǎng)絡為中心的轉變,體系內(nèi)作戰(zhàn)節(jié)點不斷增加、平臺作戰(zhàn)范圍不斷擴大,互聯(lián)互通的信息量及其處理需求也隨之大幅度增加。為了輔助作戰(zhàn)指揮人員,使其在瞬息萬變的戰(zhàn)爭局勢下,高效利用各類情報和數(shù)據(jù),提高指揮決策能力,要求艦載作戰(zhàn)系統(tǒng)在情報分析、輔助決策、目標解算、數(shù)據(jù)分析和挖掘等方面具備高性能、高可靠的計算能力[1]。在傳統(tǒng)模式下,艦載作戰(zhàn)系統(tǒng)各設備專機專用,分別獨立完成各自計算任務,臺位功能相對固定。受艦艇內(nèi)空間和經(jīng)費等限制,存在局部計算資源分散、計算能力有限、資源利用率不高等問題,難以滿足現(xiàn)代化作戰(zhàn)高性能計算的要求。
高性能計算(HPC)最初依賴于高性能的計算機,但是高性能計算機的成本較高、研發(fā)周期長,而且難以擴展。集群技術的出現(xiàn)給高性能計算帶來了一場革命[2],它通過各種互聯(lián)技術將多個計算設備連接在一起,利用所有被連接系統(tǒng)的綜合計算能力來處理大型計算問題,可以提供單個計算機不能提供的強大計算能力,具有高可擴展性、高可用性、高性能和高性價比等特點。
針對艦艇作戰(zhàn)系統(tǒng)計算資源分散、利用率低等特點,可以考慮將分布在艦艇上的各臺位的任務機與數(shù)據(jù)庫機柜等資源進行整合,構建高性能計算集群。通過集群計算,實現(xiàn)面向艦艇作戰(zhàn)業(yè)務的計算資源按需分配、調(diào)度和動態(tài)配置,在不改變戰(zhàn)位設置、設備重量的情況下,提高計算資源的使用效率。
2.1 艦艇平臺作戰(zhàn)典型業(yè)務分析
艦艇作戰(zhàn)系統(tǒng)在輔助指揮員實施作戰(zhàn)任務的過程中,工作的基本流程包括:戰(zhàn)場態(tài)勢,信息獲取,情報分析,輔助決策,決策執(zhí)行,打擊效果評估等[3]。其中,情報處理與分析是奪取并保持信息優(yōu)勢,獲取穩(wěn)定、完整的戰(zhàn)場綜合態(tài)勢的關鍵。通常艦艇平臺作戰(zhàn)業(yè)務對情報處理存在處理容量、實時性、可靠性等性能需求,也是作戰(zhàn)系統(tǒng)中最為關鍵、計算負載瓶頸所在。
艦艇典型作戰(zhàn)業(yè)務可分為對空、對海、對水下三類。其中,對空作戰(zhàn)包括區(qū)域防空、協(xié)同防空、對空自防御;對海作戰(zhàn)包括超視距對海作戰(zhàn)、視距內(nèi)對海/對陸作戰(zhàn);對水下作戰(zhàn)包括協(xié)同搜潛、反潛作戰(zhàn)、水下自防御等。
由于空中目標如戰(zhàn)斗機和導彈等速度快、機動性強、威脅度大,要求作戰(zhàn)系統(tǒng)對空中情報的處理必須及時完成,因此,對空作戰(zhàn)屬于強實時性處理任務;相對而言,海面和水下目標如水面艦艇、潛艇等速度、機動性較弱,聲納等水聲探測設備的探測周期較大,因此,對海作戰(zhàn)一般呈現(xiàn)出實時性,對水下作戰(zhàn)目標呈現(xiàn)出弱實時性。
通常情報信息處理中多源信息融合是艦載情報處理的核心關鍵所在,其具備實時性要求高、處理周期不間斷、問題規(guī)模呈現(xiàn)動態(tài)性、內(nèi)部各級處理呈現(xiàn)一定的順序性和較強的耦合性等特點。下圖給出其處理流程:
2.2 計算資源共享與管理方案
針對艦載情報處理的動態(tài)性特點以及實時性需求,結合艦艇作戰(zhàn)系統(tǒng)計算能力有限、利用率不高等現(xiàn)狀,提出面向艦艇作戰(zhàn)業(yè)務的計算資源管理框架。如圖2所示。
考慮到作戰(zhàn)系統(tǒng)的應用需求,我們設計面向作戰(zhàn)業(yè)務的計算資源管理總體方案時,采用MPI并行消息傳遞模型為基礎,綜合利用分散在艦上有限的計算和存儲資源(情報處理服務器和數(shù)據(jù)庫機柜等),構建一個可擴展的集群計算系統(tǒng),來實現(xiàn)應用的分布式處理操作。集群計算系統(tǒng)的架構如圖3所示。
系統(tǒng)分層主要從功能劃分的角度考慮,下面分別加以解釋:
硬件層:硬件平臺;
OS層:硬件采用的操作系統(tǒng),如VxWorks、Solaris等
OS適配層:該適配層將異構OS映射到一個統(tǒng)一的接口;
通信中間件:主要功能通過MPI實現(xiàn);
消息服務:充當“數(shù)據(jù)總線”,采用訂閱發(fā)布模式,基于數(shù)據(jù)內(nèi)容實現(xiàn)數(shù)據(jù)發(fā)送和接收的通信;
集群資源管理服務:負責低層集群內(nèi)部的資源管理,其主要功能包括節(jié)點管理、節(jié)點檢查、任務調(diào)度、集群控制點監(jiān)測、作業(yè)調(diào)度和驅動等;
作戰(zhàn)應用層:各種作戰(zhàn)業(yè)務應用。
面向艦艇作戰(zhàn)業(yè)務的集群系統(tǒng),與通用的集群系統(tǒng)架構類似,主要由集群資源管理、業(yè)務計算、消息中間件、狀態(tài)監(jiān)控、容錯處理等功能組件構成,其架構如圖4所示。通過狀態(tài)監(jiān)控與容錯處理實現(xiàn)對集群節(jié)點任務狀態(tài)的有效監(jiān)管,并達到計算資源合理分配及任務異常中斷的檢查與恢復,為情報臺位故障恢復和重組提供保證。
目前,通常艦載情報信息處理,在準實時桌面操作系統(tǒng)環(huán)境下完成。為了滿足對多源異類情報信息處理實時性的要求,某些艦載作戰(zhàn)系統(tǒng)情報處理要求在嵌入式實時操作系統(tǒng)環(huán)境下完成。也因此,需要開展基于嵌入式實時操作系統(tǒng)環(huán)境的集群管理技術研究。
然而,無論在商用還是軍用領域,構建在嵌入式實時操作系統(tǒng)環(huán)境下的集群計算都比較少見,可用來參考借鑒的技術資料相對較少。因此,本文將對基于嵌入式實時操作系統(tǒng)的并行消息傳遞、任務實時調(diào)度、集群狀態(tài)監(jiān)控、并行容錯處理等關鍵技術進行探討。
3.1 并行消息傳遞
計算集群的性能通常取決于下面幾個因素:節(jié)點本身、節(jié)點之間互聯(lián)設備、底層通信軟件(包括互聯(lián)設備的驅動)、全局資源管理系統(tǒng)以及并行計算環(huán)境等[4]。其中,消息傳遞系統(tǒng)對于計算機集群系統(tǒng)的計算性能是至關重要的。因此,構建高性能計算集群,首要的問題就是如何在嵌入式實時操作系統(tǒng)環(huán)境下實現(xiàn)實時高效的消息傳遞。
MPI是一種廣泛使用的消息傳遞并行通信編程模型,具有靈活高效、擴展性好、可移植性強等特點,幾乎所有的并行計算環(huán)境和主流操作系統(tǒng)(Unix、Linux和Windows NT)都支持[5]。因此,考慮將MPI并行消息傳遞移植到嵌入式實時操作系統(tǒng)環(huán)境中,構建一個嵌入式實時操作系統(tǒng)環(huán)境下支持單機/多機通用標準、實時高效、高可靠的消息通信傳遞平臺。
文獻[6]以Linux系統(tǒng)中的開源MPI實現(xiàn)mpich2為基礎,將MPI消息傳遞并行編程平臺引入到Vx-Works系統(tǒng)中,為嵌入式實時操作系統(tǒng)提出了一種并行編程解決方案。在此基礎上,可以進一步開展基于國產(chǎn)嵌入式實時系統(tǒng)的并行消息傳遞平臺的研究。
3.2 任務實時調(diào)度
給定一組實時任務和系統(tǒng)資源,確定每個任務何時何地執(zhí)行的整個過程就是任務調(diào)度。任務調(diào)度是支持系統(tǒng)動態(tài)負載平衡,合理有效地利用資源,支持系統(tǒng)動態(tài)重構,提高系統(tǒng)整體性能和系統(tǒng)可用性的關鍵技術[12]。利用它可以實現(xiàn):
1)在計算過程中,把任務從負載較重的節(jié)點遷移到負載較輕的節(jié)點上,實現(xiàn)動態(tài)負載平衡;
2)充分利用系統(tǒng)中的空閑機器,以及在要求獨占其資源時及時提供;
3)在長時間計算的過程中,可以使某節(jié)點退出計算以進行系統(tǒng)維護,提高系統(tǒng)的可用性。
任務實時調(diào)度的算法有很多種,大致可以分為如下三類[7]:基于優(yōu)先級的調(diào)度算法(PD),基于CPU使用比例的共享式的調(diào)度算法(SD),以及基于時間的進程調(diào)度算法(TD)。在設計調(diào)度算法時,需要考慮多方面因素,通常包括系統(tǒng)設計目標、資源利用率、用戶要求、任務的特征(達到時間、計算時間、截止期限、任務達到頻率)等。
具體到面向艦艇作戰(zhàn)業(yè)務的集群任務實時調(diào)度中,我們需要研究的是如何將作戰(zhàn)過程中的多個實時性任務合理分配到不同的處理器上。結合上面分析的對空、對海、對水下三種類型的作戰(zhàn)業(yè)務具體的特點,我們采用基于動態(tài)優(yōu)先級的調(diào)度算法EDF[8],通過任務動態(tài)生成以及對處理對象的動態(tài)調(diào)整,實現(xiàn)對集群中計算存儲資源的自適應分配,動態(tài)地改變系統(tǒng)的負載分布。
3.3 集群狀態(tài)監(jiān)控
集群狀態(tài)監(jiān)控技術主要是為高性能集群系統(tǒng)提供性能監(jiān)測環(huán)境,提供可視化的集群配置管理、資源管理、用戶管理、安全管理、作業(yè)調(diào)度管理、控制管理等功能。
心跳機制是高可用集群的重要技術之一[9]。通知由應用程序初始化的“我在工作”消息構成,或在這種請求-響應系統(tǒng)中,監(jiān)視器通過“你在工作嗎”的消息請求應用程序確定處于活動狀態(tài)并且等待確認,即主動或被動的方式。當監(jiān)視器端超過特定的時間收不到響應消息,它就假設應用程序掛起或崩潰,然后殺掉或重啟它。
圖5為采用心跳機制實現(xiàn)集群狀態(tài)監(jiān)控的示意圖。采用“心跳匯報機制”周期性地檢測集群中節(jié)點機器的工作狀態(tài),當節(jié)點機器的工作狀態(tài)變化時,能夠通知集群中的其它部件。集群節(jié)點之間心跳檢測的組織可以是主從心跳、環(huán)形心跳或廣播心跳,由系統(tǒng)結構、檢測效率以及檢測開銷權衡決定。心跳信息的傳輸一般需要采用專用網(wǎng)絡來保證效率。
為了降低系統(tǒng)開銷,在面向艦艇作戰(zhàn)業(yè)務的集群狀態(tài)監(jiān)控中,可以采用多定時器的技術,由應用程序周期性地向管理節(jié)點發(fā)送MPI消息以表示它在工作,同時匯報本地節(jié)點負載信息,包括CPU負載、網(wǎng)絡負載、內(nèi)存/磁盤使用率等,以實現(xiàn)對集群間節(jié)點的有效監(jiān)控。
3.4 并行容錯處理
容錯技術的實質(zhì)是通過資源的冗余配置使系統(tǒng)在內(nèi)部發(fā)生故障時,仍然能夠正確執(zhí)行預定任務,從而提高系統(tǒng)的可靠性[10]。實現(xiàn)容錯處理的方法有很多,可分為硬件容錯和軟件容錯:硬件容錯實時性好,糾錯速度快,但是可擴展性不好,需要額外的軟件支持;軟件容錯靈活度高,可以避免由于輔助邏輯的不容錯而造成的可靠性下降。
目前高可用集群計算,基于消息傳遞的系統(tǒng)中,解決其可靠性問題基本上采用基于檢查點的回卷恢復技術(Checkpoint/Restart)[11]。在系統(tǒng)正常運行的適當時刻設置檢查點,保存未出錯時的狀態(tài),當故障發(fā)生后,讀取前面保存的作業(yè)狀態(tài),將作業(yè)回卷(rollback)執(zhí)行。檢查點的設置可分不同級別進行設置,如低的級別是把內(nèi)存保存在本地也就是執(zhí)行節(jié)點(它的代價小),高的級別是把所有進程的內(nèi)存都保存在一個公共文件系統(tǒng)(它的代價大),不同級別檢查點時隙(Check Point Interval)是可以根據(jù)實際需求設置的。
根據(jù)艦艇作戰(zhàn)業(yè)務對可靠性的實際需求,本設計中的多機并行容錯主要針對集群網(wǎng)絡、硬件節(jié)點故障、任務故障等幾類問題,可以選擇上述基于檢查點的容錯處理技術。在作戰(zhàn)任務執(zhí)行過程中,記錄MPI任務正常運行時的一致性狀態(tài),并保存到計算機內(nèi)存中。當系統(tǒng)發(fā)生故障后,可根據(jù)保存的狀態(tài)信息將MPI任務回卷到故障前的一致狀態(tài)繼續(xù)執(zhí)行,從而避免整個任務的重新執(zhí)行。
面向艦艇作戰(zhàn)業(yè)務的計算資源管理通過綜合利用分散在艦上有限的計算和存儲資源,以并行消息傳遞模型為基礎,構建了一體化的計算資源環(huán)境。采用嵌入式實時操作系統(tǒng)環(huán)境下并行消息傳遞、集群任務管理等技術,實現(xiàn)了艦載作戰(zhàn)系統(tǒng)內(nèi)計算資源的按需分配和調(diào)度、負載均衡、任務遷移和服務共享,可以在不改變戰(zhàn)位設置,設備重量等情況下,有效提高計算資源的使用效率和系統(tǒng)的可靠性。
[1]劉伯峰,劉帆,朱偉鋒.基于云計算的作戰(zhàn)系統(tǒng)集成結構[J]. 中國艦船研究,2013,8(4):92-95.
[2]李永峰,周敏奇,胡華梁.集群資源統(tǒng)一管理和調(diào)度技術綜述[J]. 華東師范大學學報,2014,9(5):17-30.
[3]董曉明,秦克,石朝明.艦載指揮自動化系統(tǒng)和戰(zhàn)術應用軟件的發(fā)展[J]. 中國艦船研究,2009,4(2):7-10.
[4]王瑩,屈一新.PC集群的建立與MPI并行環(huán)境的實現(xiàn)及其應用[J].北京化工大學學報,2001,28(4):4-6.
[5]陳月燕.基于MPI和MapReduce的分布并行計算研究[D].南京:南京師范大學,2010:5-9.
[6]郭德源,何虎,楊旭.面向嵌入式實時操作系統(tǒng)的MPI實現(xiàn)[J].微電子與計算機,2011,28(3):35-38.
[7]同愛麗.實時多任務調(diào)度方法研究與應用[D].西安:西北工業(yè)大學,2006:9-10
[8]Liu C L,Layland J.Scheduling algorithms for multiprogramming in real-time systems[J].Journal of the ACM,1997,20(1):46-61.
[9]楊明華,陶靈姣,楊斌.高可信容錯計算機系統(tǒng)設計與應用研究[J].計算機工程,2012,38(15):237-240.
[10]寧新建.火控系統(tǒng)中的容錯技術分析[J].情報指揮控制系統(tǒng)與仿真技術,2002,32(8):34-36.
[11]崔麗,徐煒民.MPI容錯機制的研究[J].計算機工程,2004,30(16):87-90.
[12]楊際祥,譚國真,王榮生.并行與分布式計算動態(tài)負載均衡策略綜述[J]. 電子學報,2010,38(5):1122-1130.