徐道磊
(昆明船舶設(shè)備研究試驗(yàn)中心 云南 昆明650051)
基于并行計(jì)算的水下目標(biāo)回波模擬器仿真軟件框架研究
徐道磊
(昆明船舶設(shè)備研究試驗(yàn)中心 云南 昆明650051)
針對(duì)提高水下目標(biāo)回波模擬器的仿真效率和計(jì)算機(jī)資源使用效率的目的。通過(guò)分析水下目標(biāo)回波模擬器的仿真可并行性,詳細(xì)敘述仿真任務(wù)并行分割方法,基于并行計(jì)算,形成并行仿真軟件框架。搭建小型仿真系統(tǒng),并行和串行仿真試驗(yàn)結(jié)果顯示并行的CPU總利用率達(dá)到40%,串行達(dá)到12.9%,空閑狀態(tài)僅達(dá)到4%。試驗(yàn)表明該方法可有效提高仿真效率和計(jì)算機(jī)資源使用效率。
水下目標(biāo)回波模擬器;并行計(jì)算;并行編程模型;消息傳遞接口;進(jìn)程
聲波照射到水下目標(biāo)的表面上時(shí),會(huì)在反方向上產(chǎn)生反(散)射信號(hào),稱為回波信號(hào)[1],目標(biāo)回波是目標(biāo)對(duì)入射波的調(diào)制結(jié)果[2],是水中自導(dǎo)兵器檢測(cè)、估計(jì)和識(shí)別目標(biāo)的基本依據(jù)[3]。水下目標(biāo)回波模擬器用于模擬真實(shí)目標(biāo)的回波產(chǎn)生機(jī)理和運(yùn)動(dòng)特征,可作為水中兵器試驗(yàn)中的模擬目標(biāo),對(duì)其進(jìn)行仿真研究,有利于產(chǎn)品的試制和水聲對(duì)抗試驗(yàn)研究。
隨著低成本并行計(jì)算機(jī)結(jié)構(gòu)和高速網(wǎng)絡(luò)計(jì)算平臺(tái)的出現(xiàn),使得并行仿真成為可能,并行仿真技術(shù)成為仿真領(lǐng)域的一個(gè)研究熱點(diǎn)[4]。文中基于并行計(jì)算,采用并行編程技術(shù)針對(duì)水下目標(biāo)回波模擬器進(jìn)行仿真研究,加入簡(jiǎn)易探測(cè)源和環(huán)境聲信道仿真處理,主要實(shí)現(xiàn)目標(biāo)回波模擬器工作流程的計(jì)算機(jī)仿真。
水下目標(biāo)回波模擬器[5-6]主要有兩個(gè)方面的工作內(nèi)容:信號(hào)提取和信號(hào)處理。動(dòng)目標(biāo)回波模擬器在產(chǎn)生回波的同時(shí)需要自主機(jī)動(dòng),回波信號(hào)產(chǎn)生一般原理如圖1所示。

圖1 回波產(chǎn)生原理圖
水聽(tīng)器將主動(dòng)尋的聲信號(hào)轉(zhuǎn)為電信號(hào),經(jīng)過(guò)前放、濾波、模數(shù)轉(zhuǎn)換后進(jìn)入信號(hào)檢測(cè)(存儲(chǔ)),根據(jù)有關(guān)結(jié)果對(duì)主動(dòng)尋的電信號(hào)進(jìn)行某些變換得到回波電信號(hào),變換包括信號(hào)幅度調(diào)控、延時(shí)、信號(hào)展寬以及多普勒頻移(針對(duì)動(dòng)目標(biāo))等[7-9]。仿真中加入目標(biāo)強(qiáng)度、時(shí)延值、展寬量和多普勒頻移量模擬上述變換。變換所得的回波電信號(hào)經(jīng)過(guò)數(shù)模轉(zhuǎn)換、均衡濾波、放大后經(jīng)發(fā)射換能器轉(zhuǎn)換為回波聲信號(hào)反射出去。圖示中信號(hào)檢測(cè)前及變換結(jié)束后的處理在仿真中采用特定數(shù)據(jù)轉(zhuǎn)換協(xié)議進(jìn)行替代。
文中重在研究如何利用并行計(jì)算搭建目標(biāo)回波模擬器仿真系統(tǒng)軟件框架,所以目標(biāo)回波模擬器的多種工作模式、仿真中的數(shù)據(jù)轉(zhuǎn)換協(xié)議、信號(hào)檢測(cè)和變換中所使用的算法和參數(shù)涉及具體業(yè)務(wù)流程,不是本文研究的重點(diǎn),文中不作詳細(xì)敘述。小型仿真系統(tǒng)需要引入探測(cè)源仿真模塊用于模擬產(chǎn)生主動(dòng)尋的信號(hào),環(huán)境信道仿真模塊用于模擬環(huán)境對(duì)聲信號(hào)的響應(yīng),顯控平臺(tái)軟件用于顯示目標(biāo)回波模擬器的運(yùn)動(dòng)過(guò)程和聲信號(hào)交互的情況。系統(tǒng)如圖2所示。

圖2 小型目標(biāo)回波模擬器仿真框圖
圖示具有如下特點(diǎn):1)仿真中信號(hào)流始終遵循探測(cè)源—環(huán)境—目標(biāo)回波模擬器—環(huán)境—探測(cè)源的固定方向;2)仿真系統(tǒng)中采用數(shù)字信號(hào)分幀循環(huán)運(yùn)行的模式來(lái)模擬實(shí)際物理場(chǎng)中持續(xù)一段時(shí)間內(nèi)的水下聲信號(hào)交互情況;3)目標(biāo)回波模擬器在產(chǎn)生回波信號(hào)的同時(shí)需要模擬目標(biāo)的某種運(yùn)動(dòng)狀態(tài);4)顯控平臺(tái)的加入需要增加額外的數(shù)據(jù)通信開銷,需要特定的模塊用于完成數(shù)據(jù)通信。根據(jù)上述特點(diǎn),若采用串行編程模式實(shí)現(xiàn)該仿真系統(tǒng),勢(shì)必造成時(shí)間開銷過(guò)大,仿真效率過(guò)慢,達(dá)不到實(shí)時(shí)仿真的要求,也即失去了仿真的意義。采用并行編程的模式實(shí)現(xiàn)仿真,更符合系統(tǒng)的特點(diǎn),可提高仿真效率,更能達(dá)到仿真的目的,實(shí)現(xiàn)實(shí)時(shí)活超實(shí)時(shí)的仿真[10]。
并行[11]有兩種含義:一是同時(shí)性,指兩個(gè)或多個(gè)事件在同一時(shí)刻發(fā)生;二是并發(fā)性,指兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生。并行計(jì)算[12]是指在并行機(jī)上將一個(gè)應(yīng)用分解成多個(gè)子任務(wù),分配給不同的處理器,各個(gè)處理器之間相互協(xié)同并行地執(zhí)行任務(wù),從而達(dá)到加速求解速度,或者求解應(yīng)用問(wèn)題規(guī)模的目的。一個(gè)并行仿真系統(tǒng)需要具備如下3個(gè)基本條件[13]:1)多個(gè)計(jì)算資源,至少包含兩臺(tái)或兩臺(tái)以上通過(guò)互聯(lián)網(wǎng)絡(luò)相互連接,相互通信的處理機(jī);2)應(yīng)用問(wèn)題必須具有并行度,即應(yīng)用問(wèn)題可以分解為多個(gè)可并行地執(zhí)行的子任務(wù);3)并行編程[14],在計(jì)算資源上提供的并行環(huán)境上,具體實(shí)現(xiàn)并行算法,編制并行程序,并運(yùn)行該程序,以達(dá)到求解問(wèn)題的目的。
并行算法的設(shè)計(jì)是并行仿真系統(tǒng)的核心,常用的并行算法設(shè)計(jì)方法有分治策略和流水線技術(shù)等[13]。分治策略是將一個(gè)大而復(fù)雜的問(wèn)題分割成若干個(gè)特征相同的子問(wèn)題分而治之,常見(jiàn)的分治方法有兩種:數(shù)據(jù)分割,指各計(jì)算單元(核)基本執(zhí)行相同的任務(wù),只是數(shù)據(jù)不同;任務(wù)分割,指總?cè)蝿?wù)由自然的數(shù)個(gè)子任務(wù)組成,將其分?jǐn)傇诟鱾€(gè)計(jì)算單元上。流水線技術(shù)的基本思想是將一個(gè)計(jì)算任務(wù)t,分成一系列的子任務(wù)t1,t2…tn,使得一旦t1完成,后繼的子任務(wù)就可立即開始,以此類推,循環(huán)執(zhí)行直至總?cè)蝿?wù)完成。
消息傳遞是目前并行計(jì)算機(jī)上廣泛使用的一種程序設(shè)計(jì)模式,MPI(Message Passing Interface)[15]是一個(gè)消息傳遞編程標(biāo)準(zhǔn),其目的是為基于消息傳遞的并行程序設(shè)計(jì)提供一個(gè)高效、可擴(kuò)展、統(tǒng)一的編程環(huán)境。一個(gè)MPI并行程序由若干個(gè)并發(fā)進(jìn)程組成,MPI假設(shè)進(jìn)程是靜態(tài)的,通常用命令的方式來(lái)啟動(dòng),當(dāng)并行進(jìn)程裝入時(shí),就創(chuàng)建了所有進(jìn)程,它們一直存在直至整個(gè)程序終止,各個(gè)進(jìn)程之間通過(guò)調(diào)用MPI的庫(kù)函數(shù)[16]實(shí)現(xiàn)消息傳遞。
3.1 并行任務(wù)分割
如前所述,仿真系統(tǒng)的工作流程可分為仿真初始化,由顯控平臺(tái)根據(jù)仿真需要,配置初始化參數(shù);仿真幀循環(huán)運(yùn)行,每一仿真周期內(nèi),探測(cè)源仿真模塊產(chǎn)生主動(dòng)尋的信號(hào),經(jīng)環(huán)境信道作用后,目標(biāo)回波模擬器接收信號(hào)并產(chǎn)生回波信號(hào),經(jīng)環(huán)境信道作用后返回探測(cè)源仿真模塊,同時(shí)將相關(guān)信號(hào)傳送到顯控完成顯示,以此循環(huán);運(yùn)動(dòng)持續(xù)模擬,仿真循環(huán)的過(guò)程中,根據(jù)設(shè)定模擬特定的運(yùn)動(dòng)狀態(tài);仿真結(jié)束,仿真任務(wù)完成,結(jié)束仿真。上述過(guò)程滿足流水線技術(shù),可以進(jìn)行并行任務(wù)劃分,方法如下:
任務(wù)一:配置參數(shù)監(jiān)聽(tīng),基于TCP/IP協(xié)議完成目標(biāo)回波模擬器初始配置參數(shù)的監(jiān)聽(tīng)及接收;
任務(wù)二:探測(cè)源仿真,產(chǎn)生主動(dòng)尋的信號(hào),是仿真幀循環(huán)過(guò)程的源頭;
任務(wù)三:環(huán)境信道仿真,模擬環(huán)境對(duì)聲信號(hào)的響應(yīng);
任務(wù)四:目標(biāo)回波模擬器仿真,模擬回波信號(hào)產(chǎn)生和自主機(jī)動(dòng);
任務(wù)五:顯示信息交互,將計(jì)算的相關(guān)信號(hào)和運(yùn)動(dòng)狀態(tài)發(fā)送到顯控平臺(tái)完成圖文并茂顯示。
目標(biāo)回波模擬器在完成回波信號(hào)生成的同時(shí)持續(xù)運(yùn)動(dòng),二者之間滿足任務(wù)的并發(fā)性,在該層面上可以將總?cè)蝿?wù)目標(biāo)回波模擬器仿真分解為兩個(gè)并發(fā)的子任務(wù),即將上述任務(wù)四進(jìn)一步劃分如下:
任務(wù)A:目標(biāo)回波模擬器自主機(jī)動(dòng)運(yùn)動(dòng)解算;
任務(wù)B:目標(biāo)回波模擬器回波信號(hào)產(chǎn)生;
根據(jù)目標(biāo)回波模擬器工作機(jī)理,主動(dòng)尋的信號(hào)經(jīng)過(guò)的一系列串行處理滿足流水線技術(shù),可將總?cè)蝿?wù)目標(biāo)回波模擬器回波信號(hào)產(chǎn)生分解為4個(gè)并發(fā)的子任務(wù),即將上述任務(wù)B進(jìn)一步劃分如下:
任務(wù)a:接收數(shù)據(jù)轉(zhuǎn)換,完成信號(hào)檢測(cè)前的所有處理;任務(wù)b:信號(hào)檢測(cè)(存儲(chǔ)),完成主動(dòng)尋的信號(hào)的提取;任務(wù)c:信號(hào)變換,完成幅度控制,延時(shí),展寬、多普勒頻移等處理;任務(wù)d:發(fā)射數(shù)據(jù)轉(zhuǎn)換,完成回波信號(hào)發(fā)射處理。
綜上所述,基于MPI消息傳遞的并行設(shè)計(jì)模式,上述每一個(gè)子任務(wù)作為一獨(dú)立任務(wù)進(jìn)程實(shí)現(xiàn),得到仿真系統(tǒng)的并行設(shè)計(jì)示意如圖3所示。

圖3 仿真軟件并行框架示意圖
3.2 仿真分析
文中構(gòu)建的仿真系統(tǒng)使用一臺(tái)裝有Red Hat Linux 5.4操作系統(tǒng)的計(jì)算機(jī)作為模型計(jì)算單元,內(nèi)置openmpi3.1.4版本的并行編程環(huán)境,一臺(tái)裝有windows操作系統(tǒng)的計(jì)算機(jī)作為顯控單元,二者構(gòu)成小型局域網(wǎng)仿真試驗(yàn)平臺(tái)。仿真實(shí)驗(yàn)所用計(jì)算機(jī)配置為Intel Core i7-4710MQ四核八線程處理器,即虛擬八核,每隔一秒分別記錄計(jì)算機(jī)空閑狀態(tài)、串行仿真和并行仿真時(shí)虛擬八核CPU的使用情況,記虛擬八核的標(biāo)號(hào)為1~8,隨時(shí)間推進(jìn),記錄的樣本數(shù)量為,第個(gè)樣本CPU總使用率記為Pi,單使用率記為P1i~P8i,N個(gè)樣本的單核平均使用率記為,則Pi=(P1i+P2i+P3i+P4i+P5i+P6i+P7i+P8i)/8,其余類似。得到多樣本下CPU總使用率散點(diǎn)圖和一段時(shí)間內(nèi)每個(gè)核的平均使用率散點(diǎn)圖。

圖4 CPU總使用率隨時(shí)間變化圖

圖5 一段時(shí)間內(nèi)每個(gè)核平均使用率散點(diǎn)圖
圖4 所示3種狀態(tài)下,隨記錄時(shí)間的推進(jìn),并行的CPU總利用率達(dá)到40%左右,串行達(dá)到12.9%左右,空閑僅達(dá)到4%左右;圖5所示一段時(shí)間內(nèi),并行狀態(tài)下,每個(gè)虛擬CPU核均得到一定程度的利用,串行狀態(tài)下,僅有部分核的利用率很高,使用不均勻,空閑狀態(tài)下,所有的虛擬CPU核的利用率均很低。綜上可見(jiàn),并行仿真更能發(fā)揮多核的優(yōu)勢(shì),充分利用硬件資源達(dá)到求解相同問(wèn)題的目的。
3.3 系統(tǒng)并行擴(kuò)展
并行計(jì)算存在多種層次的并行性,可以用并行計(jì)算任務(wù)的粒度來(lái)描述[13]。本仿真系統(tǒng)的任務(wù)劃分粒度是位于過(guò)程級(jí)的并行,這一級(jí)的并行通常對(duì)應(yīng)著過(guò)程、子過(guò)程,如果在硬件資源平臺(tái)允許的情況下,可以進(jìn)行更細(xì)粒度的計(jì)算任務(wù)劃分,例如數(shù)據(jù)級(jí)的并行,即將程序中的某些循環(huán)操作或矩陣乘法等使用并行實(shí)現(xiàn),可進(jìn)一步加速程序執(zhí)行效率。另外,本仿真實(shí)驗(yàn)僅針對(duì)某型產(chǎn)品且數(shù)量為1,在此基礎(chǔ)上,加入更多的仿真實(shí)體可擴(kuò)充為更龐大且復(fù)雜的水聲試驗(yàn)仿真系統(tǒng),各仿真實(shí)體有不同的作戰(zhàn)任務(wù),會(huì)執(zhí)行不同的作戰(zhàn)行為,這些作戰(zhàn)行為是并行的,則還可進(jìn)行任務(wù)級(jí)的并行劃分。
逼真的計(jì)算機(jī)數(shù)學(xué)模型是仿真研究的基礎(chǔ),文中對(duì)目標(biāo)回波模擬器的仿真機(jī)理和仿真可并行性進(jìn)行了理論分析,基于并行計(jì)算,應(yīng)用并行仿真編程模型搭建了目標(biāo)回波模擬器仿真軟件框架,詳細(xì)敘述了軟件中并行任務(wù)的劃分方法和并行擴(kuò)展方向。CPU使用率散點(diǎn)圖表明該方法可提高仿真效率和資源使用效率。文中為并行計(jì)算在各類仿真系統(tǒng)中的應(yīng)用提供仿真支持,對(duì)產(chǎn)品研制和水聲對(duì)抗試驗(yàn)研究等具有一定的參考價(jià)值。
[1]劉伯勝,雷家煜.水聲學(xué)原理[M].哈爾濱:哈爾濱工程大學(xué)出版社,2009.
[2]周德善.魚雷自導(dǎo)技術(shù)[M].北京:國(guó)防工業(yè)出版社,2009.
[3]宋緒棟,劉鵬仲.一種水下多亮點(diǎn)目標(biāo)模擬器的設(shè)計(jì)[J].聲學(xué)技術(shù),2012,31(2):188-192.
[4]趙會(huì)平,潘剛,徐心和.并行仿真技術(shù)綜述[J].計(jì)算機(jī)仿真,2003,20(11):118-123.
[5]明星,苑秉成,朱若寒.一種水下目標(biāo)回波模擬器的設(shè)計(jì)研究[J].艦船科學(xué)技術(shù),2008,30(2):165-168.
[6]李超,陳子銓.水下運(yùn)動(dòng)目標(biāo)模擬器設(shè)計(jì)與實(shí)現(xiàn)[C]//水聲對(duì)抗技術(shù)學(xué)術(shù)交流會(huì),2014.
[7]羅修波,劉淼.聲誘餌回波模擬器仿真研究[J].計(jì)算機(jī)仿真,2006,23(12):286-288.
[8]范軍,湯渭霖,卓琳凱.聲吶目標(biāo)回聲特性預(yù)報(bào)的板塊元方法[J].船舶力學(xué),2012(1):171-180.
[9]董仲臣,李亞安,陳曉.一種基于亮點(diǎn)模型的潛艇回波仿真方法.計(jì)算機(jī)仿真,2013,30(6):38-41.
[10]王宏力,王忠,鄧方林.大型武器系統(tǒng)六自由度并行仿真研究[J].系統(tǒng)仿真學(xué)報(bào),1998,10(3):8-13.
[11]牛文章.并行算法在系統(tǒng)仿真中的應(yīng)用[J].系統(tǒng)工程與電子技術(shù),1999,21(9):71-73.
[12]陳國(guó)良.并行計(jì)算-結(jié)構(gòu)算法編程[M].北京:北京高等教育出版社,2000.
[13]楊學(xué)會(huì),黃俊卿,譚亞新,等.作戰(zhàn)并行仿真[M].國(guó)防工業(yè)出版社,2014.
[14]都志輝.高性能計(jì)算并行編程技術(shù)-MPI并行程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2000.
[15]Message Passing Interface Forum.MPI:A messagepassing interface standard [EB/OL].http://www. docin.com/p-961472512.html.
[16]曾志峰.Linux環(huán)境下MPI并行編程與算法實(shí)現(xiàn)研究[J].航空計(jì)算技術(shù),2004,34(2):61-64.
Research on simulation software framework of underwater target echo simulator based on parallel computing
XU Dao-lei
(Kunming Shipbuilding Equipment Research and Test Center,Kunming 650051,China)
For improving the simulation efficiency of underwater target echo simulator and the use efficiency of computer resource.Through analyzing the simulation parallelism of underwater target echo simulator,described the parallel simulation task segmentation method in detail,based on parallel computing,constitute parallel simulation software framework.Build a small simulation system,parallel and serial simulation test results showed the total CPU utilization of parallel,serial and idle is 40%,12.9%and 4%respectively.Experiment showed this method can effectively improve the efficiency and computer resource usage.
underwater target echo simulator;parallel computing;parallel programming model;message passing interface;process
TN03
:A
:1674-6236(2017)02-0067-04
2015-12-16稿件編號(hào):201512177
徐道磊(1989—),男,云南宣威人,碩士研究生,助理工程師。研究方向:水下設(shè)備試驗(yàn)方法。