張大永 唐宇波 柳少軍 齊大偉
1.國防大學信息作戰(zhàn)與指揮訓練教研部,北京100091
計算機兵棋的廣泛實踐,為指揮訓練、裝備研發(fā)、方案推演等帶來巨大變革.然而,受限模型的計算處理能力,計算機兵棋在使用過程中,經(jīng)常會因推演指令的過度突發(fā),產(chǎn)生推演指令阻塞,降低兵棋系統(tǒng)的執(zhí)行效率,影響受訓人員的沉浸感.
處理推演指令,通常是根據(jù)先來先服務的原則,隨機搶先式的使用模型資源,如同數(shù)據(jù)通信“貪婪”地使用網(wǎng)絡帶寬資源,推演指令“貪婪”地使用兵棋系統(tǒng)的模型計算資源,就可能帶來各方間下達的推演指令使用模型資源的不公平.因此,需要將符合規(guī)定的指令流與“貪婪”指令流區(qū)別開來,保證符合規(guī)定推演方的指令能夠正常得到響應.
本文針對這類“貪婪”指令流與符合規(guī)定指令流的模型響應,提出了一種基于突發(fā)反饋的推演指令快速響應策略,并做了仿真測驗.
以一次中小規(guī)模的兵棋對抗推演為例,包含可操作實體數(shù)量多達2-3萬,座席200以上,步長設置為1:20以下,網(wǎng)絡帶寬100Mb/s.主要分析兵棋推演兩個重要應用服務報告與指令特性.
在兵棋對抗推演過程中,通過格式化文本形式為受訓者提供戰(zhàn)況報告,主要包括指令執(zhí)行、任務反饋、情報偵察、沖突事件、作戰(zhàn)效果、后裝保障等情況報告,以及各階段定期情況匯總報告等內(nèi)容,是指揮員了解戰(zhàn)場情況、掌握敵我動向的重要的工具.
報告在大小上差別很大,大的報告可達20~30Mb,小的報告不足 1kb,絕大多數(shù)是10~30kb的中小報告,報告下發(fā)方式有兩種:廣播和單播.在極端情況下,廣播一個大報告對I/O的需求就可能達4~6Gb,甚至10Gb以上,處理這類極端的一個大報文就可能需要百秒級時間,將會帶來大量短報文滯留、長時間等待、甚至丟失,有些是參演人員急需處理的短報文,嚴重影響對抗推演的真實感,不可忍受.因此,需要對這類報告業(yè)務進行分類,根據(jù)各業(yè)務要求,進行過濾篩選等調度.
在兵棋對抗推演過程中,受訓人員將作戰(zhàn)決心、處置轉換為作戰(zhàn)指令并輸入系統(tǒng),從而實現(xiàn)對作戰(zhàn)行動的推演.受訓者通過下達推演指令,調整作戰(zhàn)計劃,實現(xiàn)對戰(zhàn)場的管理與控制.兵棋推演指令的基本要求是“穩(wěn)定、易用、適用”.“穩(wěn)定”指盡量少錯誤和漏洞;“易用”指快捷性,也就是人機交互的友好性;“適用”就是滿足不同作戰(zhàn)任務參演部隊的需求.
圖1反應了一次中小規(guī)模的兵棋對抗推演中,紅方作戰(zhàn)集團3個不同時段的指令突發(fā)數(shù)量時序關系,模擬步長為1:3,指令下達為隨機并發(fā)搶先.其主要特征可以歸納為如下3點:
1)突發(fā)隨機,個別時段擁擠.從圖1中3個圖可以看出,3個對抗推演時段的突發(fā)比較隨機,個別時段擁擠.
2)忙時短,閑時長.假設每5min(天文時間)的一方的指令數(shù)量大于200條為忙時,那么忙時的時間比較少,以此次紅方作戰(zhàn)集團3個時間段下達指令為例,其總天文時間505min,其中每5min大于200條的時間約25分鐘,約占總時間的4.9%.
3)高并發(fā)訪問.在這種中小規(guī)模的兵棋對抗推演中,指令并發(fā)訪問規(guī)模在數(shù)百以上.一般在對抗推演剛開始階段,會迎來一次指令下達突發(fā)的高峰期,主要是因為各方為了搶占戰(zhàn)場先機,提前預置的很多指令,隨著演習的開始各方突然下達,這對后臺對模型都帶來巨大挑戰(zhàn).如果再趕上快推,模擬步長加大,由1:3變成1:10、1:20,甚至更大,對模型的考驗會成倍加大,甚至帶來模型“死機”現(xiàn)象,表現(xiàn)為前臺下不了指令,需要等上很長時間,才能回復正常的對抗推演,極大影響參演人員沉侵真實感.
可見,這類高并發(fā)、隨機突發(fā)、忙時短、閑時長業(yè)務,在大型兵棋對抗推演過程中比較常見.通常的解決辦法,在中小規(guī)模的情況下,增加服務器的規(guī)模數(shù)量,使服務器能滿足最忙時節(jié)的需求,簡單說就是滿足最大需求.這樣解決的優(yōu)點是簡單,缺點是浪費嚴重.因為,在全軍大規(guī)模應用時,浪費過于嚴重、不可接受.本文在分析兵棋仿真推演特點的基礎上,借鑒通信系統(tǒng)的有關技術提出一種基于指令突發(fā)反饋的快速響應策略.
通過上一節(jié)兵棋推演應用服務特性的分析,我們知道推演指令作為兵棋重要的人機交互媒介,是改變模型狀態(tài),調整部隊部署、達成作戰(zhàn)企圖等作戰(zhàn)目的的重要手段.某種程度上說,推演指令的響應是提高參演人員訓練效率和增強參演人員沉浸感的重要條件.但是,推演指令的下達使用,往往具有高并發(fā)、隨機突發(fā)等特性,因此,采取合理措施,快速高效地響應推演指令將十分有利于提高兵棋推演多模型系統(tǒng)的處理效率.
圖1 紅方作戰(zhàn)集團下達指令
在分析以往歷次多方兵棋推演指令時,我們發(fā)現(xiàn)各方推演指令的下達往往是隨機突發(fā)的.如圖2所示,在一次包含A、B、C三方的兵棋推演中,在不同的時間段(t1,t2)、(t2,ti)、(ti,tn)中三方推演指令的下達差距相當大,特別是在(t2,ti)時間段內(nèi)B方下達很多條推演指令,假如達到模型系統(tǒng)的處理極限,而A、C方下達的推演指令相對較少.采取何種策略處理這些情況,對于提高模型的處理效率具有十分重要意義.
策略1:所有推演指令基于FIFO思想,隨機搶先先到先服務.這種策略簡單,工程上也易于實現(xiàn),在推演規(guī)模相對有限和模型運算系統(tǒng)性能很高的情況下十分方便.但是,事實上模型的運算性能是有限的,且模型運算性能提高周期相對較長,而實際的演習需求又是規(guī)模越來越大,顆粒度越來越細,這樣在圖3中(t2,ti)時間段內(nèi)B方發(fā)出的推演指令突發(fā)性比較大,FIFO思想下,模型系統(tǒng)將忙于運行B方發(fā)送的指令,而這時A、C方發(fā)送的指令數(shù)量實際上不是很大,只是因為B方突發(fā)性的指令而影響A、C方不能及時下達指令,嚴重影響參演A、C方的沉浸感,實際上這種情況也是和作戰(zhàn)不相符的.
圖2 兵棋推演指令突發(fā)響應時序示意圖
策略2:在繼承策略一FIFO思想的基礎上稍作改進.將進入推演系統(tǒng)的指令做簡單預先的分類,比如分成A、B、C方推演指令,在三方下達推演指令的突發(fā)性比較小的情況下,還是按照FIFO的方式去處理,這時基本不影響模型的處理效率和參演部隊的沉浸感,改進的地方是遇有突發(fā)的情況,比如在(t2,ti)時間段時,B方突發(fā)很多指令,模型系統(tǒng)忙于應付,此時可以考慮輪訓策略,按照預先的分類輪訓處理A、B、C三方的指令,這種情況下僅僅只是對B方的推演指令下達有一定的影響,而對A、C方參演人員來說表現(xiàn)就比較正常,這也和實際的作戰(zhàn)演習情況比較相符,因為實際作戰(zhàn)過程中一方命令不加協(xié)同的下達時會帶來很多問題.
由此可見,兵棋推演中影響參演人員沉浸感和模型有效響應效率的主要原因,就是對推演中各方下達的推演指令不加區(qū)分,隨機搶先FIFO,當然,這在演習規(guī)模和演習顆粒度有限的情況下,突發(fā)的規(guī)模比較小時,效率比較高.但是在推演規(guī)模擴大和顆粒度要求較高時,突發(fā)的規(guī)模很大時,就需要采取相應的策略提高模型的效率.
推演指令快速響應問題是一類典型的“自適應控制”優(yōu)化問題,其核心思想就是保證稀缺資源(兵器計算模型等資源)得到高效利用,并及時對運行中出現(xiàn)的問題,作出合理有序響應.其主要評價指標包括:
1)突發(fā)度:表示特定時間段內(nèi)的峰值速率和平均速率之比,即:
2)突發(fā)持續(xù)時間:舉個簡單例子,兵棋推演中一方推演指令的峰值速率和平均速率分別為600/min、300/min,當一方推演指令是在1min內(nèi)發(fā)送600條指令與在1s內(nèi)發(fā)送60條指令可能具有相同的平均速率,所以,就需要在峰值速率平均速率之外,再附加突發(fā)持續(xù)時間.
3)指令延遲?t:一條指令從下達,到模型計算中心響應等待的時間,主要包括兩個部分,?t0表示前臺客戶端指令下達到模型計算中心的路徑傳輸時間,我們稱之為固定延時,?t00表示到達模型計算中心隊列排隊到響應的時間,我們稱之為變動延時.這里我們主要研究?t00可變延時.
4)平均指令延遲?
5)延遲散布δ:
6)最大延遲?tmax:表示一次兵棋推演指令下達最長延時.
綜合評價函數(shù):
此函數(shù)用來評價參加兵棋推演的單方的綜合性能,主要包括兩個部分一個是平均指令延遲,一個是延遲散布.綜合函數(shù)的值越大說明這一方的推演指令綜合性能越高.各方的綜合評價函數(shù)的大小差距表示不同方推演指令對于模型服務資源占用的公平性.
快速高效響應推演指令,將十分有益于提高指揮員兵棋推演時的沉浸感,提高兵棋推演的訓練效果.但是,我們知道在兵棋推演過程中,各方下達的推演指令都會“貪婪”地使用模型系統(tǒng)資源,這樣在推演指令過度突發(fā)時就有可能產(chǎn)生一方前臺“死等”現(xiàn)象.自適應過載反饋突發(fā)流控制,其核心思想是能夠把模型系統(tǒng)資源比較公平地分給出現(xiàn)爭搶的各方推演指令,也就是將產(chǎn)生突發(fā)與沒有突發(fā)的各方指令區(qū)別開,保證模型計算資源得到高效合理利用.本文提出的突發(fā)權重推演指令公平調度算法,在遇有過度突發(fā)時,能兼顧各方的公平性,有效保證未突發(fā)方推演指令的有效響應.
推演指令流響應的基本策略如圖3所示.
圖3 推演指令流監(jiān)管控制示意圖
步驟1.在Ti周期,監(jiān)管拍照測得第i方指令流速率為Li.
步驟2.IF(Li≤α1),轉到Step4,進行FIFO隨機搶先調度.
步驟3.IF(α2≥Li≥α1),根據(jù)隨機函數(shù)rand()的值,如果大于0.5則進入步驟5.如果小于等于0.5則進入步驟4.
步驟4.IF(Li≥α2),直接進入步驟5.
步驟5.根據(jù)FIFO進行隨機搶先調度,轉入Ti+1周期.
步驟6.進行突發(fā)權重公平調度.轉入Ti+1周期.
形象地說,突發(fā)拍照監(jiān)管有點類似于現(xiàn)實社會上的交通警察,對推演指令突發(fā)的時刻流進行拍照檢測,當其突發(fā)速率小于允許向模型推送的最大速率時,保障推演指令及時得到服務響應;當其突發(fā)速率大于允許向模型推送的最大速率時,為避免這一方突發(fā)指令過度“貪婪”使用系統(tǒng)的模型計算資源,將采取必要的措施避免突發(fā)方過度貪婪使用模型計算資源,從而保證其他方能公平得到模型的資源響應.如圖4所示.
一方推演指令流過度突發(fā)判斷策略如圖5所示.在圖的右邊指令緩存隊列區(qū)域設置兩個閾限.算法采用低通平均指令進行算法控制,算法結合現(xiàn)有多列長度Q以及低通平均指令數(shù)量現(xiàn)值進行一系列早期檢測.如果低通平均指令數(shù)量小于閾限1的值,則不啟動公平算法,如果大于閾限2則自動啟動公平算法,如果大于閾限1小于閾限2,則根據(jù)概率隨機啟動公平算法.
圖4 推演指令流監(jiān)管拍照緩存調度
其中p是最大啟動概率,α1、α2分別是閾限1、閾限2.
突發(fā)權重推演指令公平調度算法,其核心思想就是盡量避免一方過度突發(fā)推演指令“貪婪”使用稀缺模型資源,從而保證未突發(fā)方能與突發(fā)方在資源競爭時避免長期處于不利地位,而較為公平的得到模型資源的響應.以一場A、B、C三方兵棋推演訓練為例,當產(chǎn)生過度突發(fā)時,啟動突發(fā)權重公平算法如下:
步驟1.KA=0;KB=0;KC=0;/*各方響應指令數(shù).其中,KAKB,KC∈0、1、2、3、4、5*/
圖5 指令流突發(fā)過載早期檢測算法
步驟2.判斷LA?rand()、LB?rand()、LC?rand()的大小,得到它們大小關系
有LI?rand()≥LJ?rand()≥LK?rand().
步驟3.如果KI<5,則響應該I方的指令,相應的KI+1,轉到步驟2;否則令KI=0.
步驟4.如果KJ<5,則響應J方指令,相應的KJ+1,轉到步驟2;否則KJ=0.
步驟5.如果KK<5,則響應K方指令,相應的KK+1,轉到步驟2;否則KK=0,轉到步驟3.
此算法能有效避免過度突發(fā)指令的“貪婪”行為,照顧各方對稀缺模型資源的響應.
筆者以Visual Studio2010為開發(fā)平臺,使用C#編程語言,開發(fā)了一種模擬多方推演指令快速響應分配平臺.如圖6所示,對多方推演指令響應進行仿真測試.
圖6 多方推演指令響應分配平臺
為了分析多方推演指令突發(fā)反饋快速響應策略的優(yōu)越性,我們拿傳統(tǒng)FIFC先來先服務調度策略與突發(fā)反饋策略進行比較.主要比較兩種調度策略在遇到不同方突發(fā)時對指令的響應情況,包括平均延遲、延遲散布、最長延遲等評價指標分析兩種策略的特性.
支撐多方推演指令響應分配平臺的計算機硬件環(huán)境如下所示:
處理器:Intel(R)Core(TM)i7-3370 CPU 3.40FHz
內(nèi)存:3.46GB
操作系統(tǒng):Windows7 32位操作系統(tǒng)
對于多方推演指令響應的仿真測驗,主要模擬三方下達推演指令的響應問題.為保障實驗的廣泛性在不同突發(fā)度情況下,分別進行實驗,每組分別做10次實驗,采集FIFC先來先服務策略與突發(fā)反饋快速響應策略的有關數(shù)據(jù),包括平均延遲、延遲散布、最長延遲,并計算相應的綜合評價函數(shù)值,比較兩種策略的優(yōu)劣.
其中,各方推演指令下達與模型計算中心的服務情況設置如下:
01 方指令下達與相應情況如下:
someordercome_1 = 100 - new Random().Next(10);
02 方指令下達與相應情況如下:
someordercome_2 = 300 - new Random().Next(10);
03 方指令下達與相應情況如下:
someordercome_3 = 500 - new Random().Next(10);
每條指令的服務所需時間如下所示:
Cost_time=30-new Random().Next(10);
4.3.1 吞吐量分析
如圖7可以看出基于突發(fā)反饋快速公平調度較使用FIFC調度策略,在三方總體指令的執(zhí)行上,吞吐量有較明顯的提高,公平調度策略較FIFC調度策略提升23%左右.
圖7 吞吐量分析
4.3.2 丟失率分析
從圖8可以看出本文所提基于突發(fā)反饋的公平調度策略在丟失率方面均優(yōu)于FIFC策略.
4.3.3 延遲分析
從圖9可以看出10次不同實驗本文所提基于突發(fā)反饋的快速調度策略與傳統(tǒng)FIFC調度策略最大延遲相差不大,本文所提策略略好于傳統(tǒng)策略.
本文圍繞如何控制大型兵棋推演指令,在過度突發(fā)情況下對模型等稀缺資源的“貪婪”使用問題.在分析以往推演指令基礎上,引入監(jiān)管拍照、過度突發(fā)判斷以及權重公平等策略,提出一種基于分類的過度突發(fā)反饋推演指令快速響應策略,使得推演指令在快速響應的基礎上,兼顧各方推演指令的公平性.并基于Visual Studio2010為開發(fā)平臺,開發(fā)了多方推演指令響應分配平臺.進行了仿真實驗,結果表明所提基于過度突發(fā)反饋的調度策略在吞吐量、丟失率、響應時間上均優(yōu)于傳統(tǒng)調度策略.
圖8 丟失率分析
圖9 最大延遲分析