徐道磊
(昆明船舶設(shè)備研究試驗中心 云南 昆明650051)
基于并行計算的水下目標(biāo)回波模擬器仿真軟件框架研究
徐道磊
(昆明船舶設(shè)備研究試驗中心 云南 昆明650051)
針對提高水下目標(biāo)回波模擬器的仿真效率和計算機資源使用效率的目的。通過分析水下目標(biāo)回波模擬器的仿真可并行性,詳細敘述仿真任務(wù)并行分割方法,基于并行計算,形成并行仿真軟件框架。搭建小型仿真系統(tǒng),并行和串行仿真試驗結(jié)果顯示并行的CPU總利用率達到40%,串行達到12.9%,空閑狀態(tài)僅達到4%。試驗表明該方法可有效提高仿真效率和計算機資源使用效率。
水下目標(biāo)回波模擬器;并行計算;并行編程模型;消息傳遞接口;進程
聲波照射到水下目標(biāo)的表面上時,會在反方向上產(chǎn)生反(散)射信號,稱為回波信號[1],目標(biāo)回波是目標(biāo)對入射波的調(diào)制結(jié)果[2],是水中自導(dǎo)兵器檢測、估計和識別目標(biāo)的基本依據(jù)[3]。水下目標(biāo)回波模擬器用于模擬真實目標(biāo)的回波產(chǎn)生機理和運動特征,可作為水中兵器試驗中的模擬目標(biāo),對其進行仿真研究,有利于產(chǎn)品的試制和水聲對抗試驗研究。
隨著低成本并行計算機結(jié)構(gòu)和高速網(wǎng)絡(luò)計算平臺的出現(xiàn),使得并行仿真成為可能,并行仿真技術(shù)成為仿真領(lǐng)域的一個研究熱點[4]。文中基于并行計算,采用并行編程技術(shù)針對水下目標(biāo)回波模擬器進行仿真研究,加入簡易探測源和環(huán)境聲信道仿真處理,主要實現(xiàn)目標(biāo)回波模擬器工作流程的計算機仿真。
水下目標(biāo)回波模擬器[5-6]主要有兩個方面的工作內(nèi)容:信號提取和信號處理。動目標(biāo)回波模擬器在產(chǎn)生回波的同時需要自主機動,回波信號產(chǎn)生一般原理如圖1所示。
圖1 回波產(chǎn)生原理圖
水聽器將主動尋的聲信號轉(zhuǎn)為電信號,經(jīng)過前放、濾波、模數(shù)轉(zhuǎn)換后進入信號檢測(存儲),根據(jù)有關(guān)結(jié)果對主動尋的電信號進行某些變換得到回波電信號,變換包括信號幅度調(diào)控、延時、信號展寬以及多普勒頻移(針對動目標(biāo))等[7-9]。仿真中加入目標(biāo)強度、時延值、展寬量和多普勒頻移量模擬上述變換。變換所得的回波電信號經(jīng)過數(shù)模轉(zhuǎn)換、均衡濾波、放大后經(jīng)發(fā)射換能器轉(zhuǎn)換為回波聲信號反射出去。圖示中信號檢測前及變換結(jié)束后的處理在仿真中采用特定數(shù)據(jù)轉(zhuǎn)換協(xié)議進行替代。
文中重在研究如何利用并行計算搭建目標(biāo)回波模擬器仿真系統(tǒng)軟件框架,所以目標(biāo)回波模擬器的多種工作模式、仿真中的數(shù)據(jù)轉(zhuǎn)換協(xié)議、信號檢測和變換中所使用的算法和參數(shù)涉及具體業(yè)務(wù)流程,不是本文研究的重點,文中不作詳細敘述。小型仿真系統(tǒng)需要引入探測源仿真模塊用于模擬產(chǎn)生主動尋的信號,環(huán)境信道仿真模塊用于模擬環(huán)境對聲信號的響應(yīng),顯控平臺軟件用于顯示目標(biāo)回波模擬器的運動過程和聲信號交互的情況。系統(tǒng)如圖2所示。
圖2 小型目標(biāo)回波模擬器仿真框圖
圖示具有如下特點:1)仿真中信號流始終遵循探測源—環(huán)境—目標(biāo)回波模擬器—環(huán)境—探測源的固定方向;2)仿真系統(tǒng)中采用數(shù)字信號分幀循環(huán)運行的模式來模擬實際物理場中持續(xù)一段時間內(nèi)的水下聲信號交互情況;3)目標(biāo)回波模擬器在產(chǎn)生回波信號的同時需要模擬目標(biāo)的某種運動狀態(tài);4)顯控平臺的加入需要增加額外的數(shù)據(jù)通信開銷,需要特定的模塊用于完成數(shù)據(jù)通信。根據(jù)上述特點,若采用串行編程模式實現(xiàn)該仿真系統(tǒng),勢必造成時間開銷過大,仿真效率過慢,達不到實時仿真的要求,也即失去了仿真的意義。采用并行編程的模式實現(xiàn)仿真,更符合系統(tǒng)的特點,可提高仿真效率,更能達到仿真的目的,實現(xiàn)實時活超實時的仿真[10]。
并行[11]有兩種含義:一是同時性,指兩個或多個事件在同一時刻發(fā)生;二是并發(fā)性,指兩個或多個事件在同一時間間隔內(nèi)發(fā)生。并行計算[12]是指在并行機上將一個應(yīng)用分解成多個子任務(wù),分配給不同的處理器,各個處理器之間相互協(xié)同并行地執(zhí)行任務(wù),從而達到加速求解速度,或者求解應(yīng)用問題規(guī)模的目的。一個并行仿真系統(tǒng)需要具備如下3個基本條件[13]:1)多個計算資源,至少包含兩臺或兩臺以上通過互聯(lián)網(wǎng)絡(luò)相互連接,相互通信的處理機;2)應(yīng)用問題必須具有并行度,即應(yīng)用問題可以分解為多個可并行地執(zhí)行的子任務(wù);3)并行編程[14],在計算資源上提供的并行環(huán)境上,具體實現(xiàn)并行算法,編制并行程序,并運行該程序,以達到求解問題的目的。
并行算法的設(shè)計是并行仿真系統(tǒng)的核心,常用的并行算法設(shè)計方法有分治策略和流水線技術(shù)等[13]。分治策略是將一個大而復(fù)雜的問題分割成若干個特征相同的子問題分而治之,常見的分治方法有兩種:數(shù)據(jù)分割,指各計算單元(核)基本執(zhí)行相同的任務(wù),只是數(shù)據(jù)不同;任務(wù)分割,指總?cè)蝿?wù)由自然的數(shù)個子任務(wù)組成,將其分攤在各個計算單元上。流水線技術(shù)的基本思想是將一個計算任務(wù)t,分成一系列的子任務(wù)t1,t2…tn,使得一旦t1完成,后繼的子任務(wù)就可立即開始,以此類推,循環(huán)執(zhí)行直至總?cè)蝿?wù)完成。
消息傳遞是目前并行計算機上廣泛使用的一種程序設(shè)計模式,MPI(Message Passing Interface)[15]是一個消息傳遞編程標(biāo)準,其目的是為基于消息傳遞的并行程序設(shè)計提供一個高效、可擴展、統(tǒng)一的編程環(huán)境。一個MPI并行程序由若干個并發(fā)進程組成,MPI假設(shè)進程是靜態(tài)的,通常用命令的方式來啟動,當(dāng)并行進程裝入時,就創(chuàng)建了所有進程,它們一直存在直至整個程序終止,各個進程之間通過調(diào)用MPI的庫函數(shù)[16]實現(xiàn)消息傳遞。
3.1 并行任務(wù)分割
如前所述,仿真系統(tǒng)的工作流程可分為仿真初始化,由顯控平臺根據(jù)仿真需要,配置初始化參數(shù);仿真幀循環(huán)運行,每一仿真周期內(nèi),探測源仿真模塊產(chǎn)生主動尋的信號,經(jīng)環(huán)境信道作用后,目標(biāo)回波模擬器接收信號并產(chǎn)生回波信號,經(jīng)環(huán)境信道作用后返回探測源仿真模塊,同時將相關(guān)信號傳送到顯控完成顯示,以此循環(huán);運動持續(xù)模擬,仿真循環(huán)的過程中,根據(jù)設(shè)定模擬特定的運動狀態(tài);仿真結(jié)束,仿真任務(wù)完成,結(jié)束仿真。上述過程滿足流水線技術(shù),可以進行并行任務(wù)劃分,方法如下:
任務(wù)一:配置參數(shù)監(jiān)聽,基于TCP/IP協(xié)議完成目標(biāo)回波模擬器初始配置參數(shù)的監(jiān)聽及接收;
任務(wù)二:探測源仿真,產(chǎn)生主動尋的信號,是仿真幀循環(huán)過程的源頭;
任務(wù)三:環(huán)境信道仿真,模擬環(huán)境對聲信號的響應(yīng);
任務(wù)四:目標(biāo)回波模擬器仿真,模擬回波信號產(chǎn)生和自主機動;
任務(wù)五:顯示信息交互,將計算的相關(guān)信號和運動狀態(tài)發(fā)送到顯控平臺完成圖文并茂顯示。
目標(biāo)回波模擬器在完成回波信號生成的同時持續(xù)運動,二者之間滿足任務(wù)的并發(fā)性,在該層面上可以將總?cè)蝿?wù)目標(biāo)回波模擬器仿真分解為兩個并發(fā)的子任務(wù),即將上述任務(wù)四進一步劃分如下:
任務(wù)A:目標(biāo)回波模擬器自主機動運動解算;
任務(wù)B:目標(biāo)回波模擬器回波信號產(chǎn)生;
根據(jù)目標(biāo)回波模擬器工作機理,主動尋的信號經(jīng)過的一系列串行處理滿足流水線技術(shù),可將總?cè)蝿?wù)目標(biāo)回波模擬器回波信號產(chǎn)生分解為4個并發(fā)的子任務(wù),即將上述任務(wù)B進一步劃分如下:
任務(wù)a:接收數(shù)據(jù)轉(zhuǎn)換,完成信號檢測前的所有處理;任務(wù)b:信號檢測(存儲),完成主動尋的信號的提?。蝗蝿?wù)c:信號變換,完成幅度控制,延時,展寬、多普勒頻移等處理;任務(wù)d:發(fā)射數(shù)據(jù)轉(zhuǎn)換,完成回波信號發(fā)射處理。
綜上所述,基于MPI消息傳遞的并行設(shè)計模式,上述每一個子任務(wù)作為一獨立任務(wù)進程實現(xiàn),得到仿真系統(tǒng)的并行設(shè)計示意如圖3所示。
圖3 仿真軟件并行框架示意圖
3.2 仿真分析
文中構(gòu)建的仿真系統(tǒng)使用一臺裝有Red Hat Linux 5.4操作系統(tǒng)的計算機作為模型計算單元,內(nèi)置openmpi3.1.4版本的并行編程環(huán)境,一臺裝有windows操作系統(tǒng)的計算機作為顯控單元,二者構(gòu)成小型局域網(wǎng)仿真試驗平臺。仿真實驗所用計算機配置為Intel Core i7-4710MQ四核八線程處理器,即虛擬八核,每隔一秒分別記錄計算機空閑狀態(tài)、串行仿真和并行仿真時虛擬八核CPU的使用情況,記虛擬八核的標(biāo)號為1~8,隨時間推進,記錄的樣本數(shù)量為,第個樣本CPU總使用率記為Pi,單使用率記為P1i~P8i,N個樣本的單核平均使用率記為,則Pi=(P1i+P2i+P3i+P4i+P5i+P6i+P7i+P8i)/8,其余類似。得到多樣本下CPU總使用率散點圖和一段時間內(nèi)每個核的平均使用率散點圖。
圖4 CPU總使用率隨時間變化圖
圖5 一段時間內(nèi)每個核平均使用率散點圖
圖4 所示3種狀態(tài)下,隨記錄時間的推進,并行的CPU總利用率達到40%左右,串行達到12.9%左右,空閑僅達到4%左右;圖5所示一段時間內(nèi),并行狀態(tài)下,每個虛擬CPU核均得到一定程度的利用,串行狀態(tài)下,僅有部分核的利用率很高,使用不均勻,空閑狀態(tài)下,所有的虛擬CPU核的利用率均很低。綜上可見,并行仿真更能發(fā)揮多核的優(yōu)勢,充分利用硬件資源達到求解相同問題的目的。
3.3 系統(tǒng)并行擴展
并行計算存在多種層次的并行性,可以用并行計算任務(wù)的粒度來描述[13]。本仿真系統(tǒng)的任務(wù)劃分粒度是位于過程級的并行,這一級的并行通常對應(yīng)著過程、子過程,如果在硬件資源平臺允許的情況下,可以進行更細粒度的計算任務(wù)劃分,例如數(shù)據(jù)級的并行,即將程序中的某些循環(huán)操作或矩陣乘法等使用并行實現(xiàn),可進一步加速程序執(zhí)行效率。另外,本仿真實驗僅針對某型產(chǎn)品且數(shù)量為1,在此基礎(chǔ)上,加入更多的仿真實體可擴充為更龐大且復(fù)雜的水聲試驗仿真系統(tǒng),各仿真實體有不同的作戰(zhàn)任務(wù),會執(zhí)行不同的作戰(zhàn)行為,這些作戰(zhàn)行為是并行的,則還可進行任務(wù)級的并行劃分。
逼真的計算機數(shù)學(xué)模型是仿真研究的基礎(chǔ),文中對目標(biāo)回波模擬器的仿真機理和仿真可并行性進行了理論分析,基于并行計算,應(yīng)用并行仿真編程模型搭建了目標(biāo)回波模擬器仿真軟件框架,詳細敘述了軟件中并行任務(wù)的劃分方法和并行擴展方向。CPU使用率散點圖表明該方法可提高仿真效率和資源使用效率。文中為并行計算在各類仿真系統(tǒng)中的應(yīng)用提供仿真支持,對產(chǎn)品研制和水聲對抗試驗研究等具有一定的參考價值。
[1]劉伯勝,雷家煜.水聲學(xué)原理[M].哈爾濱:哈爾濱工程大學(xué)出版社,2009.
[2]周德善.魚雷自導(dǎo)技術(shù)[M].北京:國防工業(yè)出版社,2009.
[3]宋緒棟,劉鵬仲.一種水下多亮點目標(biāo)模擬器的設(shè)計[J].聲學(xué)技術(shù),2012,31(2):188-192.
[4]趙會平,潘剛,徐心和.并行仿真技術(shù)綜述[J].計算機仿真,2003,20(11):118-123.
[5]明星,苑秉成,朱若寒.一種水下目標(biāo)回波模擬器的設(shè)計研究[J].艦船科學(xué)技術(shù),2008,30(2):165-168.
[6]李超,陳子銓.水下運動目標(biāo)模擬器設(shè)計與實現(xiàn)[C]//水聲對抗技術(shù)學(xué)術(shù)交流會,2014.
[7]羅修波,劉淼.聲誘餌回波模擬器仿真研究[J].計算機仿真,2006,23(12):286-288.
[8]范軍,湯渭霖,卓琳凱.聲吶目標(biāo)回聲特性預(yù)報的板塊元方法[J].船舶力學(xué),2012(1):171-180.
[9]董仲臣,李亞安,陳曉.一種基于亮點模型的潛艇回波仿真方法.計算機仿真,2013,30(6):38-41.
[10]王宏力,王忠,鄧方林.大型武器系統(tǒng)六自由度并行仿真研究[J].系統(tǒng)仿真學(xué)報,1998,10(3):8-13.
[11]牛文章.并行算法在系統(tǒng)仿真中的應(yīng)用[J].系統(tǒng)工程與電子技術(shù),1999,21(9):71-73.
[12]陳國良.并行計算-結(jié)構(gòu)算法編程[M].北京:北京高等教育出版社,2000.
[13]楊學(xué)會,黃俊卿,譚亞新,等.作戰(zhàn)并行仿真[M].國防工業(yè)出版社,2014.
[14]都志輝.高性能計算并行編程技術(shù)-MPI并行程序設(shè)計[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并行編程與算法實現(xiàn)研究[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稿件編號:201512177
徐道磊(1989—),男,云南宣威人,碩士研究生,助理工程師。研究方向:水下設(shè)備試驗方法。