新四季網

一種分布式仿真同步的實現方法

2023-10-08 18:27:19 3

專利名稱:一種分布式仿真同步的實現方法
技術領域:
本發明涉及一種分布式仿真同步的實現方法,特別是適用大型分布式仿真系統中仿真同步的實現方法。
背景技術:
基於高層體系結構HLA (High Level Architecture)的分布式仿真訓練系統中,為了保證仿真節點之間的事件執行順序和因果邏輯的同步,目前較多採用基於各種策略的時間管理服務來實現,時間管理服務是通過邏輯時間對分布式仿真中的消息進行排序,保證事件發生在仿真系統中的時序關係與現實世界中的時序關係一致,確保仿真的正確進行。然而,時間管理的機制是基於時間戳時序(TimeStamp Order, TS0)方法的,為了推進時間前進,需要時間推進請求和認可的過程,在大規模分布式仿真系統中,主要存在以下不足一、隨著仿真節點數目的增加而仿真性能降低;二、仿真系統同步性及實時性能差; 三、面對不同的分布式仿真時,為滿足不同的分布式仿真需要,仿真節點可能使用完全不同的時間管理策略,因此HLA的運行支撐環境需要協調大量不同類型的仿真器,因而時間管理互操作較難完成,甚至會導致完全錯誤的結果。

發明內容
本發明為了解決現有分布式仿真系統中的時間管理機制不適用於大規模分布式仿真系統的問題,提供了一種分布式仿真同步的實現方法,在大規模分布式仿真系統中較好的保障了各仿真節點的時序同步性,更加適合大規模分布式仿真系統。為了解決上述技術問題,本發明採用以下技術方案予以實現一種分布式仿真同步的實現方法,包括以下步驟(a)、心跳伺服器計算分布式仿真系統的心跳步長;(b)、心跳伺服器以心跳步長為周期定期向各仿真節點發送包含有心跳數和心跳步長的心跳數據包,所述的心跳數為心跳伺服器當前發送心跳數據包的周期數N,所述的N 為正整數;(c)、各仿真節點接收心跳伺服器發送的心跳數據包,並根據心跳數確定是否推進本節點仿真。進一步的,在所述的步驟(a)中,心跳伺服器通過以下方式獲得心跳步長(aO)、心跳伺服器向各仿真節點發送測試數據包,並記下向第i個仿真節點發送測試數據包時伺服器的時間Tli ;(al)、各仿真節點收到測試數據包後,立即向心跳伺服器發送應答數據包;(a2)、心跳伺服器接收到第i個仿真節點發送的應答數據包,記錄當前的伺服器時間T2i,並通過ATi = (T2i-Tli)計算出心跳伺服器與第i個仿真節點之間的網絡延遲;(a3)、找出Δ Ti中的最大值Max (ATi),取任意大於或等於Max (ATi)的值作為心跳步長;
其中,i為正整數。又進一步的,為了確保在一個心跳步長內,所有的仿真節點都可以收到心跳數據, 防止出現個別仿真節點收到心跳數據滯後時間過長、仿真延遲過大,而且每個仿真節點都有預置的仿真周期,為了保證心跳步長為各仿真周期的整數倍,所述的步驟a C3)包括a (31)、各仿真節點預置有仿真周期計算所有、的最小公倍數L ;a (32)、找出 Δ Ti 中的最大值 Max ( Δ Ti);a (33)、比較L與Max ( Δ Ti)的大小,若L大於或等於Max (ATi),則取L作為心跳步長;a (34)、若L小於Max ( Δ Ti),則取心跳步長滿足三個條件1、大於或等於 Max (ATi);2、心跳步長是L的整數倍;3、心跳步長是所述整數倍中的最小整數倍值。再進一步的,所述的步驟(C)中仿真節點通過以下方式推進本節點仿真(cOO)、仿真節點接收心跳伺服器發送的心跳數據包,並將接收到的心跳數保存至
最新心跳變量;(ClO)、比較當前心跳變量與最新心跳變量,若當前心跳變量小於最新心跳變量, 推進本地仿真,並將當前心跳變量加1,重複執行步驟(ClO),若當前心跳變量等於最新心跳變量,則執行步驟(c20);(c20)、判斷是否收到結束仿真的指令,若未收到結束仿真的指令,返回步驟 (cOO),否則,則結束仿真。為了防止仿真運行過程中因為本仿真節點的其他事務導致延遲接收心跳數據,還包括在各仿真節點上分別建立一個心跳數據接收線程,用於全職負責接收心跳伺服器發送的心跳數據包,以及分布建立一個仿真線程,所述的仿真線程專門用於推進本節點仿真。進一步的,所述的步驟(C)包括(cOl)、心跳數據接收線程接收心跳伺服器發送的心跳數據包,並將接收到的數據
保存至最新心跳變量;(Cll)、仿真線程比較當前心跳變量與最新心跳變量,若當前心跳變量小於最新心跳變量,推進本地仿真,並將當前心跳變量加1,重複執行步驟(Cll),若當前心跳變量等於最新心跳變量,則執行步驟(c21);(c21)、仿真線程判斷是否收到結束仿真的指令,若未收到結束仿真的指令,返回步驟(cOl),否則,則結束仿真。又進一步的,所述的結束仿真的指令由本仿真節點的系統發出。與現有技術相比,本發明的優點和積極效果是本發明的分布式仿真同步的方法基於心跳機制,通過心跳伺服器發送心跳數據驅動節點仿真的推進,不會隨著節點數目的增加而降低仿真性能,適合規模分布式仿真系統中仿真的同步,可以滿足不同的分布式仿
真需要,準確度高。結合附圖閱讀本發明實施方式的詳細描述後,本發明的其他特點和優點將變得更加清楚。


圖1是本發明所提出的分布式仿真同步的實現方法的一種實施例邏輯結構圖;圖2是本發明所提出的分布式仿真同步的實現方法的一種實施例流程圖;圖3是本發明所提出的分布式仿真同步的實現方法的一種實施例網絡延遲計算示意圖;圖4是本發明所提出的分布式仿真同步的實現方法的一種實施例步驟SO分解圖;圖5是本發明所提出的分布式仿真同步的實現方法的一種實施例步驟S2分解圖。
具體實施例方式下面結合附圖對本發明的具體實施方式
作進一步詳細地說明。實施例一,本發明的一種分布式仿真同步的實現方法,參見圖1所示,包括一個心跳伺服器和若干個仿真節點,心跳伺服器與仿真節點之間可以進行數據傳輸,本實施例的一種分布式仿真同步的實現方法,參見圖2所示,包括以下步驟SO、心跳伺服器計算分布式仿真系統的心跳步長。Si、心跳伺服器以心跳步長為周期定期向各仿真節點發送包含有心跳數和心跳步長的心跳數據包,所述的心跳數為心跳伺服器當前發送心跳數據包的周期數N,所述的N為正整數;S2、各仿真節點接收心跳伺服器發送的心跳數據包,並根據心跳數確定是否推進本節點仿真。本發明的分布式仿真同步實現方法,基於心跳機制,通過心跳伺服器周期性的向各仿真節點發送包含有心跳數和心跳步長的心跳數據包,各個仿真節點用接收到的心跳數驅動本節點仿真的推進,不會隨著節點數目的增加而降低仿真性能,適合大規模分布式仿真系統中仿真的同步。為了確保在一個心跳步長內,所有的仿真節點都可以收到心跳數據,防止出現個別仿真節點收到心跳數據滯後時間過長、仿真延遲過大,心跳步長取決於各仿真節點最大的網絡延遲,具體的,參見圖3、圖4、圖5所示,在所述的步驟SO中,心跳伺服器通過以下方式獲得心跳步長S01、心跳伺服器向各仿真節點發送測試數據包,並記下向第i個仿真節點發送測試數據包時伺服器的時間Tli ;S02、各仿真節點收到測試數據包後,立即向心跳伺服器發送應答數據包;S03、心跳伺服器接收到第i個仿真節點發送的應答數據包,記錄當前的伺服器時間T2i,並通過ATi = (T2i-Tli)計算出心跳伺服器與第i個仿真節點之間的網絡延遲;S04、找出Δ Ti中的最大值Max (ATi),取任意大於或等於Max (ATi)的值作為心跳步長;其中,i為正整數。上述方式獲得的心跳步長,保證了在一個心跳步長內,所有的仿真節點都可以收到心跳數據。由於每個仿真節點中都有預置的仿真周期,為了進一步保證心跳步長為各仿真周期的整數倍,所述的步驟S04包括S04-1、各仿真節點預置有仿真周期計算所有、的最小公倍數L ;S04-2、找出 ATi 中的最大值 Max (ATi);S04-3、比較L與Max ( Δ Ti)的大小,若L大於或等於Max (ATi),則取L作為心跳步長;S04-4、若L小於Max (ATi),則取心跳步長滿足三個條件1、大於或等於 Max (ATi);2、心跳步長是L的整數倍;3、心跳步長是所述整數倍中的最小整數倍值。通過使心跳步長既不小於各仿真節點最大的網絡延遲,保證了在一個心跳步長內,所有的仿真節點都可以收到心跳數據,又通過使心跳步長等於各仿真周期^的整數倍, 保證了在一個心跳步長內仿真節點中有完整的若干個仿真周期,當心跳步長與仿真周期差值太大時,便於採取其他處理方式。具體的,在所述的步驟S2中仿真節點通過以下方式推進本節點仿真S21、仿真節點接收心跳伺服器發送的心跳數據包,並將接收到的心跳數保存至最新心跳變量;S22、比較當前心跳變量與最新心跳變量,若當前心跳變量小於最新心跳變量,推進本地仿真,並將當前心跳變量加1,重複執行步驟S22,若當前心跳變量等於最新心跳變量,則執行步驟S23;S23、判斷是否收到結束仿真的指令,若未收到結束仿真的指令,返回步驟S21,否則,則結束仿真。心跳伺服器通過不斷向各仿真節點發送攜帶有心跳數的數據包,而仿真節點需要將所收到的心跳數與當前心跳數做比較,決定是否將本節點的仿真推進,直至使得當前心跳數與心跳伺服器發送的心跳數一致,即本節點在時間上與外界保持了同步,當各節點需要退出仿真時,只需本地節點的系統發送結束仿真的指令,該節點便結束仿真。為了防止仿真運行過程中因為本仿真節點的其他事物導致延遲接收心跳數據,還包括在各仿真節點上分別建立一個心跳數據接收線程,用於全職負責接收心跳伺服器發送的心跳數據包,以及分布建立一個仿真線程,所述的仿真線程專門用於推進本節點仿真。基於此,所述的步驟S2包括S21』、心跳數據接收線程接收心跳伺服器發送的心跳數據包,並將接收到的數據
保存至最新心跳變量;S22』、仿真線程比較當前心跳變量與最新心跳變量,若當前心跳變量小於最新心跳變量,推進本地仿真,並將當前心跳變量加1,重複執行步驟S22』,若當前心跳變量等於最新心跳變量,則執行步驟S23』 ;S23』、仿真線程判斷是否收到結束仿真的指令,若未收到結束仿真的指令,返回步驟S21,,否則,則結束仿真。本發明的分布式仿真同步方法可以滿足不同的分布式仿真需要,避免了不同的仿真節點使用不同的時間管理策略所帶來的時間管理互操作較難完成的問題,準確度高。本發明的分布式仿真同步的實現方法中,當有事件產生時,該事件帶有心跳數,帶有心跳數的時間被發送到目的節點,該節點會根據其攜帶的心跳數決定多個事件的先後次序,並且通過與當前心跳數的比較,決定事件驅動的運算進度。需要說明的是,分布式仿真心跳運行時,若連續數據帶有心跳數,則在心跳一個周期內,可能會有多個本節點的仿真步長連續推進,如果系統決策的心跳步長不能滿足實時性要求,仿真節點在等待心跳伺服器心跳數的間隙中,將採用航路規劃的方法向前推進本節點的仿真,其中,航路規劃的方法為本領域技術人員所熟知的技術,在本實施例中不做贅述。當然,上述說明並非是對本發明的限制,本發明也並不僅限於上述舉例,本技術領域的普通技術人員在本發明的實質範圍內所做出的變化、改型、添加或替換,也應屬於本發明的保護範圍。
權利要求
1.一種分布式仿真同步的實現方法,其特徵在於,包括以下步驟(a)、心跳伺服器計算分布式仿真系統的心跳步長;(b)、心跳伺服器以心跳步長為周期定期向各仿真節點發送包含有心跳數和心跳步長的心跳數據包,所述的心跳數為心跳伺服器當前發送心跳數據包的周期數N,所述的N為正整數;(c)、各仿真節點接收心跳伺服器發送的心跳數據包,並根據心跳數確定是否推進本節點仿真。
2.根據權利要求1所述的分布式仿真同步實現方法,其特徵在於,所述的步驟(a)包括(aO)、心跳伺服器向各仿真節點發送測試數據包,並記下向第i個仿真節點發送測試數據包時伺服器的時間Tli ;(al)、各仿真節點收到測試數據包後,立即向心跳伺服器發送應答數據包; (a2)、心跳伺服器接收到第i個仿真節點發送的應答數據包,記錄當前的伺服器時間 T2i,並通過ATi = (T2i-Tli)計算出心跳伺服器與第i個仿真節點之間的網絡延遲;(a3)、找出ATi中的最大值Max (ATi),取任意大於或等於Max (ATi)的值作為心跳步長;其中,i為正整數。
3.根據權利要求2所述的分布式仿真同步實現方法,其特徵在於,所述的步驟a(3)包括a (31)、各仿真節點預置有仿真周期計算所有、的最小公倍數L ; a (32)、找出ATi中的最大值Max (ATi);a (33)、比較L與Max ( Δ Ti)的大小,若Li大於或等於Max (ATi),則取L作為心跳步長; a (34)、若L小於Max ( Δ Ti),則取心跳步長滿足三個條件1、大於或等於Max(ATi);2、心跳步長是L的整數倍;3、心跳步長是所述整數倍中的最小整數倍值。
4、根據權利要求1所述的分布式仿真同步實現方法,其特徵在於,所述的步驟(c)包括(cOO)、仿真節點接收心跳伺服器發送的心跳數據包,並將接收到的心跳數保存至最新心跳變量;(clO)、比較當前心跳變量與最新心跳變量,若當前心跳變量小於最新心跳變量,推進本地仿真,並將當前心跳變量加1,重複執行步驟(clO),若當前心跳變量等於最新心跳變量,則執行步驟(c20);(c20)、判斷是否收到結束仿真的指令,若未收到結束仿真的指令,返回步驟(cOO),否則,則結束仿真。
5、根據權利要求1-4任一項權利要求所述的分布式仿真同步的實現方法,其特徵在於,還包括在各仿真節點上分別建立一個心跳數據接收線程和一個仿真線程的步驟,所述的心跳數據接收線程專門用於接收心跳伺服器發送的心跳數據包,所述的仿真線程專門用於推進本節點仿真。
6.根據權利要求5所述的分布式仿真同步的實現方法,其特徵在於,所述的步驟(c)包括(cOl)、心跳數據接收線程接收心跳伺服器發送的心跳數據包,並將接收到的數據保存至最新心跳變量;(cll)、仿真線程比較當前心跳變量與最新心跳變量,若當前心跳變量小於最新心跳變量,推進本地仿真,並將當前心跳變量加1,重複執行步驟(cll),若當前心跳變量等於最新心跳變量,則執行步驟(c21);(c21)、仿真線程判斷是否收到結束仿真的指令,若未收到結束仿真的指令,返回步驟 (cOl),否則,則結束仿真。
7.根據權利要求6所述的分布式仿真同步的實現方法,其特徵在於,所述的結束仿真的指令由本地仿真節點的系統發出。
全文摘要
本發明公開了一種分布式仿真同步的實現方法,包括以下步驟心跳伺服器計算分布式仿真系統的心跳步長;心跳伺服器以心跳步長為周期定期向各仿真節點發送包含有心跳數和心跳步長的心跳數據包,所述的心跳數為心跳伺服器當前發送心跳數據包的周期數N,所述的N為正整數;各仿真節點接收心跳伺服器發送的心跳數據包,並根據心跳數確定是否推進本節點仿真。本方法基於心跳機制,通過心跳伺服器發送心跳數據驅動節點仿真的推進,不會隨著節點數目的增加而降低仿真性能,適合大規模分布式仿真系統中仿真的同步,可以滿足不同的分布式仿真需要,實時性好、仿真系統整體性能優良。
文檔編號H04L29/08GK102201907SQ201110052299
公開日2011年9月28日 申請日期2011年3月4日 優先權日2011年3月4日
發明者於輝, 付戰平, 趙經成 申請人:於輝

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀