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