專利名稱:基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)仿真領(lǐng)域的任務(wù)分發(fā)與調(diào)度方法,尤其是一種并行仿 真任務(wù)的分發(fā)與調(diào)度方法。
背景技術(shù):
并行仿真是執(zhí)行在共享內(nèi)存多處理器、多計(jì)算機(jī)系統(tǒng)或單指令多數(shù)據(jù)流
(SIMD)機(jī)器上的仿真,其目的是通過并行執(zhí)行來獲得更高的性能,即在 保持系統(tǒng)因果序協(xié)同正確的前提下盡可能多地提高系統(tǒng)的運(yùn)行效率。并行仿 真的典型特點(diǎn)是"超實(shí)時(shí)運(yùn)行"、"因果序協(xié)同"。并行仿真是連接并行計(jì)算機(jī) 系統(tǒng)和實(shí)際仿真應(yīng)用問題之間的橋梁。并行仿真分為并行連續(xù)系統(tǒng)仿真和并 行離散事件仿真,并行連續(xù)系統(tǒng)仿真是指在并行計(jì)算平臺上執(zhí)行的狀態(tài)變量 隨時(shí)間連續(xù)變化的仿真,并行離散事件仿真是指在并行計(jì)算平臺上執(zhí)行的狀 態(tài)變量僅在某個(gè)離散時(shí)間點(diǎn)集合上發(fā)生變化的仿真。并行連續(xù)系統(tǒng)仿真,通 過將描述系統(tǒng)狀態(tài)連續(xù)變化的偏微分方程組分解到多個(gè)處理器上進(jìn)行計(jì)算 來提高計(jì)算速度,側(cè)重于并行計(jì)算技術(shù)的研究,主要應(yīng)用于復(fù)雜科學(xué)計(jì)算和 模擬、工程數(shù)值分析領(lǐng)域。并行離散事件仿真,通過將描述系統(tǒng)的數(shù)萬至數(shù) 百萬的實(shí)體子模型分解到多個(gè)處理器上并行執(zhí)行來減少運(yùn)行時(shí)間,側(cè)重于大 規(guī)模的軍事、經(jīng)濟(jì)、交通分析領(lǐng)域。針對大規(guī)模戰(zhàn)爭問題及戰(zhàn)術(shù)戰(zhàn)法研究、 作戰(zhàn)方案分析評估、武器裝備體系論證等評估論證類仿真應(yīng)用的需要, 一般 在并行計(jì)算機(jī)系統(tǒng)上采用并行離散事件仿真。采用并行離散事件仿真可以大 大地提高評估論證類仿真運(yùn)行效率,縮短評估論證類仿真的運(yùn)行時(shí)間。
分布式仿真是執(zhí)行在分布計(jì)算機(jī)上的仿真。分布式仿真的運(yùn)行平臺主要 是通過網(wǎng)絡(luò)(或Internet)互聯(lián)的位于不同物理地點(diǎn)的工作站、以及利用無 線連接的便攜計(jì)算機(jī)。分布式仿真與并行仿真的區(qū)別主要是仿真計(jì)算平臺的 不同。分布式仿真的典型特點(diǎn)是分布性、交互性。分布式仿真的主要目的是構(gòu)建分布式虛擬環(huán)境(如軍事訓(xùn)練仿真環(huán)境等)。
并行離散事件仿真(以下簡稱并行仿真)的基本構(gòu)造塊是離散事件。一 旦一個(gè)離散事件仿真被初始化,并行仿真通過處理時(shí)間軸上不連續(xù)點(diǎn)處發(fā)生 的帶有時(shí)間戳的事件,使所有特定于應(yīng)用程序的計(jì)算隨著時(shí)間而推進(jìn)。并行 仿真是對復(fù)雜系統(tǒng)復(fù)雜交互進(jìn)行建模的一個(gè)強(qiáng)有力的技術(shù)。
在并行仿真應(yīng)用中,往往需要對多個(gè)方案進(jìn)行比較,或者需要對參數(shù)空 間的不確定性因素進(jìn)行探索,從而找出符合目標(biāo)的最優(yōu)方案,以輔助相關(guān)人 員進(jìn)行決策。這就要求仿真應(yīng)用可能運(yùn)行幾十、幾百、甚至上千次,才能得 到方案評估所需的大量結(jié)果數(shù)據(jù)。其中仿真應(yīng)用可執(zhí)行程序的每次實(shí)例稱為 一個(gè)仿真應(yīng)用樣本,仿真應(yīng)用可執(zhí)行程序的每次運(yùn)行稱為一個(gè)樣本運(yùn)行。
針對并行仿真應(yīng)用的多樣本多次運(yùn)行,傳統(tǒng)的并行仿真任務(wù)分發(fā)與調(diào)度 方法一般采用與建設(shè)的仿真系統(tǒng)密切結(jié)合的主從方式,其過程可概括為三 步..
(1) 樣本分發(fā)在建立的仿真樣本運(yùn)行硬件環(huán)境中,對仿真樣本的 初始化文件、仿真樣本子模型進(jìn)行手動配置,來實(shí)現(xiàn)仿真樣本的任務(wù)分 發(fā)。
(2) 樣本調(diào)度仿真運(yùn)行過程中,采用靜態(tài)任務(wù)隊(duì)列、樣本子模型 協(xié)同策略對仿真任務(wù)進(jìn)行調(diào)度,來實(shí)現(xiàn)仿真樣本的依次調(diào)度運(yùn)行。
(3) 樣本結(jié)果數(shù)據(jù)收集仿真運(yùn)行完畢后,仿真結(jié)果分散在各個(gè)計(jì) 算機(jī)上,需采用手動收集方式來收集各個(gè)仿真樣本的結(jié)果數(shù)據(jù)。
其中前兩步("樣本分發(fā)"與"樣本調(diào)度")是并行仿真任務(wù)分發(fā)與調(diào)度中 的兩個(gè)核心環(huán)節(jié),第三步"樣本結(jié)果數(shù)據(jù)收集"則是對前兩步運(yùn)行結(jié)果數(shù)據(jù)的 收集與輸出。傳統(tǒng)的并行仿真任務(wù)分發(fā)方法采用的是一種靜態(tài)的、手動的分 發(fā)策略,需要人為地將仿真樣本復(fù)制到各臺計(jì)算機(jī)上,這種復(fù)制過程不僅需 要消耗大量的人力資源,而且容易引起樣本配置錯(cuò)誤。傳統(tǒng)的并行仿真任務(wù) 調(diào)度方法能夠在一定程度上解決仿真樣本的調(diào)度問題,但不能根據(jù)仿真任務(wù)實(shí)際運(yùn)行情況對仿真樣本進(jìn)行重新調(diào)度,來滿足仿真樣本的動態(tài)調(diào)度,因而 存在適應(yīng)性較差的問題。傳統(tǒng)的并行仿真收集方法與任務(wù)分發(fā)方法存在同樣 的問題,采用手動方式將仿真樣本結(jié)果數(shù)據(jù)復(fù)制到收集管理計(jì)算機(jī)上,這種 復(fù)制過程需要消耗大量的人力資源,從而極易引起樣本結(jié)果數(shù)據(jù)收集的錯(cuò) 誤。
美國國防部早期開發(fā)的并行仿真系統(tǒng)大多采用這種任務(wù)分發(fā)和調(diào)度方 法。這種任務(wù)分發(fā)與調(diào)度方式既極大地浪費(fèi)了寶貴的人力資源,又不能最大 程度滿足仿真系統(tǒng)對時(shí)效性的進(jìn)一步的要求,從而阻礙了應(yīng)用的發(fā)展。之后, 美國在開展大規(guī)模并行仿真系統(tǒng)建設(shè)時(shí),開展了對并行仿真任務(wù)分發(fā)與調(diào)用
技術(shù)的研究,并將這些研究成果先后應(yīng)用到聯(lián)合仿真系統(tǒng)(JSIMS)、聯(lián)合建 模與仿真系統(tǒng)(JMASS)、 WARGAME2000等多個(gè)重要仿真項(xiàng)目中,不過他們 的實(shí)現(xiàn)方法并未公開。
國內(nèi)開展并行仿真研究的工作較晚,目前從國內(nèi)公開的文獻(xiàn)中仍未看到 任何關(guān)于并行仿真多樣本任務(wù)分發(fā)與調(diào)度研究的報(bào)道。僅看到為基于HLA開
發(fā)的仿真應(yīng)用的多樣本多次運(yùn)行任務(wù)分發(fā)與調(diào)度的研究,如國防大學(xué)研制的 戰(zhàn)爭分析綜合仿真試驗(yàn)環(huán)境,采取重新構(gòu)建聯(lián)邦的方'式實(shí)現(xiàn)仿真樣本的多次 調(diào)度運(yùn)行;2007年,解放軍機(jī)械工程學(xué)院的談斌等,在參加"第二次仿真高 層論壇"時(shí),采取三重循環(huán)控制流程調(diào)度策略來實(shí)現(xiàn)仿真子模型的協(xié)同并行。 所有這些方案均是結(jié)合具體分布式仿真應(yīng)用的,而并行離散事件仿真應(yīng)用與 分布式仿真應(yīng)用在時(shí)間推進(jìn)、仿真運(yùn)行機(jī)制等方面存在較大的差異,從而使 得這些方案無法直接用于并行離散事件仿真應(yīng)用的多樣本任務(wù)分發(fā)與調(diào)度 過程之中。 技術(shù)方案
本發(fā)明要解決的技術(shù)問題是針對傳統(tǒng)的并行仿真任務(wù)分發(fā)與調(diào)度方法 需要用戶手工操作完成、消耗時(shí)間長、仿真結(jié)果數(shù)據(jù)收集困難等問題,提出 一種基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度方法,以加快并行仿真多樣本多次運(yùn)行速度,提高仿真結(jié)果數(shù)據(jù)收集的自動程度。 本發(fā)明的技術(shù)方案為
第一步,構(gòu)建由多臺計(jì)算機(jī)組成的并行仿真局域網(wǎng)環(huán)境。每臺計(jì)算機(jī)都 是局域網(wǎng)的節(jié)點(diǎn),各節(jié)點(diǎn)有著各自獨(dú)立的存儲系統(tǒng),節(jié)點(diǎn)之間的通信采用消
息傳遞的方式。節(jié)點(diǎn)依次編號為0,1,2,...,11, n+l為局域網(wǎng)中節(jié)點(diǎn)的總數(shù)。
第二步,建立基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器。并行仿 真任務(wù)分發(fā)與調(diào)度器由管理器、后臺管控器組成,管理器是一個(gè)仿真樣本分 發(fā)和調(diào)度軟件,負(fù)責(zé)實(shí)現(xiàn)仿真樣本的分發(fā),并通過調(diào)度后臺管控器來實(shí)現(xiàn)仿
真樣本的運(yùn)行;后臺管控器是一個(gè)響應(yīng)仿真樣本分發(fā)和調(diào)度的軟件,負(fù)責(zé)對 仿真樣本進(jìn)行接收與調(diào)度。具體步驟包括-
2.1建立管理器指定在任一編號(例如編號為0)的節(jié)點(diǎn)機(jī)器上建立并
行仿真任務(wù)分發(fā)管理器,并行仿真任務(wù)分發(fā)管理器所在的節(jié)點(diǎn)簡稱為管理器 節(jié)點(diǎn),在管理器節(jié)點(diǎn)上安裝仿真應(yīng)用可執(zhí)行程序。并行仿真任務(wù)分發(fā)管理器
每隔0.8 2秒向局域網(wǎng)內(nèi)的各個(gè)節(jié)點(diǎn)發(fā)送UDP (User Datagram Protocol,用
戶數(shù)據(jù)報(bào)協(xié)議)消息,以期與局域網(wǎng)內(nèi)的后臺管控器建立連接。
2.2建立后臺管控器指定在除管理器編號(例如編號1,2,...,10的節(jié)點(diǎn)
上依次建立并行仿真任務(wù)分發(fā)后臺管控器,各后臺管控器均與管理器建立可
靠連接。并行仿真任務(wù)分發(fā)后臺管控器所在的節(jié)點(diǎn)簡稱為后臺管控器節(jié)點(diǎn)。
之后在后臺管控器節(jié)點(diǎn)上建立支持并行仿真應(yīng)用運(yùn)行和實(shí)體子模型交互的
運(yùn)行支撐環(huán)境一并行仿真服務(wù)器。
2.3管理器和后臺管控器之間建立連接消息通訊機(jī)制,步驟如下
2.3.1為保證管理器與后臺管控器之間消息傳輸?shù)奈ㄒ恍?、可靠性,管?br>
器以各后臺管控器的節(jié)點(diǎn)編號為標(biāo)識,向各后臺管控器發(fā)送UDP消息。 2.3.2各后臺管控器從管理器接收到UDP消息后,即建立與管理器的可
靠連接;當(dāng)所有后臺管控器完成建立與管理器的連接后,管理器即停止發(fā)送
UDP消息,以減輕廣播引起的網(wǎng)絡(luò)負(fù)擔(dān)。2.3.3管理器每隔2 4秒向后臺管控器請求節(jié)點(diǎn)CPU狀態(tài)、內(nèi)存狀態(tài)等 信息,后臺管控器接收到管理器的請求消息后,實(shí)時(shí)收集本節(jié)點(diǎn)狀態(tài)信息并 傳送給管理器。
2.3.4管理器接收到各后臺管控器的狀態(tài)信息后,實(shí)時(shí)顯示各后臺管控器 節(jié)點(diǎn)當(dāng)前的性能狀態(tài)參數(shù)(包括CPU主頻、CPU利用率、內(nèi)存容量、內(nèi)存 利用率等參數(shù)),以期在分配仿真樣本(包括仿真可執(zhí)行程序、各種.par文 件,例如并行仿真配置文件SUPE.par、仿真對象文件objects.par、仿真對象 分發(fā)文件Shnobjplacement.par等文件)時(shí),管理器根據(jù)性能狀態(tài)參數(shù)來給各 后臺管控器節(jié)點(diǎn)分配適宜的樣本數(shù)。
第三步,基于仿真任務(wù)復(fù)雜程度決定分發(fā)調(diào)度策略。仿真任務(wù)復(fù)雜程度 由仿真樣本運(yùn)行過程中的實(shí)體數(shù)以及實(shí)體之間交互的數(shù)量決定。分發(fā)調(diào)度策
略包括單節(jié)點(diǎn)分發(fā)調(diào)度策略和組分發(fā)調(diào)度策略。單節(jié)點(diǎn)分發(fā)調(diào)度策略是指在 一個(gè)后臺管控節(jié)點(diǎn)上運(yùn)行一個(gè)仿真樣本和一個(gè)并行仿真服務(wù)器,它主要針對 相對簡單的仿真應(yīng)用,仿真樣本在單個(gè)后臺管控節(jié)點(diǎn)上即能較好地運(yùn)行,同 時(shí)運(yùn)行的并行仿真服務(wù)器負(fù)責(zé)監(jiān)控本節(jié)點(diǎn)上樣本的運(yùn)行狀態(tài)(即樣本的開 始、結(jié)束狀態(tài));組分發(fā)調(diào)度策略是指幾個(gè)后臺管控節(jié)點(diǎn)構(gòu)成一個(gè)組,該節(jié) 點(diǎn)組共同運(yùn)行一個(gè)仿真樣本,其中一個(gè)后臺管控節(jié)點(diǎn)運(yùn)行并行仿真服務(wù)器, 其它節(jié)點(diǎn)運(yùn)行仿真樣本可執(zhí)行程序,它主要針對相對復(fù)雜的仿真應(yīng)用,該類 仿真應(yīng)用在單個(gè)節(jié)點(diǎn)上運(yùn)行無法滿足要求,需根據(jù)復(fù)雜程度規(guī)劃合適的分組 規(guī)模,從而使組內(nèi)節(jié)點(diǎn)作為一個(gè)整體來運(yùn)行仿真樣本。選定單節(jié)點(diǎn)分發(fā)調(diào)度 策略或組分發(fā)調(diào)度策略的規(guī)則是若仿真任務(wù)實(shí)體數(shù)為S, CPU平均利用率 為E,內(nèi)存平均利用率為Es,則當(dāng)SxEcpuXE^-100時(shí),選取單節(jié)點(diǎn)分發(fā)調(diào) 度策略,否則選取組分發(fā)調(diào)度策略;在計(jì)算機(jī)節(jié)點(diǎn)有限的情況下,分組規(guī)模 越小,同時(shí)運(yùn)行的仿真樣本數(shù)也就越多,每個(gè)樣本運(yùn)行所需時(shí)間可能也就越 長-,分組規(guī)模越大,同時(shí)運(yùn)行的仿真樣本數(shù)越小,每個(gè)樣本運(yùn)行時(shí)間可能就 越短。在分組規(guī)模逐步增大的過程中,計(jì)算開銷占主導(dǎo)作用時(shí),仿真運(yùn)行速度一般會隨分組規(guī)模的增大而加快,但是當(dāng)分組規(guī)模增大到一定程度,使得 通信開銷占主導(dǎo)作用時(shí),仿真運(yùn)行速度反而會隨分組規(guī)模的增大而變慢。為 使整個(gè)仿真任務(wù)運(yùn)行時(shí)間減至最小,需找出合適的分組規(guī)模來運(yùn)行仿真。分
組策略是若SxEcpuxEs>100&&SxEcpuxEs<=200,采用2節(jié)點(diǎn)為一組的組分 發(fā)調(diào)度策略;若SxEcpuxEs>200&&SxEcpuxEs<=300,采用3節(jié)點(diǎn)為一組的組 分發(fā)調(diào)度策略;如此類推,即當(dāng)SxEcpuxEs>(k-l)*100&&SxEcpuxEs<=k*100 時(shí),采用k節(jié)點(diǎn)為一組的組分發(fā)調(diào)度策略,l<k<=n。當(dāng)存在不能歸組的節(jié) 點(diǎn)時(shí),將這些節(jié)點(diǎn)歸入最后一個(gè)節(jié)點(diǎn)組中,聯(lián)合執(zhí)行相應(yīng)的仿真樣本。規(guī)劃 好分組后,需根據(jù)分組情況生成配置文件,指定組內(nèi)的主管控節(jié)點(diǎn)、仿真對 象分發(fā)情況。當(dāng)仿真運(yùn)行時(shí),根據(jù)位于各后臺管控節(jié)點(diǎn)上的配置文件將仿真 對象映射到各后臺管控節(jié)點(diǎn),并由并行仿真服務(wù)器實(shí)現(xiàn)不同節(jié)點(diǎn)上的仿真對 象之間的交互。
第四步,管理器根據(jù)單節(jié)點(diǎn)分發(fā)調(diào)度策略或組分發(fā)調(diào)度策略向后臺管控
器進(jìn)行仿真樣本分發(fā)。
4.1當(dāng)選定單節(jié)點(diǎn)分發(fā)調(diào)度策略進(jìn)行分發(fā)時(shí),包括以下步驟
4丄1根據(jù)各節(jié)點(diǎn)當(dāng)前的性能狀況參數(shù)(包括CPU主頻、CPU利用率、
內(nèi)存容量、內(nèi)存利用率等參數(shù)),基于負(fù)載平衡的原則向各后臺管控節(jié)點(diǎn)分
配仿真樣本。
4丄2管理器記錄樣本部署信息(包括節(jié)點(diǎn)編號、仿真樣本名稱、仿真樣 本運(yùn)行次數(shù)、記錄文件編號),并以后臺管控節(jié)點(diǎn)的編號為關(guān)鍵字生成仿真 任務(wù)隊(duì)列STQ (Simulation Task Queue) 。 STQ以后臺管控節(jié)點(diǎn)編號為關(guān)鍵 字,包含各節(jié)點(diǎn)相應(yīng)的后臺管控節(jié)點(diǎn)子隊(duì)列,假設(shè)編號為0的節(jié)點(diǎn)上建立了 管理器,則STQ^STQ!,STQ2,…,STQi,…,STQJ, i=l,2,...,n,子隊(duì)列STQi 中每個(gè)元素是一條記錄,每條記錄包括節(jié)點(diǎn)編號、仿真樣本名稱、仿真樣本 運(yùn)行次數(shù)、記錄文件編號四個(gè)字段。其中節(jié)點(diǎn)編號標(biāo)識仿真樣本運(yùn)行的節(jié)點(diǎn) i,仿真樣本名稱標(biāo)識運(yùn)行的樣本名Namej(j=l,2,...,N,假設(shè)節(jié)點(diǎn)i上要運(yùn)行N個(gè)仿真樣本,樣本名為(Namei,Name2,…,Namej,…,NameNp ,仿真樣本運(yùn)行 次數(shù)標(biāo)識仿真樣本Namej在節(jié)點(diǎn)i上需運(yùn)行的次數(shù)murnj,記錄文件編號表示 樣本運(yùn)行結(jié)果存儲的文件編號i—Name」—mum"
例如STQi包含N個(gè)仿真樣本{ Nameh Name2,..., Namej,...,NameN},則 節(jié) 點(diǎn) i 的 任 務(wù) 子 隊(duì) 列
STQi= {{i,Name!,rnumi,i—Namelrnumi}, { i,Name2,rnum2,i—Name2—mum2},{..., ..".."...} , (i,Namej,rnumj,i一Namej—rnumj} , { "..■, .,..,} , { i,NameN,mumN,i—NameN—rnumN}}。當(dāng)調(diào)度仿真樣本運(yùn)行時(shí),管理器根據(jù) STQj在節(jié)點(diǎn)i上按序調(diào)度仿真樣本Nan^, Name2,...,NameN運(yùn)行,并且依次 將仿真樣本Namej運(yùn)行rnurnj次和將仿真運(yùn)行結(jié)果數(shù)據(jù)放入文件 i_Namej_rnumj, j=l,2"..,N。
4丄3管理器查詢仿真任務(wù)隊(duì)列STQ,生成各節(jié)點(diǎn)的配置文件,并將配 置文件和仿真應(yīng)用可執(zhí)行程序分發(fā)到對應(yīng)的后臺管控節(jié)點(diǎn)。對于同一個(gè)仿真 應(yīng)用來說,部署到各節(jié)點(diǎn)上的仿真樣本之間仿真應(yīng)用可執(zhí)行程序均相同,僅 配置文件不同。因此,為減少網(wǎng)絡(luò)通信量,縮短分發(fā)時(shí)間,在分發(fā)仿真運(yùn)行 文件時(shí),采取傳輸壓縮數(shù)據(jù)包的方式實(shí)現(xiàn)管理器與各后臺管控器之間文件的 傳輸。具體方法如下
4丄3.1管理器判斷任務(wù)隊(duì)列STQ是否為空,若不為空,取任務(wù)隊(duì)列STQ 中第一個(gè)節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,置當(dāng)前節(jié)點(diǎn)為節(jié)點(diǎn)i, 執(zhí)行步驟4.1.3.2;若為空,結(jié)束仿真任務(wù)節(jié)點(diǎn)分發(fā)。
4丄3.2管理器判斷STQi是否為空,若不為空,執(zhí)行步驟4丄3.3;若STQj 為空,判斷當(dāng)前STQi是否存在下一節(jié)點(diǎn)子隊(duì)列,若存在,取當(dāng)前STQi的下 一節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,轉(zhuǎn)步驟4丄3.2;若不存在, 結(jié)束仿真任務(wù)節(jié)點(diǎn)分發(fā)。
4丄3.3根據(jù)STQi中的記錄,生成節(jié)點(diǎn)i上的仿真樣本Namej運(yùn)行rnumj 次、以及記錄文件編號i—Namejjnumj的配置文件,j=l,2,...,N。4丄3.4管理器將仿真應(yīng)用可執(zhí)行程序、配置文件壓縮成仿真應(yīng)用文件
包,并向節(jié)點(diǎn)i上的后臺管控器僅傳輸一次仿真應(yīng)用文件包。
4丄3.5節(jié)點(diǎn)i上后臺管控器將接收到的仿真應(yīng)用文件包解壓至仿真應(yīng)用 文件夾,根據(jù)相應(yīng)的命名規(guī)則,生成不同的樣本文件運(yùn)行文件夾,并將仿真 應(yīng)用文件夾中所有文件拷貝至所有的樣本運(yùn)行文件夾中。轉(zhuǎn)步驟4丄3.2。
4.2當(dāng)管理器針對復(fù)雜仿真應(yīng)用采用組分發(fā)調(diào)度策略進(jìn)行分發(fā)時(shí),劃分 的各個(gè)后臺管控節(jié)點(diǎn)組內(nèi)存在一個(gè)主后臺管控節(jié)點(diǎn),主后臺管控節(jié)點(diǎn)上的后 臺管控器簡稱為主后臺管控器,由它運(yùn)行并行仿真服務(wù)器,組內(nèi)其他后臺管 控器均為普通后臺管控器,運(yùn)行仿真樣本可執(zhí)行程序。組分發(fā)策略包括如下
步驟
4.2.1根據(jù)確定的分組規(guī)模,設(shè)置各個(gè)節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組,為節(jié)點(diǎn)分組, 形成節(jié)點(diǎn)組參數(shù)文件。
4.2.2指定組內(nèi)主管控節(jié)點(diǎn)來負(fù)責(zé)整個(gè)組的并行仿真樣本運(yùn)行,綜合考慮 各節(jié)點(diǎn)組的性能狀況,基于負(fù)載平衡的原則在各后臺管控節(jié)點(diǎn)組分配仿真樣 本。
4.2.3管理器記錄樣本部署信息(包括主管控節(jié)點(diǎn)編號、節(jié)點(diǎn)編號、仿真 樣本名稱、仿真樣本運(yùn)行次數(shù)、記錄文件編號),并以主后臺管控節(jié)點(diǎn)的編 號Prmm為關(guān)鍵字生成任務(wù)主管控隊(duì)列STCQ (Simulation Task Control Queue)。STCQ,TCQi, STCQ2,..., STCQm,..., STCQM}, m=l,2,,."M, M<=n, M為最大分組數(shù),STCQ包含主后臺管控節(jié)點(diǎn)Pmv相應(yīng)的主后臺管控節(jié)點(diǎn) 子隊(duì)列STCQm,子隊(duì)列STCQm包含節(jié)點(diǎn)組Prnim上將要運(yùn)行的所有仿真樣 本的信息,STCQm中每個(gè)元素是一條記錄,每條記錄包括主管控節(jié)點(diǎn)編號、 屬于節(jié)點(diǎn)組的節(jié)點(diǎn)編號、仿真樣本名稱、仿真樣本運(yùn)行次數(shù)、記錄文件編號 五個(gè)字段。
其中主管控節(jié)點(diǎn)編號標(biāo)識仿真樣本運(yùn)行節(jié)點(diǎn)組內(nèi)的主管控節(jié)點(diǎn)Prmm,, Pmv也標(biāo)識該節(jié)點(diǎn)組,節(jié)點(diǎn)編號標(biāo)識共同運(yùn)行仿真樣本的組內(nèi)的一個(gè)節(jié)點(diǎn)i(i=l,2,...,n),仿真樣本名稱標(biāo)識運(yùn)行的樣本名為Namej (^1,2,...,N,假設(shè) 節(jié)點(diǎn)i上要運(yùn)行N個(gè)仿真樣本,樣本名為{ Nameh Name2,..., Namej,...,NameN}),仿真樣本運(yùn)行次數(shù)標(biāo)識仿真樣本Namq子進(jìn)程在組Prmm 的節(jié)點(diǎn)i上需運(yùn)行的次數(shù)rnumj,記錄文件編號表示樣本運(yùn)行結(jié)果數(shù)據(jù)存儲 的文件編號為Praii—Namej_rnumj。
例如STCQm包含N個(gè)仿真樣本(Name^ Name2,..., Namej,...,NameN}, 取節(jié)點(diǎn)組Pmim中最小節(jié)點(diǎn)編號為Prmm,根據(jù)節(jié)點(diǎn)分配策略,節(jié)點(diǎn)組Pmim 若包含L+1個(gè)節(jié)點(diǎn),0SZ4"/MV1,則為節(jié)點(diǎn)組元素為(Pmv,Prnv+l,…,
Prmm+L};則節(jié)點(diǎn)組Prmm的任務(wù)主管控子隊(duì)列STCQm={ {{ Prmm Praim,,Namehmurru, Prmm—NameLmun^},{...},{ Prmm, Prmm+l,Namehmurr^, Prmm—Namei—murnt },{...}, {Prmm,, Pmim+L,Namei,mum!, Prav一Namei一rnum!} }, {{ Pnnm,, Prmm,,Name2,mum2,
Prmm_Name2—mum2 },{,..},{ Prmm, Prmm+1 , Name2,mum2,
Prmm—Name2—rnum2 },{...},{ Prmm —Name2 mum2}},{{.."...,.."...}},{{ Prmm—NameN—rnumN},{...},{ Prmn Prmm—NameN—rnumN },{...},{ Prairr
Prmm+L,Name2,rnum2, Prmm Prmm, Prmm,NameN,rnumN, Prmm+1 , NameN,rnumN, Prmm+L,NameN,rnumN, Prmm
—NameNjnumN}}},l<=K=L 。當(dāng)調(diào)度仿真樣本運(yùn)行時(shí),管理器根據(jù)主后臺管 控節(jié)點(diǎn)子隊(duì)列STCQm在節(jié)點(diǎn)組Prmm上按序調(diào)度仿真樣本Namei, Name2,...,NameN運(yùn)行,并且依次將仿真樣本Namej運(yùn)行 mumj次禾口將仿真運(yùn) 行結(jié)果數(shù)據(jù)放入文件Prmm—Namejjnumj。
4.2.4管理器查詢?nèi)蝿?wù)主管控隊(duì)列STCQ,生成各節(jié)點(diǎn)組的配置文件,并 將配置文件和仿真應(yīng)用可執(zhí)行程序部署到各后臺管控節(jié)點(diǎn)組。對于同一個(gè)仿 真應(yīng)用來說,部署到各節(jié)點(diǎn)組上(非同一組的不同節(jié)點(diǎn)上)的仿真樣本之間 仿真應(yīng)用可執(zhí)行程序均相同,僅配置文件不同。因此,為減少網(wǎng)絡(luò)通信量, 縮短分發(fā)時(shí)間,在部署仿真樣本時(shí),采取傳輸壓縮數(shù)據(jù)包的方式實(shí)現(xiàn)管理器 與各后臺管控器之間文件的傳輸。具體方法如下4.2.4.1管理器判斷任務(wù)主管控隊(duì)列STCQ是否為空,若不為空,取任務(wù) 主管控隊(duì)列STCQ中第一個(gè)節(jié)點(diǎn)組子隊(duì)列作為當(dāng)前節(jié)點(diǎn)組子隊(duì)列STCQm, 置當(dāng)前節(jié)點(diǎn)組為節(jié)點(diǎn)組Prmm,執(zhí)行步驟4.2.4.2;若為空,結(jié)束仿真任務(wù)節(jié) 點(diǎn)組的分發(fā)。
4.2.4.2管理器判斷STCQm是否為空,若不為空,執(zhí)行步驟4.2.4.3;若 STCQm為空,判斷當(dāng)前STCQm是否存在下一節(jié)點(diǎn)組子隊(duì)列,若存在,取當(dāng) 前STCQm的下一節(jié)點(diǎn)組子隊(duì)列作為當(dāng)前節(jié)點(diǎn)組任務(wù)子隊(duì)列STCQm,轉(zhuǎn)步驟 4.2.4.2;若不存在,結(jié)束仿真任務(wù)節(jié)點(diǎn)組的分發(fā)。
4.2.4.3根據(jù)STCQm中的記錄,生成節(jié)點(diǎn)組Pmim上的仿真樣本Namej、 運(yùn)行次數(shù)rnumj、以及記錄文件編號為Prmm—Namej—mimij的配置文件, j=l,2".,,N。
4.2.4.4管理器將仿真應(yīng)用可執(zhí)行程序、配置文件壓縮成仿真應(yīng)用文件 包,并向節(jié)點(diǎn)組Prmm的各后臺管控器僅傳輸一次仿真應(yīng)用文件包。
4.2.4.5節(jié)點(diǎn)組Pmv的各后臺管控器將接收到的仿真應(yīng)用文件包解壓至 仿真應(yīng)用文件夾,根據(jù)相應(yīng)的命名規(guī)則,生成不同的樣本文件運(yùn)行文件夾, 并將仿真應(yīng)用文件夾中所有文件拷貝至所有的樣本運(yùn)行文件夾中。轉(zhuǎn)步驟 4.2.4.2。
第五步,由基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器進(jìn)行仿真樣 本的調(diào)度。并行仿真多樣本任務(wù)調(diào)度的目標(biāo)是將部署到各后臺管控節(jié)點(diǎn)上的 仿真樣本依次調(diào)度運(yùn)行,實(shí)現(xiàn)仿真樣本的自動高效運(yùn)行。
當(dāng)選定單節(jié)點(diǎn)分發(fā)調(diào)度策略時(shí),調(diào)度方法采用單節(jié)點(diǎn)調(diào)度策略。單節(jié)點(diǎn) 調(diào)度策略通訊結(jié)構(gòu)是仿真任務(wù)運(yùn)行時(shí),管理器與后臺管控器建立通訊連接, 調(diào)度后臺管控器來啟動并行仿真服務(wù)器,并由后臺管控器執(zhí)行仿真樣本的多 次運(yùn)行,并行仿真服務(wù)器與仿真樣本程序同時(shí)運(yùn)行在后臺管控節(jié)點(diǎn)上。各后 臺管控器之間不存在直接通訊連接關(guān)系。
當(dāng)選定組分發(fā)調(diào)度策略時(shí),調(diào)度方法采用組調(diào)度策略。組分發(fā)調(diào)度策略通訊結(jié)構(gòu)是仿真任務(wù)運(yùn)行時(shí),管理器與所有后臺管控器建立通訊連接,但 主要通過主管控節(jié)點(diǎn)來負(fù)責(zé)調(diào)度,主管控節(jié)點(diǎn)啟動并行仿真服務(wù)器,并負(fù)責(zé) 執(zhí)行仿真樣本的子進(jìn)程(各子進(jìn)程共同構(gòu)成仿真樣本程序),普通后臺管控 節(jié)點(diǎn)與主管控節(jié)點(diǎn)通過并行仿真服務(wù)器來建立通訊連接,負(fù)責(zé)執(zhí)行仿真樣本 的子進(jìn)程,子進(jìn)程之間通過并行仿真服務(wù)器進(jìn)行通訊。組相互之間不存在直 接通訊連接關(guān)系。
5.1當(dāng)選定單節(jié)點(diǎn)調(diào)度策略時(shí),包括以下步驟
5丄1管理器判斷任務(wù)隊(duì)列STQ是否為空,若不為空,取任務(wù)隊(duì)列STQ 中第一個(gè)節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,置當(dāng)前節(jié)點(diǎn)為節(jié)點(diǎn)i,
執(zhí)行步驟5丄2;若為空,結(jié)束仿真任務(wù)調(diào)度運(yùn)行;
5丄2管理器判斷ST(^是否為空,若STQi為空,刪除STQi,轉(zhuǎn)步驟5丄1; 若不為空,執(zhí)行步驟5丄3;
5丄3判斷STQi上的第一個(gè)仿真樣本的運(yùn)行次數(shù)是否為0,若為O,管理 器刪除STQi中的第一個(gè)仿真樣本的記錄,轉(zhuǎn)步驟5丄2,若不為O,執(zhí)行步 驟5丄4;
5丄4管理器在節(jié)點(diǎn)i上調(diào)度STQi中的第一個(gè)仿真樣本運(yùn)行1次,方法 是管理器向節(jié)點(diǎn)i上的后臺管控器發(fā)送仿真樣本調(diào)度消息,后臺管控器啟 動節(jié)點(diǎn)i上的并行仿真服務(wù)器以及仿真樣本運(yùn)行,同時(shí)向記錄文件編號標(biāo)識 的文件記錄仿真結(jié)果數(shù)據(jù)。轉(zhuǎn)步驟5.1.5;
5丄5判斷任務(wù)隊(duì)列STQ是否存在未調(diào)度仿真樣本運(yùn)行的節(jié)點(diǎn),若存在, 管理器置第一個(gè)未調(diào)度節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)i,轉(zhuǎn)步驟5丄2;若任務(wù)隊(duì)列中不存 在未調(diào)度節(jié)點(diǎn),管理器處于等待后臺管控器信息報(bào)告狀態(tài),轉(zhuǎn)步驟5丄6;
5丄6后臺管控器運(yùn)行仿真樣本開始后,仿真應(yīng)用可執(zhí)行程序?qū)⒎抡娼Y(jié)果 數(shù)據(jù)記錄到記錄文件編號標(biāo)識的文件中,并通過并行仿真服務(wù)器每隔一段時(shí) 間T (T為5-8秒)査詢仿真運(yùn)行狀態(tài),仿真樣本運(yùn)行結(jié)束時(shí),后臺管控器 將仿真樣本結(jié)束狀態(tài)發(fā)送給管理器,管理器接收后臺管理器仿真樣本的本次運(yùn)行完畢消息后,執(zhí)行步驟5.1.7;
5丄7管理器修改當(dāng)前節(jié)點(diǎn)i的任務(wù)子隊(duì)列STQi中的當(dāng)前運(yùn)行樣本的運(yùn)
行次數(shù),運(yùn)行次數(shù)減少l次,轉(zhuǎn)步驟5丄3。
5.2對于復(fù)雜仿真應(yīng)用采用組調(diào)度策略時(shí),包括以下步驟
5.2.1管理器判斷任務(wù)主管控隊(duì)列STCQ是否為空,若不為空,取任務(wù)主
管控隊(duì)列STCQ中第一個(gè)節(jié)點(diǎn)組隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)主管控子隊(duì)列
STCQm,置當(dāng)前節(jié)點(diǎn)組為節(jié)點(diǎn)組Prmm,執(zhí)行步驟5.2.2;若為空,結(jié)束仿真
任務(wù)調(diào)度運(yùn)行;
5.2.2管理器判斷當(dāng)前節(jié)點(diǎn)組Prmm的子隊(duì)列STCQm是否為空,若STCQm 為空,則刪除STCQm,轉(zhuǎn)步驟5.2.1;若不為空,執(zhí)行步驟5.2.3;
5.2.3判斷STCQm上的第一個(gè)仿真樣本的運(yùn)行次數(shù),若為0,管理器刪 除STCQm中的第一個(gè)仿真樣本的記錄,轉(zhuǎn)步驟5.2.2,若不為0,執(zhí)行步驟 5.2.4;
5.2.4管理器在節(jié)點(diǎn)組Praim上調(diào)度STCQm中的第一個(gè)仿真樣本運(yùn)行1 次,方法是管理器向組內(nèi)各后臺管控器發(fā)送仿真樣本調(diào)度消息,主后臺管 控器啟動節(jié)點(diǎn)上并行仿真服務(wù)器及仿真樣本子進(jìn)程運(yùn)行,各普通后臺管控器 啟動節(jié)點(diǎn)上仿真樣本子進(jìn)程運(yùn)行,并同時(shí)向記錄文件編號標(biāo)識的文件記錄仿 真結(jié)果數(shù)據(jù)。轉(zhuǎn)步驟5.2.5;
5.2.5判斷任務(wù)主管控隊(duì)列STCQ是否存在未調(diào)度仿真樣本運(yùn)行的節(jié)點(diǎn) 組,若存在,管理器置第一個(gè)未調(diào)度節(jié)點(diǎn)組為當(dāng)前節(jié)點(diǎn)組Prnv,轉(zhuǎn)步驟5.2.2; 若任務(wù)隊(duì)列中不存在未調(diào)度節(jié)點(diǎn)組,管理器處于等待主后臺管控器信息報(bào)告 狀態(tài),轉(zhuǎn)步驟5.2.6;
5.2.6當(dāng)所有后臺管控器運(yùn)行仿真樣本開始后,主后臺管控節(jié)點(diǎn)上的仿真 應(yīng)用可執(zhí)行程序?qū)Ψ抡娼Y(jié)果數(shù)據(jù)進(jìn)行記錄,并通過并行仿真服務(wù)器每隔一段 時(shí)間T (T為5-8秒)查詢仿真運(yùn)行狀態(tài),仿真樣本運(yùn)行結(jié)束時(shí),主后臺管 控器將仿真樣本結(jié)束狀態(tài)發(fā)送給管理器。管理器接收主后臺管理器仿真樣本的本次運(yùn)行完畢消息后,執(zhí)行步驟5.2.7;
5.2.7管理器修改當(dāng)前節(jié)點(diǎn)組Pmim的任務(wù)主管控子隊(duì)列STCQm中的當(dāng)前 運(yùn)行樣本的運(yùn)行次數(shù),運(yùn)行次數(shù)減少l次,轉(zhuǎn)步驟5.2.3。
第六步,由基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器進(jìn)行仿真結(jié) 果數(shù)據(jù)的收集。仿真樣本運(yùn)行結(jié)束后,數(shù)據(jù)文件分布在各個(gè)后臺管控節(jié)點(diǎn)上 (其中單節(jié)點(diǎn)策略分布在各后臺管控器上,組策略分布在主管控節(jié)點(diǎn)上), 為便于進(jìn)行仿真結(jié)果的分析評估,采取自動收集各后臺管控節(jié)點(diǎn)上數(shù)據(jù)信息 的方式進(jìn)行數(shù)據(jù)信息的集中管理。由于數(shù)據(jù)文件數(shù)目眾多,后臺管控器向管 理器傳輸時(shí),若采取每次只傳輸一個(gè)文件的方式,會導(dǎo)致沉重的網(wǎng)絡(luò)負(fù)擔(dān), 而且每次傳輸都要進(jìn)行握手,如此進(jìn)行數(shù)據(jù)文件管理會耗費(fèi)很長的時(shí)間。為 減小網(wǎng)絡(luò)通信量,縮短文件集中管理所需時(shí)間,后臺管控器(組策略下為主 后臺管控器)采用數(shù)據(jù)文件打包壓縮后傳輸?shù)姆绞絹頊p輕網(wǎng)絡(luò)負(fù)擔(dān)。仿真結(jié)
果數(shù)據(jù)自動收集方法是
6.1所有樣本運(yùn)行完畢后,管理器發(fā)送樣本運(yùn)行結(jié)束消息,后臺管控節(jié)
點(diǎn)(組分發(fā)調(diào)度策略下為主管控節(jié)點(diǎn))接收到該消息后,關(guān)閉并行仿真服務(wù)器,
查詢各樣本文件包中的數(shù)據(jù)文件即編號為i_Namej—rmmij或 PrmiNamej—rnumj的文件,將査找到的數(shù)據(jù)文件加入到數(shù)據(jù)文件包中壓縮存 儲。
6.2直至節(jié)點(diǎn)上所有的數(shù)據(jù)文件都加入到數(shù)據(jù)文件包中,后臺管控節(jié)點(diǎn) (組分發(fā)調(diào)度策略下為主管控節(jié)點(diǎn))向管理器發(fā)送數(shù)據(jù)準(zhǔn)備完畢消息,管理器 接收到該消息后,解析出其中的壓縮包信息,并初始化接收文件準(zhǔn)備工作, 然后向后臺管控節(jié)點(diǎn)(組分發(fā)調(diào)度策略下為主管控節(jié)點(diǎn))發(fā)送請求文件傳輸消 息,后臺管控節(jié)點(diǎn)接收請求文件傳輸消息后開始傳輸數(shù)據(jù)。
6.3管理器啟動多線程接收后臺管控節(jié)點(diǎn)(組分發(fā)調(diào)度策略下為主管控節(jié) 點(diǎn))的相應(yīng)數(shù)據(jù)。文件傳輸完畢后,為提高安全性,各計(jì)算節(jié)點(diǎn)清除樣本文 件包以及數(shù)據(jù)文件。管理器收集到各后臺管控節(jié)點(diǎn)(組分發(fā)調(diào)度策略下為主管控節(jié)點(diǎn))上的所有數(shù)據(jù)文件后,仿真結(jié)果數(shù)據(jù)收集完成,仿真任務(wù)結(jié)束。 與現(xiàn)有技術(shù)相比,采用本發(fā)明可達(dá)到以下技術(shù)效果
1. 本發(fā)明基于單節(jié)點(diǎn)分發(fā)策略和組分發(fā)策略實(shí)現(xiàn)了并行仿真多樣本 的分發(fā),可將仿真樣本自動分發(fā)到多臺機(jī)器上并行運(yùn)行,使得在仿真運(yùn)行時(shí) 不需要關(guān)注仿真樣本的分發(fā)過程,提高了并行仿真多樣本的自動分發(fā)程度, 減少了人為操作為過程,為并行仿真應(yīng)用系統(tǒng)的連續(xù)高效運(yùn)行打下基礎(chǔ)。
2. 本發(fā)明基于單節(jié)點(diǎn)調(diào)度策略和組調(diào)度策略實(shí)現(xiàn)了并行仿真多樣本 的調(diào)度,針對復(fù)雜仿真應(yīng)用,可將仿真多樣本、仿真對象分發(fā)到多個(gè)后臺管 控節(jié)點(diǎn)上并行執(zhí)行,在綜合考慮各節(jié)點(diǎn)的性能狀況,基于負(fù)載平衡的原則下 實(shí)現(xiàn)了并行仿真多樣本的高效調(diào)度執(zhí)行,即提高了單次仿真運(yùn)行效率,又滿 足復(fù)雜系統(tǒng)多樣本仿真的需要。
3. 本發(fā)明基于壓縮方式實(shí)現(xiàn)了仿真結(jié)果數(shù)據(jù)的集中管理,能夠自動 收集各后臺管控節(jié)點(diǎn)上仿真結(jié)果數(shù)據(jù),進(jìn)行仿真結(jié)果數(shù)據(jù)的集中管理,達(dá)到 了減少用戶手工操作,降低仿真結(jié)果數(shù)據(jù)收集困難的問題。
綜上所述,本發(fā)明采用"并行仿真多樣本分發(fā)"、"并行仿真多樣本調(diào)度" 與"仿真結(jié)果數(shù)據(jù)收集"三個(gè)環(huán)節(jié)綜合優(yōu)化的策略,實(shí)現(xiàn)了仿真樣本任務(wù)的自 動分發(fā)和自動并行執(zhí)行。本發(fā)明有效地解決了傳統(tǒng)的并行仿真多樣本運(yùn)行需 要用戶手工操作完成、整個(gè)過程運(yùn)行效率低的問題,達(dá)到了既提高仿真結(jié)果 數(shù)據(jù)的收集效率,又便于事后數(shù)據(jù)分析評估的效果。
圖l是本發(fā)明的總體流程圖2是本發(fā)明的基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器的邏輯 結(jié)構(gòu)圖3是本發(fā)明并行仿真的任務(wù)隊(duì)列結(jié)構(gòu)圖; 圖4是本發(fā)明并行仿真的任務(wù)分發(fā)流程圖; 圖5是本發(fā)明并行仿真的任務(wù)調(diào)度流程圖;圖6是本發(fā)明仿真結(jié)果數(shù)據(jù)的收集流程圖。
具體實(shí)施例方式
圖1是本發(fā)明的總體流程圖主要包括以下六個(gè)步驟,其中第1 2步 是建立并行仿真局域網(wǎng)環(huán)境和并行仿真任務(wù)分發(fā)與調(diào)度器,第3步是選擇仿
真任務(wù)分發(fā)與調(diào)度策略,第4 5步是根據(jù)策略進(jìn)行并行仿真多樣本的任務(wù) 分發(fā)與調(diào)度,第6步是將并行仿真結(jié)果數(shù)據(jù)進(jìn)行自動收集。
1. 構(gòu)建多臺計(jì)算機(jī)組成的并行仿真局域網(wǎng)環(huán)境。每臺計(jì)算機(jī)都是局域 網(wǎng)的節(jié)點(diǎn),各節(jié)點(diǎn)有著各自獨(dú)立的存儲系統(tǒng),節(jié)點(diǎn)之間的通信采用消息傳遞 的方式。
2. 建立基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器。并行仿真任 務(wù)分發(fā)與調(diào)度器由管理器、后臺管控器組成,管理器負(fù)責(zé)實(shí)現(xiàn)并行仿真服務(wù)
器與仿真樣本的分發(fā),并通過調(diào)度后臺管控器來實(shí)現(xiàn)仿真樣本的運(yùn)行;后臺
管控器負(fù)責(zé)實(shí)現(xiàn)仿真樣本的接收與運(yùn)行,以及部署并行仿真服務(wù)器和實(shí)現(xiàn)仿 真樣本的運(yùn)行控制。
3. 基于仿真任務(wù)復(fù)雜程度選擇分發(fā)調(diào)度策略。仿真任務(wù)復(fù)雜程度由仿
真樣本運(yùn)行過程中的實(shí)體數(shù)以及實(shí)體之間交互的數(shù)量決定。分發(fā)調(diào)度策略包 括單節(jié)點(diǎn)分發(fā)調(diào)度策略或組分發(fā)調(diào)度策略。
4. 由后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器采用單節(jié)點(diǎn)分發(fā)策略 或組分發(fā)策略進(jìn)行任務(wù)分發(fā)。
5. 由后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器采用單節(jié)點(diǎn)調(diào)度策略 或組調(diào)度策略進(jìn)行仿真樣本的調(diào)度運(yùn)行。
6. 由后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器采取自動收集各后臺 管控節(jié)點(diǎn)上數(shù)據(jù)信息的方式進(jìn)行仿真結(jié)果數(shù)據(jù)的自動收集。
圖2是本發(fā)明的基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器的邏輯 結(jié)構(gòu)圖。圖2.1是采用單節(jié)點(diǎn)分發(fā)調(diào)度策略時(shí)的后臺管控架構(gòu)的并行仿真任 務(wù)分發(fā)與調(diào)度器的邏輯結(jié)構(gòu)圖整個(gè)系統(tǒng)由一個(gè)管理器和多個(gè)后臺管控器組成,管理器向各后臺管控器發(fā)送管控命令,將多樣本仿真任務(wù)分發(fā)到各后臺 管控節(jié)點(diǎn)的后臺管控器,對各后臺管控節(jié)點(diǎn)進(jìn)行CPU利用率、內(nèi)存利用率 的監(jiān)控并調(diào)度仿真任務(wù),且對數(shù)據(jù)信息集中管理,后臺管控器負(fù)責(zé)仿真樣本
的運(yùn)行控制,將仿真數(shù)據(jù)結(jié)果傳送給管理器;為保證消息傳輸?shù)目煽啃裕?理器與各后臺管控器采用TCP/IP協(xié)議進(jìn)行通信,管理器與后臺管控器不能 部署在同一個(gè)主機(jī)系統(tǒng)中。
圖2.2是采用組分發(fā)調(diào)度策略時(shí)后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào) 度器的邏輯結(jié)構(gòu)圖整個(gè)系統(tǒng)由一個(gè)管理器、多個(gè)主后臺管控器和各個(gè)組內(nèi)
普通后臺管控器組成,管理器向各主后臺管控器發(fā)送管控命令,將多樣本仿
真任務(wù)分發(fā)到各組后臺管控器,對各組后臺管控器節(jié)點(diǎn)進(jìn)行CPU利用率、 內(nèi)存利用率的監(jiān)控并調(diào)度仿真任務(wù),且對數(shù)據(jù)信息集中管理,主后臺管控器 負(fù)責(zé)運(yùn)行并行仿真服務(wù)器和仿真樣本子進(jìn)程,普通后臺管控器負(fù)責(zé)仿真樣本 子進(jìn)程的運(yùn)行控制;為保證消息傳輸?shù)目煽啃?,管理器與各主后臺管控器采 用TCP/IP協(xié)議進(jìn)行通信,管理器與任何后臺管控器不能部署在同一個(gè)主機(jī) 系統(tǒng)中。
圖3是本發(fā)明并行仿真的任務(wù)隊(duì)列結(jié)構(gòu)圖。圖3.1是單節(jié)點(diǎn)策略STQ 隊(duì)列結(jié)構(gòu)圖STQ以后臺管控節(jié)點(diǎn)編號為關(guān)鍵字,包含各節(jié)點(diǎn)相應(yīng)的后臺 管控節(jié)點(diǎn)子隊(duì)列,若編號為0的節(jié)點(diǎn)上建立了管理器,則STQ={STQh STQ2,...,STQi,...,STQn}, i=l,2,,..,n,子隊(duì)列STQ;中每個(gè)元素是一條記錄, 每條記錄包括節(jié)點(diǎn)編號i、仿真樣本名稱Namej、仿真樣本運(yùn)行次數(shù)rnumj、 記錄文件編號i—Namej—mumj四個(gè)字段;j^,2,…,N,節(jié)點(diǎn)i上共運(yùn)行N個(gè)仿 真樣本,樣本名為(Namei, Name2,..., Namej,...,NameN};圖中STQj包含3個(gè) 仿真樣本{ Name!, Name2, Name3},則節(jié)點(diǎn)i的任務(wù)子隊(duì)列 STQ尸Ui,Namei,2,i—Name、一2),( i,Name2,3,i—Name2—3},{ i,Name3,2, i—Name2_3H 。
圖3.2是本發(fā)明并行仿真的組策略STCQ隊(duì)列結(jié)構(gòu)圖STCQ以主后臺管控節(jié)點(diǎn)編號Pmim為關(guān)鍵字,STCQ^STCQi, STCQ2,..., STCQm,..., STCQM},包含主后臺管控節(jié)點(diǎn)Pmv相應(yīng)的主后臺管控節(jié)點(diǎn)子隊(duì)列STCQm, 子隊(duì)列STCQm包含節(jié)點(diǎn)組Praim上將要運(yùn)行的所有仿真樣本的信息,STCQm 中每個(gè)元素是一條記錄,每條記錄包括主管控節(jié)點(diǎn)編號Prmm, Prav也標(biāo)識 該節(jié)點(diǎn)組、節(jié)點(diǎn)編號i, i=l,2,...,n、仿真樣本名稱Namej、仿真樣本運(yùn)行次 數(shù)mum"記錄文件編號Prmm—Namej—rmrnij五個(gè)字段;j^,2,…,N,若節(jié)點(diǎn)i 上要運(yùn)行N個(gè)仿真樣本,樣本名為{ Name" Name2,..., Namej,...,NameN};圖中 STCQm包含2個(gè)仿真樣本(Name3, Name4 },則節(jié)點(diǎn)組Prmm的任務(wù)主管控子 隊(duì)列STCQm={{{ Prmm, Prmm,Name3,2!, Prmm—Name3—2},{ Prmm, Prmm+1, Name3,2, Prmm—Name3—2},{ Prmm, Prmm+2,Name3,2, Prmm—Name3—2},{ Prmm, Prmm+3,Name3,2, PrmmJName3—2}},{{ Pnnm, Prmm,Name4,2, Prmm—Name4—2},{ Prmm, Prmm+1 , Name4,2, Prmm—Name4—2},{ Prmm, Prmm+2,Name4,2, Prmm—Name4—2},{ Prmm, Prmm+3,Name4,2, Prmm—Name4一2)}}。
圖4是本發(fā)明第4步并行仿真的任務(wù)分發(fā)流程圖
1. 管理器根據(jù)策略選取規(guī)則選定單節(jié)點(diǎn)策略或組策略來向后臺管控器 進(jìn)行仿真樣本分發(fā),并根據(jù)分發(fā)策略設(shè)置相應(yīng)的參數(shù)文件。
2. 若為單節(jié)點(diǎn)分發(fā)策略,執(zhí)行步驟為
2.1根據(jù)各節(jié)點(diǎn)當(dāng)前的性能狀況(包括CPU主頻、CPU利用率、內(nèi)存 容量、內(nèi)存利用率等參數(shù)),基于負(fù)載平衡的原則向各后臺管控節(jié)點(diǎn)分配仿 真樣本。
2.2管理器記錄樣本部署信息(包括節(jié)點(diǎn)編號、仿真樣本名稱、仿真樣 本運(yùn)行次數(shù)、記錄文件編號),并以后臺管控節(jié)點(diǎn)的編號為關(guān)鍵字生成仿真 任務(wù)隊(duì)列STQ (Simulation Task Queue) 。 STQ以后臺管控節(jié)點(diǎn)編號為關(guān)鍵 字,包含各節(jié)點(diǎn)相應(yīng)的后臺管控節(jié)點(diǎn)子隊(duì)列STQ"子隊(duì)列STQi中每個(gè)元素 是一條記錄,每條記錄包括節(jié)點(diǎn)編號、仿真樣本名稱、仿真樣本運(yùn)行次數(shù)、記錄文件編號四個(gè)字段。管理器根據(jù)節(jié)點(diǎn)子隊(duì)列STQ,在節(jié)點(diǎn)i上按序調(diào)度仿
真樣本Namei, Name2,...,NameN運(yùn)行,并且依次將仿真樣本Namej運(yùn)行mumj 次和將仿真運(yùn)行結(jié)果數(shù)據(jù)放入文件i一Namejjnumj。
2.3管理器査詢仿真任務(wù)隊(duì)列STQ,生成各節(jié)點(diǎn)的配置文件,并將配置 文件和仿真應(yīng)用可執(zhí)行程序分發(fā)到對應(yīng)的后臺管控節(jié)點(diǎn)。采取傳輸壓縮數(shù)據(jù) 包的方式實(shí)現(xiàn)管理器與各后臺管控器之間文件的傳輸。具體方法如下-
2.3.1管理器判斷任務(wù)隊(duì)列STQ是否為空,若不為空,取任務(wù)隊(duì)列STQ 中第一個(gè)節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,置當(dāng)前節(jié)點(diǎn)為節(jié)點(diǎn)i, 執(zhí)行步驟2.3.2;若為空,結(jié)束仿真任務(wù)節(jié)點(diǎn)分發(fā)。
2.3.2管理器判斷STQi是否為空,若不為空,執(zhí)行步驟2.3.3;若STQj 為空,判斷當(dāng)前STQi是否存在下一節(jié)點(diǎn)子隊(duì)列,若存在,取當(dāng)前STQi的下 一節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,轉(zhuǎn)步驟2.3.2;若不存在,結(jié) 束仿真任務(wù)節(jié)點(diǎn)分發(fā)。
2.3.3根據(jù)STQi中的記錄,生成節(jié)點(diǎn)i上的仿真樣本Name」運(yùn)行rnumj 次、以及記錄文件i一Namej—mumj的參數(shù)配置文件,j=l,2,...,N。
2.3.4管理器將仿真應(yīng)用可執(zhí)行程序、配置文件壓縮成仿真應(yīng)用文件包, 并向節(jié)點(diǎn)i上的后臺管控器僅傳輸一次仿真應(yīng)用文件包。
2.3.5節(jié)點(diǎn)i上后臺管控器將接收到的仿真應(yīng)用文件包解壓至仿真應(yīng)用文 件夾,根據(jù)相應(yīng)的命名規(guī)則,生成不同的樣本文件運(yùn)行文件夾,并將仿真應(yīng) 用文件夾中所有文件拷貝至所有的樣本運(yùn)行文件夾中。轉(zhuǎn)步驟2.3.2。
3.若為組分發(fā)策略,執(zhí)行步驟為
3.1根據(jù)確定的分組規(guī)模,設(shè)置各個(gè)節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組,形成節(jié)點(diǎn)組 參數(shù)文件。
3.2指定組內(nèi)主管控節(jié)點(diǎn)來負(fù)責(zé)整個(gè)組的并行仿真樣本運(yùn)行。綜合考慮 各節(jié)點(diǎn)組的性能狀況,基于負(fù)載平衡的原則在各后臺管控節(jié)點(diǎn)組上分配仿真 樣本。3.3管理器記錄樣本部署信息(包括主管控節(jié)點(diǎn)編號、仿真樣本名稱、 仿真樣本運(yùn)行次數(shù)、記錄文件編號),并以組后臺管控節(jié)點(diǎn)的編號為關(guān)鍵字
生成任務(wù)主管控隊(duì)列STCQ (Simulation Task Control Queue) 。 STCQ以主 后臺管控節(jié)點(diǎn)編號Prmm為關(guān)鍵字,包含主后臺管控節(jié)點(diǎn)Prmm相應(yīng)的主后臺 管控節(jié)點(diǎn)子隊(duì)列STCQm,當(dāng)調(diào)度仿真樣本運(yùn)行時(shí),管理器根據(jù)主后臺管控 節(jié)點(diǎn)子隊(duì)列STCQm在節(jié)點(diǎn)組Prmm上按序調(diào)度仿真樣本Name,, Name2,...,NameN運(yùn)行,并且依次將仿真樣本Namej運(yùn)行rnumj次和將仿真運(yùn) 行結(jié)果數(shù)據(jù)放入文件Pmin^Namej—rnumj。
3.4管理器將配置文件和仿真應(yīng)用可執(zhí)行程序部署到各后臺管控節(jié)點(diǎn) 組。采取傳輸壓縮數(shù)據(jù)包的方式實(shí)現(xiàn)管理器與各后臺管控器之間文件的傳 輸。具體方法如下
3.4.1管理器判斷任務(wù)主管控隊(duì)列STCQ是否為空,若不為空,取任務(wù)主 管控隊(duì)列STCQ中第一個(gè)節(jié)點(diǎn)組子隊(duì)列作為當(dāng)前節(jié)點(diǎn)組子隊(duì)列STCQm,置 當(dāng)前節(jié)點(diǎn)組為節(jié)點(diǎn)組Prmm,執(zhí)行步驟3.4.2;若為空,結(jié)束仿真任務(wù)節(jié)點(diǎn)組 的分發(fā)。
3.4.2管理器判斷STCQm是否為空,若不為空,執(zhí)行步驟3.4.3;若STCQm 為空,判斷當(dāng)前STCQm是否存在下一節(jié)點(diǎn)組子隊(duì)列,若存在,取當(dāng)前STCQm 的下一節(jié)點(diǎn)組子隊(duì)列作為當(dāng)前節(jié)點(diǎn)組任務(wù)子隊(duì)列STCQm,轉(zhuǎn)步驟3.4.2;若 不存在,結(jié)束仿真任務(wù)節(jié)點(diǎn)組的分發(fā)。
3.4.3根據(jù)STCQm中的記錄,生成節(jié)點(diǎn)組Pmv上的仿真樣本Namej運(yùn)行 rnumj次、以及記錄文件Prmm一Namej一mumj的參數(shù)配置文件,j=l,2,...,N。
3.4.4管理器將仿真應(yīng)用可執(zhí)行程序、配置文件壓縮成仿真應(yīng)用文件包, 并向節(jié)點(diǎn)組Pmv的各后臺管控器僅傳輸一次仿真應(yīng)用文件包。
3.4.5節(jié)點(diǎn)組Pmv的各后臺管控器將接收到的仿真應(yīng)用文件包解壓至仿 真應(yīng)用文件夾,根據(jù)相應(yīng)的命名規(guī)則,生成不同的樣本文件運(yùn)行文件夾,并 將仿真應(yīng)用文件夾中所有文件拷貝至所有的樣本運(yùn)行文件夾中。轉(zhuǎn)步驟3.4.2。
圖5是本發(fā)明并行仿真任務(wù)調(diào)度流程圖
1. 根據(jù)第三步選取單節(jié)點(diǎn)調(diào)度策略或組調(diào)度策略。
2. 若為單節(jié)點(diǎn)調(diào)度策略,執(zhí)行步驟為
2.1管理器判斷任務(wù)隊(duì)列STQ是否為空,若不為空,取任務(wù)隊(duì)列STQ中 第一個(gè)節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)隊(duì)列子隊(duì)列STQi,置當(dāng)前節(jié)點(diǎn)為節(jié)點(diǎn)i, 執(zhí)行步驟2.2;若為空,結(jié)束仿真任務(wù)調(diào)度運(yùn)行。
2.2管理器判斷STQi是否為空,若STQi為空,則刪除STQi,轉(zhuǎn)步驟2.1; 若不為空,執(zhí)行步驟2.3。
2.3判斷STQi上的第一個(gè)仿真樣本的運(yùn)行次數(shù)是否為0,若為0,管理 器刪除STQi中的第一個(gè)仿真樣本的調(diào)度信息,轉(zhuǎn)步驟2.2,若不為0,執(zhí)行 步驟2.4。
2.4管理器在節(jié)點(diǎn)i上調(diào)度任務(wù)子隊(duì)列STQi中的第一個(gè)仿真樣本運(yùn)行1 次。管理器節(jié)點(diǎn)i上的后臺管控器發(fā)送仿真樣本調(diào)度消息,后臺管控器啟動 節(jié)點(diǎn)上的并行仿真服務(wù)器以及仿真樣本運(yùn)行。轉(zhuǎn)步驟2.5。
2.5判斷任務(wù)隊(duì)列STQ是否存在未調(diào)度仿真樣本運(yùn)行的節(jié)點(diǎn),若存在, 管理器置第一個(gè)未調(diào)度節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)i,轉(zhuǎn)步驟2.2;若任務(wù)隊(duì)列中不存在 未調(diào)度節(jié)點(diǎn),管理器處于等待后臺管控器信息報(bào)告狀態(tài),轉(zhuǎn)步驟2.6。
2.6后臺管控器運(yùn)行仿真樣本開始后,仿真應(yīng)用可執(zhí)行程序?qū)Ψ抡娼Y(jié)果 數(shù)據(jù)進(jìn)行記錄,并通過并行仿真服務(wù)器每隔一段時(shí)間T (T為5-8秒)査詢 仿真運(yùn)行狀態(tài),仿真樣本運(yùn)行結(jié)束時(shí),后臺管控器將仿真樣本結(jié)束狀態(tài)發(fā)送 給管理器,管理器接收后臺管理器仿真樣本的本次運(yùn)行完畢消息后,執(zhí)行步 驟2.7。
2.7管理器修改當(dāng)前節(jié)點(diǎn)i的任務(wù)子隊(duì)列STQi中的當(dāng)前運(yùn)行樣本的運(yùn)行 次數(shù),運(yùn)行次數(shù)減少l次,轉(zhuǎn)步驟2.3。
3. 若為組調(diào)度策略,執(zhí)行步驟為3.1管理器判斷任務(wù)主管控隊(duì)列STCQ是否為空,若不為空,取任務(wù)主 管控隊(duì)列STCQ中第一個(gè)節(jié)點(diǎn)組隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)主管控子隊(duì)列 STCQm,置當(dāng)前節(jié)點(diǎn)組為節(jié)點(diǎn)組Prav,執(zhí)行步驟3.2;若為空,結(jié)束仿真任 務(wù)調(diào)度運(yùn)行;
3.2管理器判斷當(dāng)前節(jié)點(diǎn)組Prmm的子隊(duì)列STCQm是否為空,若當(dāng)前節(jié) 點(diǎn)組Prmm的子隊(duì)列為空,則刪除當(dāng)前節(jié)點(diǎn)任務(wù)主管控子隊(duì)列STCQm,轉(zhuǎn)步
驟3.1;若不為空,執(zhí)行步驟3.3;
3.3判斷STCQm上的第一個(gè)仿真樣本的運(yùn)行次數(shù)若為0,管理器刪除 STCQm中的第一個(gè)仿真樣本的調(diào)度信息,轉(zhuǎn)步驟3.2,若不為0,執(zhí)行步驟 3.4。
3.4管理器在節(jié)點(diǎn)組Pmim上調(diào)度任務(wù)主管控子隊(duì)列STCQm中的第一個(gè) 仿真樣本運(yùn)行1次。管理器向組內(nèi)各后臺管控器發(fā)送仿真樣本調(diào)度消息,主 后臺管控器啟動節(jié)點(diǎn)上并行仿真服務(wù)器及仿真樣本子進(jìn)程運(yùn)行,各普通后臺 管控器啟動節(jié)點(diǎn)上仿真樣本子進(jìn)程運(yùn)行,執(zhí)行步驟3.5;
3.5判斷任務(wù)主管控隊(duì)列STCQ是否存在未調(diào)度仿真樣本運(yùn)行的節(jié)點(diǎn)組, 若存在,管理器置第一個(gè)未調(diào)度節(jié)點(diǎn)組為當(dāng)前節(jié)點(diǎn)組Pmv,轉(zhuǎn)步驟3.2;若
任務(wù)隊(duì)列中不存在未調(diào)度節(jié)點(diǎn)組,管理器處于等待主后臺管控器信息報(bào)告狀 態(tài),轉(zhuǎn)步驟3.6。
3.6當(dāng)所有后臺管控器運(yùn)行仿真樣本開始后,主后臺管控節(jié)點(diǎn)上的仿真 應(yīng)用可執(zhí)行程序?qū)Ψ抡娼Y(jié)果數(shù)據(jù)進(jìn)行記錄,并通過并行仿真服務(wù)器每隔一段 時(shí)間T (T為5-8秒)查詢仿真運(yùn)行狀態(tài),仿真樣本運(yùn)行結(jié)束時(shí),主后臺管 控器將仿真樣本結(jié)束狀態(tài)發(fā)送給管理器。管理器接收主后臺管理器仿真樣本 的本次運(yùn)行完畢消息后,執(zhí)行步驟3.7。
3.7管理器修改當(dāng)前節(jié)點(diǎn)組Pmv的任務(wù)主管控子隊(duì)列STCQm中的當(dāng)前 運(yùn)行樣本的運(yùn)行次數(shù),運(yùn)行次數(shù)減少l次,轉(zhuǎn)步驟3.3。
圖6是本發(fā)明仿真結(jié)果數(shù)據(jù)的收集流程圖1. 所有樣本運(yùn)行完畢后,管理器發(fā)送樣本運(yùn)行結(jié)束消息,后臺管控節(jié) 點(diǎn)(組分發(fā)調(diào)度策略下為主管控節(jié)點(diǎn))接收到該消息后,關(guān)閉并行仿真服務(wù)器,
査詢各樣本文件包中的數(shù)據(jù)文件i—Namej—rnumj (或Prmm—Namejmumj),
將査找到的數(shù)據(jù)文件加入到數(shù)據(jù)文件包中壓縮存儲。
2. 直至節(jié)點(diǎn)上所有的數(shù)據(jù)文件都加入到數(shù)據(jù)文件包中,后臺管控節(jié)點(diǎn)(組 分發(fā)調(diào)度策略下為主管控節(jié)點(diǎn))向管理器發(fā)送數(shù)據(jù)準(zhǔn)備完畢消息,管理器接 收到該消息后,解析出消息中的壓縮包信息,并初始化接收文件準(zhǔn)備工作, 然后向后臺管控節(jié)點(diǎn)(組分發(fā)調(diào)度策略下為主管控節(jié)點(diǎn))發(fā)送請求文件傳輸消 息,后臺管控節(jié)點(diǎn)接收請求文件傳輸消息后開始傳輸數(shù)據(jù)。
3. 管理器啟動多線程接收后臺管控節(jié)點(diǎn)(組分發(fā)調(diào)度策略下為主管控節(jié) 點(diǎn))的相應(yīng)數(shù)據(jù)。文件傳輸完畢后,為提高安全性,各計(jì)算節(jié)點(diǎn)清除樣本文 件包以及數(shù)據(jù)文件。管理器收集到各后臺管控節(jié)點(diǎn)(組分發(fā)調(diào)度策略下為主 管控節(jié)點(diǎn))上的所有數(shù)據(jù)文件后,仿真結(jié)果數(shù)據(jù)收集完成,仿真任務(wù)結(jié)束。
權(quán)利要求
1. 一種基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度方法,其特征在于包括以下步驟第一步,構(gòu)建由多臺計(jì)算機(jī)組成的并行仿真局域網(wǎng)環(huán)境,每臺計(jì)算機(jī)都是局域網(wǎng)的節(jié)點(diǎn),各節(jié)點(diǎn)有著各自獨(dú)立的存儲系統(tǒng),節(jié)點(diǎn)之間的通信采用消息傳遞的方式,節(jié)點(diǎn)依次編號為0,1,2,...,n,n+1為局域網(wǎng)中節(jié)點(diǎn)的總數(shù);第二步,建立基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器,并行仿真任務(wù)分發(fā)與調(diào)度器由管理器、后臺管控器組成,管理器是一個(gè)仿真樣本分發(fā)和調(diào)度軟件,負(fù)責(zé)實(shí)現(xiàn)仿真樣本的分發(fā),并通過調(diào)度后臺管控器來實(shí)現(xiàn)仿真樣本的運(yùn)行;后臺管控器是一個(gè)響應(yīng)仿真樣本分發(fā)和調(diào)度的軟件,負(fù)責(zé)對仿真樣本進(jìn)行接收與調(diào)度,具體步驟包括2. 1 建立管理器指定在任一編號的節(jié)點(diǎn)機(jī)器上建立并行仿真任務(wù)分發(fā)管理器,并行仿真任務(wù)分發(fā)管理器所在的節(jié)點(diǎn)簡稱為管理器節(jié)點(diǎn),在管理器節(jié)點(diǎn)上安裝仿真應(yīng)用可執(zhí)行程序,并行仿真任務(wù)分發(fā)管理器每隔0.8~2秒向局域網(wǎng)內(nèi)的各個(gè)節(jié)點(diǎn)發(fā)送用戶數(shù)據(jù)報(bào)協(xié)議UDP消息,以期與局域網(wǎng)內(nèi)的后臺管控器建立連接;2. 2 建立后臺管控器指定在除管理器編號的節(jié)點(diǎn)上依次建立并行仿真任務(wù)分發(fā)后臺管控器,各后臺管控器均與管理器建立可靠連接,并行仿真任務(wù)分發(fā)后臺管控器所在的節(jié)點(diǎn)簡稱為后臺管控器節(jié)點(diǎn),在后臺管控器節(jié)點(diǎn)上建立支持并行仿真應(yīng)用運(yùn)行和實(shí)體子模型交互的運(yùn)行支撐環(huán)境—并行仿真服務(wù)器;2. 3 管理器和后臺管控器之間建立連接消息通訊機(jī)制,步驟如下2. 3.1 管理器以各后臺管控器的節(jié)點(diǎn)編號為標(biāo)識,向各后臺管控器發(fā)送UDP消息;2. 3.2 各后臺管控器從管理器接收到UDP消息后,即建立與管理器的可靠連接;當(dāng)所有后臺管控器完成建立與管理器的連接后,管理器即停止發(fā)送UDP消息;2. 3.3 管理器每隔2~4秒向后臺管控器請求節(jié)點(diǎn)狀態(tài)信息,后臺管控器接收到管理器的請求消息后,實(shí)時(shí)收集本節(jié)點(diǎn)狀態(tài)信息并傳送給管理器;2. 3.4 管理器接收到各后臺管控器的狀態(tài)信息后,實(shí)時(shí)顯示各后臺管控器節(jié)點(diǎn)當(dāng)前的性能狀態(tài)參數(shù);第三步,基于仿真任務(wù)復(fù)雜程度決定分發(fā)調(diào)度策略,仿真任務(wù)復(fù)雜程度由仿真樣本運(yùn)行過程中的實(shí)體數(shù)以及實(shí)體之間交互的數(shù)量決定,分發(fā)調(diào)度策略包括單節(jié)點(diǎn)分發(fā)調(diào)度策略和組分發(fā)調(diào)度策略;單節(jié)點(diǎn)分發(fā)調(diào)度策略是指在一個(gè)后臺管控節(jié)點(diǎn)上運(yùn)行一個(gè)仿真樣本和一個(gè)并行仿真服務(wù)器;組分發(fā)策略是指幾個(gè)后臺管控節(jié)點(diǎn)構(gòu)成一個(gè)組,該節(jié)點(diǎn)組共同運(yùn)行一個(gè)仿真樣本,其中一個(gè)后臺管控節(jié)點(diǎn)運(yùn)行并行仿真服務(wù)器,其它節(jié)點(diǎn)運(yùn)行仿真樣本可執(zhí)行程序;選定單節(jié)點(diǎn)分發(fā)調(diào)度策略或組分發(fā)調(diào)度策略的規(guī)則是當(dāng)S×Ecpu×Es<=100時(shí),選取單節(jié)點(diǎn)分發(fā)調(diào)度策略,否則選取組分發(fā)調(diào)度策略,S是仿真任務(wù)實(shí)體數(shù),Ecpu為CPU平均利用率,Es為內(nèi)存平均利用率;第四步,管理器根據(jù)單節(jié)點(diǎn)分發(fā)調(diào)度策略或組分發(fā)調(diào)度策略向后臺管控器進(jìn)行仿真樣本分發(fā)4. 1 當(dāng)選定單節(jié)點(diǎn)分發(fā)策略時(shí),包括以下步驟4. 1.1 根據(jù)各節(jié)點(diǎn)當(dāng)前的性能狀況參數(shù),基于負(fù)載平衡的原則向各后臺管控節(jié)點(diǎn)分配仿真樣本;4. 1.2 管理器記錄樣本部署信息,并生成仿真任務(wù)隊(duì)列STQ,STQ以后臺管控節(jié)點(diǎn)編號為關(guān)鍵字,包含各節(jié)點(diǎn)相應(yīng)的后臺管控節(jié)點(diǎn)子隊(duì)列,若編號為0的節(jié)點(diǎn)上建立了管理器,則STQ={STQ1,STQ2,...,STQi,...,STQn},i=1,2,...,n,子隊(duì)列STQi中每個(gè)元素是一條記錄,每條記錄包括節(jié)點(diǎn)編號、仿真樣本名稱、仿真樣本運(yùn)行次數(shù)、記錄文件編號四個(gè)字段;其中節(jié)點(diǎn)編號標(biāo)識仿真樣本運(yùn)行的節(jié)點(diǎn)i,仿真樣本名稱標(biāo)識運(yùn)行的樣本名Namej,仿真樣本運(yùn)行次數(shù)標(biāo)識仿真樣本Namej在節(jié)點(diǎn)i上需運(yùn)行的次數(shù)rnumj,記錄文件編號表示樣本運(yùn)行結(jié)果存儲的文件編號i_Namej_rnumj,j=1,2,...,N,節(jié)點(diǎn)i上共運(yùn)行N個(gè)仿真樣本,樣本名為{Name1,Name2,...,Namej,...,NameN};4. 1.3 管理器查詢仿真任務(wù)隊(duì)列STQ,生成各節(jié)點(diǎn)的配置文件,并由管理器采取傳輸壓縮數(shù)據(jù)包的方式將配置文件和仿真應(yīng)用可執(zhí)行程序部署到對應(yīng)的后臺管控節(jié)點(diǎn),方法是4. 1.3.1 管理器判斷任務(wù)隊(duì)列STQ是否為空,若不為空,取任務(wù)隊(duì)列STQ中第一個(gè)節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,置當(dāng)前節(jié)點(diǎn)為節(jié)點(diǎn)i,執(zhí)行步驟4.1.3.2;若為空,結(jié)束仿真任務(wù)節(jié)點(diǎn)分發(fā);4. 1.3.2 管理器判斷STQi是否為空,若不為空,執(zhí)行步驟4.1.3.3;若STQi為空,判斷當(dāng)前STQi是否存在下一節(jié)點(diǎn)子隊(duì)列,若存在,取當(dāng)前STQi的下一節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,轉(zhuǎn)步驟4.1.3.2;若不存在,結(jié)束仿真任務(wù)節(jié)點(diǎn)分發(fā);4. 1.3.3 根據(jù)STQi中的記錄,生成節(jié)點(diǎn)i上的仿真樣本Namej、運(yùn)行次數(shù)rnumj、記錄文件編號i_Namej_rnumj的配置文件,j=1,2,...,N;4. 1.3.4 管理器將仿真應(yīng)用可執(zhí)行程序、配置文件壓縮成仿真應(yīng)用文件包,并向節(jié)點(diǎn)i上的后臺管控器傳輸一次仿真應(yīng)用文件包;4. 1.3.5 節(jié)點(diǎn)i上后臺管控器將接收到的仿真應(yīng)用文件包解壓至仿真應(yīng)用文件夾,根據(jù)相應(yīng)的命名規(guī)則,生成不同的樣本文件運(yùn)行文件夾,并將仿真應(yīng)用文件夾中所有文件拷貝至所有的樣本運(yùn)行文件夾中,轉(zhuǎn)步驟4.1.3.2;4. 2 當(dāng)管理器采用組分發(fā)策略時(shí),劃分的各個(gè)后臺管控節(jié)點(diǎn)組內(nèi)存在一個(gè)主后臺管控節(jié)點(diǎn),主后臺管控節(jié)點(diǎn)上的后臺管控器稱為主后臺管控器,由它運(yùn)行并行仿真服務(wù)器,組內(nèi)其他后臺管控器均為普通后臺管控器,運(yùn)行仿真樣本可執(zhí)行程序,組分發(fā)策略包括如下步驟4. 2.1 根據(jù)確定的分組規(guī)模,設(shè)置各個(gè)節(jié)點(diǎn)所屬于的節(jié)點(diǎn)組,為節(jié)點(diǎn)分組,形成節(jié)點(diǎn)組參數(shù)文件;4. 2.2 指定組內(nèi)主管控節(jié)點(diǎn)來負(fù)責(zé)整個(gè)組的并行仿真樣本運(yùn)行,綜合考慮各節(jié)點(diǎn)組的性能狀況,基于負(fù)載平衡的原則在各后臺管控節(jié)點(diǎn)組分配仿真樣本;4. 2.3 管理器記錄樣本部署信息,并以主后臺管控節(jié)點(diǎn)的編號Prmm為關(guān)鍵字生成任務(wù)主管控隊(duì)列STCQ,STCQ={STCQ1,STCQ2,...,STCQm,...,STCQM},m=1,2,...,M,M<=n,M為最大分組數(shù),STCQ包含主后臺管控節(jié)點(diǎn)Prmm相應(yīng)的主后臺管控節(jié)點(diǎn)子隊(duì)列STCQm,子隊(duì)列STCQm包含節(jié)點(diǎn)組Prmm上將要運(yùn)行的所有仿真樣本的信息,STCQm中每個(gè)元素是一條記錄,每條記錄包括主管控節(jié)點(diǎn)編號、屬于節(jié)點(diǎn)組的節(jié)點(diǎn)編號、仿真樣本名稱、仿真樣本運(yùn)行次數(shù)、記錄文件編號五個(gè)字段;主管控節(jié)點(diǎn)編號標(biāo)識仿真樣本運(yùn)行節(jié)點(diǎn)組內(nèi)的主管控節(jié)點(diǎn)Prmm,Prmm也標(biāo)識該節(jié)點(diǎn)組,節(jié)點(diǎn)編號標(biāo)識共同運(yùn)行仿真樣本的組內(nèi)的一個(gè)節(jié)點(diǎn)i,仿真樣本名稱標(biāo)識運(yùn)行的樣本名為Namej,j=1,2,...,N,節(jié)點(diǎn)i上要運(yùn)行N個(gè)仿真樣本,樣本名為{Name1,Name2,...,Namej,...,NameN},仿真樣本運(yùn)行次數(shù)標(biāo)識仿真樣本Namej子進(jìn)程在組Prmm的節(jié)點(diǎn)i上需運(yùn)行的次數(shù)rnumj,記錄文件編號表示樣本運(yùn)行結(jié)果數(shù)據(jù)存儲的文件編號為Prmi_Namej_rnumj;4. 2.4 管理器查詢?nèi)蝿?wù)主管控隊(duì)列STCQ,生成各節(jié)點(diǎn)組的配置文件,并采取傳輸壓縮數(shù)據(jù)包的方式將配置文件和仿真應(yīng)用可執(zhí)行程序部署到各后臺管控節(jié)點(diǎn)組4. 2.4.1 管理器判斷任務(wù)主管控隊(duì)列STCQ是否為空,若不為空,取任務(wù)主管控隊(duì)列STCQ中第一個(gè)節(jié)點(diǎn)組子隊(duì)列作為當(dāng)前節(jié)點(diǎn)組子隊(duì)列STCQm,置當(dāng)前節(jié)點(diǎn)組為節(jié)點(diǎn)組Prmm,執(zhí)行步驟4.2.4.2;若為空,結(jié)束仿真任務(wù)節(jié)點(diǎn)組的分發(fā);4. 2.4.2 管理器判斷STCQm是否為空,若不為空,執(zhí)行步驟4.2.4.3;若STCQm為空,判斷當(dāng)前STCQm是否存在下一節(jié)點(diǎn)組子隊(duì)列,若存在,取當(dāng)前STCQm的下一節(jié)點(diǎn)組子隊(duì)列作為當(dāng)前節(jié)點(diǎn)組任務(wù)子隊(duì)列STCQm,轉(zhuǎn)步驟4.2.4.2;若不存在,結(jié)束仿真任務(wù)節(jié)點(diǎn)組的分發(fā);4. 2.4.3 根據(jù)STCQm中的記錄,生成節(jié)點(diǎn)組Prmm上的仿真樣本Namej、運(yùn)行次數(shù)rnumj、記錄文件編號Prmm_Namej_rnumj的配置文件;4. 2.4.4 管理器將仿真應(yīng)用可執(zhí)行程序、配置文件壓縮成仿真應(yīng)用文件包,并向節(jié)點(diǎn)組Prmm的各后臺管控器僅傳輸一次仿真應(yīng)用文件包;4. 2.4.5 節(jié)點(diǎn)組Prmm的各后臺管控器將接收到的仿真應(yīng)用文件包解壓至仿真應(yīng)用文件夾,根據(jù)相應(yīng)的命名規(guī)則,生成不同的樣本文件運(yùn)行文件夾,并將仿真應(yīng)用文件夾中所有文件拷貝至所有的樣本運(yùn)行文件夾中,轉(zhuǎn)步驟4.2.4.2;第五步,根據(jù)仿真任務(wù)分發(fā)情況,由并行仿真任務(wù)分發(fā)與調(diào)度器采用單節(jié)點(diǎn)調(diào)度策略或組調(diào)度策略進(jìn)行仿真樣本的調(diào)度5. 1 單節(jié)點(diǎn)調(diào)度策略,包括以下步驟5. 1.1 管理器判斷任務(wù)隊(duì)列STQ是否為空,若不為空,取任務(wù)隊(duì)列STQ中第一個(gè)節(jié)點(diǎn)子隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)子隊(duì)列STQi,置當(dāng)前節(jié)點(diǎn)為節(jié)點(diǎn)i,執(zhí)行步驟5.1.2;若為空,結(jié)束仿真任務(wù)調(diào)度運(yùn)行;5. 1.2 管理器判斷STQi是否為空,若STQi為空,刪除STQi,轉(zhuǎn)步驟5.1.1;若不為空,執(zhí)行步驟5.1.3;5. 1.3 判斷STQi上的第一個(gè)仿真樣本的運(yùn)行次數(shù)是否為0,若為0,管理器刪除STQi中的第一個(gè)仿真樣本的記錄,轉(zhuǎn)步驟5.1.2,若不為0,執(zhí)行步驟5.1.4;5. 1.4 管理器在節(jié)點(diǎn)i上調(diào)度STQi中的第一個(gè)仿真樣本運(yùn)行1次,方法是管理器向節(jié)點(diǎn)i上的后臺管控器發(fā)送仿真樣本調(diào)度消息,后臺管控器啟動節(jié)點(diǎn)i上的并行仿真服務(wù)器以及仿真樣本運(yùn)行,同時(shí)向記錄文件編號標(biāo)識的文件記錄仿真結(jié)果數(shù)據(jù),轉(zhuǎn)步驟5.1.5;5. 1.5 判斷任務(wù)隊(duì)列STQ是否存在未調(diào)度仿真樣本運(yùn)行的節(jié)點(diǎn),若存在,管理器置第一個(gè)未調(diào)度節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)i,轉(zhuǎn)步驟5.1.2;若任務(wù)隊(duì)列中不存在未調(diào)度節(jié)點(diǎn),管理器處于等待后臺管控器信息報(bào)告狀態(tài),轉(zhuǎn)步驟5.1.6;5. 1.6 后臺管控器運(yùn)行仿真樣本開始后,仿真應(yīng)用可執(zhí)行程序?qū)⒎抡娼Y(jié)果數(shù)據(jù)記錄到記錄文件編號標(biāo)識的文件中,并通過并行仿真服務(wù)器每隔一段時(shí)間T查詢仿真運(yùn)行狀態(tài),仿真樣本運(yùn)行結(jié)束時(shí),后臺管控器將仿真樣本結(jié)束狀態(tài)發(fā)送給管理器,管理器接收后臺管理器仿真樣本的本次運(yùn)行完畢消息后,執(zhí)行步驟5.1.7;5. 1.7 管理器修改當(dāng)前節(jié)點(diǎn)i的任務(wù)子隊(duì)列STQi中的當(dāng)前運(yùn)行樣本的運(yùn)行次數(shù),運(yùn)行次數(shù)減少1次,轉(zhuǎn)步驟5.1.3;5. 2 采用組調(diào)度策略時(shí),包括以下步驟5. 2.1 管理器判斷任務(wù)主管控隊(duì)列STCQ是否為空,若不為空,取任務(wù)主管控隊(duì)列STCQ中第一個(gè)節(jié)點(diǎn)組隊(duì)列作為當(dāng)前節(jié)點(diǎn)任務(wù)主管控子隊(duì)列STCQm,置當(dāng)前節(jié)點(diǎn)組為節(jié)點(diǎn)組Prmm,執(zhí)行步驟5.2.2;若為空,結(jié)束仿真任務(wù)調(diào)度運(yùn)行;5. 2.2 管理器判斷當(dāng)前節(jié)點(diǎn)組Prmm的子隊(duì)列STCQm是否為空,若STCQm為空,則刪除STCQm,轉(zhuǎn)步驟5.2.1;若不為空,執(zhí)行步驟5.2.3;5. 2.3 判斷STCQm上的第一個(gè)仿真樣本的運(yùn)行次數(shù),若為0,管理器刪除STCQm中的第一個(gè)仿真樣本的記錄,轉(zhuǎn)步驟5.2.2,若不為0,執(zhí)行步驟5.2.4;5. 2.4 管理器在節(jié)點(diǎn)組Prmm上調(diào)度STCQm中的第一個(gè)仿真樣本運(yùn)行1次,方法是管理器向組內(nèi)各后臺管控器發(fā)送仿真樣本調(diào)度消息,主后臺管控器啟動節(jié)點(diǎn)上并行仿真服務(wù)器及仿真樣本子進(jìn)程運(yùn)行,各普通后臺管控器啟動節(jié)點(diǎn)上仿真樣本子進(jìn)程運(yùn)行,并同時(shí)向記錄文件編號標(biāo)識的文件記錄仿真結(jié)果數(shù)據(jù),轉(zhuǎn)步驟5.2.5;5. 2.5 判斷任務(wù)主管控隊(duì)列STCQ是否存在未調(diào)度仿真樣本運(yùn)行的節(jié)點(diǎn)組,若存在,管理器置第一個(gè)未調(diào)度節(jié)點(diǎn)組為當(dāng)前節(jié)點(diǎn)組Prmm,轉(zhuǎn)步驟5.2.2;若任務(wù)隊(duì)列中不存在未調(diào)度節(jié)點(diǎn)組,管理器處于等待主后臺管控器信息報(bào)告狀態(tài),轉(zhuǎn)步驟5.2.6;5. 2.6 當(dāng)所有后臺管控器運(yùn)行仿真樣本開始后,主后臺管控節(jié)點(diǎn)上的仿真應(yīng)用可執(zhí)行程序?qū)⒎抡娼Y(jié)果數(shù)據(jù)記錄到記錄文件編號標(biāo)識的文件中,并通過并行仿真服務(wù)器每隔一段時(shí)間T查詢仿真運(yùn)行狀態(tài),仿真樣本運(yùn)行結(jié)束時(shí),主后臺管控器將仿真樣本結(jié)束狀態(tài)發(fā)送給管理器,管理器接收主后臺管理器仿真樣本的本次運(yùn)行完畢消息后,執(zhí)行步驟5.2.7;5. 2.7 管理器修改當(dāng)前節(jié)點(diǎn)組Prmm的任務(wù)主管控子隊(duì)列STCQm中的當(dāng)前運(yùn)行樣本的運(yùn)行次數(shù),運(yùn)行次數(shù)減少1次,轉(zhuǎn)步驟5.2.3;第六步,由基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器進(jìn)行仿真結(jié)果數(shù)據(jù)的自動收集,方法是6. 1 所有樣本運(yùn)行完畢后,管理器發(fā)送樣本運(yùn)行結(jié)束消息,后臺管控節(jié)點(diǎn)或主管控節(jié)點(diǎn)接收到該消息后,關(guān)閉并行仿真服務(wù)器,查詢各樣本文件包中的數(shù)據(jù)文件即編號為i_Namej_rnumj或Prmm_Namej_rnumj的文件,將查找到的數(shù)據(jù)文件加入到數(shù)據(jù)文件包中壓縮存儲;6. 2 直至本節(jié)點(diǎn)上所有的數(shù)據(jù)文件都加入到數(shù)據(jù)文件包中,后臺管控節(jié)點(diǎn)或主管控節(jié)點(diǎn)向管理器發(fā)送數(shù)據(jù)準(zhǔn)備完畢消息,管理器接收到該消息后,解析出其中的壓縮包信息,并初始化接收文件準(zhǔn)備工作,然后向后臺管控節(jié)點(diǎn)或主管控節(jié)點(diǎn)發(fā)送請求文件傳輸消息,后臺管控節(jié)點(diǎn)接收請求文件傳輸消息后開始傳輸數(shù)據(jù);6. 3 管理器啟動多線程接收后臺管控節(jié)點(diǎn)或主管控節(jié)點(diǎn)的相應(yīng)數(shù)據(jù),文件傳輸完畢后,各計(jì)算節(jié)點(diǎn)清除樣本文件包以及數(shù)據(jù)記錄文件,管理器收集到各后臺管控節(jié)點(diǎn)或主管控節(jié)點(diǎn)上的所有數(shù)據(jù)文件后,仿真結(jié)果數(shù)據(jù)收集完成,本次仿真任務(wù)結(jié)束。
2. 如權(quán)利要求1所述的基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度方法,其特征在于所述性能狀態(tài)參數(shù)包括CPU主頻、CPU利用率、內(nèi)存容量、內(nèi)存利用率。
3. 如權(quán)利要求1所述的基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度方法, 其特征在于當(dāng)選定組分發(fā)調(diào)度策略時(shí),當(dāng) SxEcpuxEs>(k-l)*100&&SxEcpuxEs<=k*100時(shí),采用k節(jié)點(diǎn)為一組的組 分發(fā)調(diào)度策略,l<k<=n;當(dāng)存在不能歸組的節(jié)點(diǎn)時(shí),將這些節(jié)點(diǎn)歸入最后 一個(gè)節(jié)點(diǎn)組中,聯(lián)合執(zhí)行相應(yīng)的仿真樣本。
4. 如權(quán)利要求1所述的基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度方法, 其特征在于所述T為5-8秒。
全文摘要
本發(fā)明公開了一種基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度方法,目的是解決現(xiàn)有并行仿真多樣本運(yùn)行效率低、浪費(fèi)人力資源的問題。技術(shù)方案是首先構(gòu)建多臺計(jì)算機(jī)組成的并行仿真局域網(wǎng)環(huán)境,然后建立由管理器、后臺管控器構(gòu)成的基于后臺管控架構(gòu)的并行仿真任務(wù)分發(fā)與調(diào)度器,由調(diào)度器采用單節(jié)點(diǎn)分發(fā)調(diào)度策略或組分發(fā)調(diào)度策略完成仿真樣本分發(fā)和調(diào)度并進(jìn)行仿真結(jié)果數(shù)據(jù)的自動收集。本發(fā)明既解決了傳統(tǒng)的并行仿真多樣本運(yùn)行需要用戶手工操作完成、整個(gè)過程運(yùn)行效率低的問題,同時(shí)也提高了仿真結(jié)果數(shù)據(jù)的收集效率,便于事后數(shù)據(jù)的分析評估。
文檔編號G06F17/50GK101436959SQ200810143999
公開日2009年5月20日 申請日期2008年12月18日 優(yōu)先權(quán)日2008年12月18日
發(fā)明者劉步權(quán), 劉金鵬, 姚益平, 張穎星, 曲慶軍, 蔣志文 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)