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