一種hla聯邦成員規劃調度方法
【技術領域】
[0001]本發明涉及基于HLA的分布式仿真方法,特別為一種HLA聯邦成員規劃調度方法。
【背景技術】
[0002]HLA,即高級體系結構(High Level Architecture)的簡稱,是目前分布式仿真的主流標準。在HLA分布式仿真框架中,一個完成特定仿真任務的仿真系統稱為聯邦,聯邦由分布于不同計算機上的聯邦成員組成。
[0003]HLA體系下聯邦運行的底層支撐系統是RTI。實現RTI的方式一般有兩種:一、使用COBRA語言編程,二、直接使用Socket。由于基于COBRA的RTI使用局部服務器負責本地聯邦成員的管理和外部RTI服務的協調,對底層服務進行統一管理,應用方便、運行效率高,因此其適用面更為廣泛,如KD-XSRFrame等。
[0004]雖然基于COBRA的RTI的應用較為廣泛,但對于HLA體系下較大規模的聯邦,組成聯邦的聯邦成員較多。大多數情況下,每個聯邦成員需要的計算量是不同的,而目前的技術無法將聯邦成員合理地分配給計算節點,最終導致計算節點負載分配不均的問題,系統運算效率降低。
[0005]因此,為計算節點合理分配聯邦成員進而提高系統的運算效率,成為本領域技術人員一直追求的目標。
[0006]申請號為201410035347.X、專利名稱為一種計算密集型仿真任務的負載均衡方法的中國專利公開了如下內容:
[0007]該均衡方法的具體步驟為:
[0008]1)借助人機界面完成仿真任務的輸入,調用負載均衡模塊生成聯邦成員配置參數,通過聯邦成員調度模塊完成負載均衡技術的分布式仿真系統的構建;
[0009]2)仿真任務描述模塊通過輸入本次仿真實例化的模型數量以及各個模型的參數,生成仿真任務描述文件;
[0010]3)負載均衡控制模塊讀取仿真任務描述文件,結合當前計算機資源利用情況進行任務分發,生成聯邦成員配置文件,將密集型仿真計算任務分發給多個聯邦成員運行進程;
[0011]4)聯邦成員調度模塊以聯邦成員配置文件作為創建進程的輸入參數,啟動聯邦成員執行進程,完成該聯邦成員仿真計算任務配置參數的加載。
[0012]仿真任務描述模塊:通過人機交互界面輸入,形成仿真任務描述文件;
[0013]負載均衡控制模塊,根據當前計算機CPU利用率和內存配置,生成聯邦成員的配置參數,調用聯邦成員調度模塊,動態實例化密集型聯邦成員實例;
[0014]聯邦成員調度模塊:根據負載均衡控制模塊生成的聯邦成員配置參數,完成聯邦成員的啟動和參數加載。
[0015]上述的現有技術根據模型數量、各個模型的參數、計算機資源的利用情況進行任務分發,達到負載均衡的目的。但是,當聯邦成員(也就是上述的“模型”)的數量增多時,所有聯邦成員的參數變得復雜化,導致模型參數獲取困難或無法獲取時,實際仿真準備和仿真運行的消耗的時間會大于理論上的仿真時間,而且,隨著聯邦成員數量的增多,實際仿真消耗的時間會越來越長,最終拖慢整個系統的仿真進程,系統運算效率降低。
[0016]所以,在聯邦成員數目增多的情況下,如何提高整個系統的運算效率成為了本領域技術人員一直追求的目標。
【發明內容】
[0017]為解決現有技術中聯邦成員數目增多而導致的系統運算效率低以及模型運行需求在不同實驗背景下難以精確預測的問題,本發明提供了一種HLA聯邦成員規劃調度方法,通過多次反復地規劃,最終確定分發結果,充分利用所有計算節點,實現單次仿真在最短時間內完成,最終達到整個系統運算狀況最優化。
[0018]為實現上述目的,本發明公開了一種HLA聯邦成員規劃調度方法,包括如下步驟:
[0019]S1:初始配置每個計算節點的運算能力、計算節點數量和聯邦成員數量;
[0020]S2:獲取規劃調度方案;
[0021]S20:首次仿真時,RTI服務器采用數量平均、類型隨機的分配方式將聯邦成員分發到各個計算節點,進行完整的仿真;
[0022]S21:記錄各計算節點所消耗的計算和內存資源,各計算節點所消耗的計算和內存資源情況及所有聯邦成員的分布情況作為下次調度的依據;
[0023]S3:判斷規劃調度方案是否達到預期目標或預定規劃次數;其具體過程為判斷步驟S21的規劃方案是否達到單次仿真最短時間內完成的規劃目標,判斷標準是各個節點進行下次仿真時所消耗的計算和內存資源相近或相同,如果成立,則此時的規劃方案為優化規劃方案,如果不成立,則返回步驟S21。
[0024]上述方法通過單次仿真獲得規劃調度方案,然后采用各節點資源消耗情況是否相同或相近的方式判斷方案的可行性,如果可行,則獲取的聯邦成員的分布情況即為合理的規劃調度方案,如果不可行,再次進行規劃調度,直至達到預期目標為止。這種方式對于系統開發和操作人員來說,非常方便,只需設置計算節點的數量即可,聯邦成員數量統計等其余工作自動完成,能夠明顯提高系統開發和運行效率,使用方法容易掌握。
[0025]進一步地,步驟S21中,通過如下方式進行規劃調度:設氏j表示第i臺計算機第j次運行時所消耗的計算資源,H = w!x+w2y ;其中,Η表示某個計算節點的計算資源消耗率,X代表CPU使用率,y代表內存使用率,wjP w 2為權重系數;第j次運行時,其中j>l,根據
值的大小,然后選取消耗量最大的若干計算節點,以三個計算節點為例,其由大到小的順序是計算節點Cl>計算節點C2>計算節點C3,再選取消耗量最小的三個計算節點,其由小到大的順序是計算節點Dl〈計算節點D2〈計算節點D3,然后按照以下的方式從第計算節點Ck隨機選取若干個仿真模型調整到計算節點D:,其中1彡k彡3,1彡1彡3 ;
[0026]如果故-私〉。.3,則從計算節點k隨機選取4個聯邦成員調整到計算節點1 ;
[0027]如果0.0.3,則從計算節點k隨機選取3個聯邦成員調整到計算節點1 ;
[0028]如果0.ΚΗ,-Η^ 0.2,則從計算節點k隨機選取2個聯邦成員調整到計算節點1 ;
[0029]如果0. 05<Hk-H!^ 0. 1,則從計算節點k隨機選取1個聯邦成員調整到計算節點1 ;
[0030]如果故-私彡0. 05,則不進行調整。
[0031]在上述
【發明內容】
中,該方法通過選取三個消耗量最大的計算節點和消耗量最小的三個節點,能夠以一種較快的方式均衡各個計算節點的負載量,當然,實際使用時,并不限于三個節點,這需要根據聯邦成員個數、計算節點個數來判斷,本發明只是給出一種調整聯邦成員分布情況的可行方案。
[0032]進一步地,步驟S3中,判斷標準可通過如下公式判斷:
[0033]V = max {H; J -min {H; J ,其中 V 為判斷值,
[0034]如果V < 0. 05,則規劃調度結束,第j次得到的調度方案為最優方案。
[0035]通過最大節點負載消耗和最小節點負載消耗的差值判斷方案的可行性,是本發明的發明目的所在,因為在各個計算節點運算能力相同的情況下,一旦各個計算節點消耗的負載相同或相近,那么各個計算節點的仿真時間必然相同或接近,各節點等待時間必然較短,整體運行效率自然提高,從整個系統仿真來講,這是在最短時間內充分利用計算節點的運算能力完成仿真任務的最佳方式。
[0036]進一步地,步驟S1中,為每個計算節點配置相同的硬件和相同的軟件。
[0037]為每個計算節點配置相同的軟硬件,保證了各個計算節點的運算能力相同,這樣在首次平均分發聯邦成員后,由于已經知道各個計算節點的運算能力相同,有利于減少聯邦成員的規劃調度次數。
[0038]本發明的有益效果為:獲取計算節點資源消耗情況后,本發明在計算節點之間調整聯邦成員,平衡每個計算節點的仿真負載,使多趟仿真在可能實現的較短時間內完成,使系統運行效率達到優化,特別是當計算節點間存在性能差異、聯邦成員效率不同且仿真規模較大時,這種方法的效果越明顯。
[0039]對于操作人員和仿真系統開發人員來說,只需設置計算節點和聯邦成員的數量,聯邦成員數量統計等其余工作均自動完成,具有部署簡單、適應性強、收斂速度快、應用面廣等優點。
【附圖說明】