• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MPI+OpenMP的雷達信號脈內(nèi)分析并行加速方法

      2023-09-05 01:37:48群,童真,柴
      艦船電子對抗 2023年4期
      關(guān)鍵詞:線程進程編程

      姚 群,童 真,柴 恒

      (中國船舶集團有限公司第七二三研究所,江蘇 揚州 225101)

      0 引 言

      隨著新體制雷達的廣泛使用,現(xiàn)代電子戰(zhàn)面臨的電磁環(huán)境更加復(fù)雜,信號波形復(fù)雜多變,各類脈內(nèi)調(diào)制類型如相位調(diào)制、線性/非線性調(diào)頻、頻率編碼、復(fù)合調(diào)制等調(diào)制類型的雷達信號逐漸增多。傳統(tǒng)的電子偵察(ESM)設(shè)備測量的五大常規(guī)參數(shù)(中心頻率、幅度、脈寬、到達時間和到達角)已經(jīng)無法適應(yīng)當前復(fù)雜電磁環(huán)境下的電子對抗過程中信號分選、目標識別等關(guān)鍵環(huán)節(jié)的需求。雷達信號的脈內(nèi)調(diào)制信息作為雷達信號的重要參數(shù),可以更加詳細地反映雷達信號的本質(zhì)信息,為參數(shù)復(fù)雜多變的新體制雷達信號的分選與識別提供幫助[1]。

      雷達脈內(nèi)分析一般采用中頻數(shù)據(jù),數(shù)據(jù)量大,處理算法復(fù)雜,運算量大,實時性很難滿足,無法有效支援電子戰(zhàn)行動[2-3]。為了充分利用雷達脈內(nèi)調(diào)制特征信息,提高分選和識別的準確性,迫切需要提高脈內(nèi)分析的計算速度,提高脈內(nèi)分析的實時性。

      隨著多核通用計算處理器技術(shù)的高速發(fā)展,高性能多核CPU正逐漸取代數(shù)字信號處理器(DSP)、PowerPC成為電子偵察信號處理領(lǐng)域的主要處理單元,并且進一步向多節(jié)點集群化的方向發(fā)展[4-6]。為了充分發(fā)揮電子偵察信號處理計算平臺的性能,本文開展了基于多節(jié)點多核CPU計算平臺的并行計算技術(shù)研究,根據(jù)雷達信號脈內(nèi)分析處理的特點,提出了一種基于消息傳遞接口+開放式多處理(MPI+OpenMP)的雷達信號脈內(nèi)分析并行計算技術(shù),綜合了 MPI 和OpenMP 并行編程環(huán)境的優(yōu)點,提高了雷達信號脈內(nèi)分析的處理速度。

      1 并行編程模型

      多節(jié)點多核CPU計算平臺屬于對稱多處理(Symmetric Multi-Processing,SMP)架構(gòu),該結(jié)構(gòu)同時具備了節(jié)點內(nèi)共享內(nèi)存與節(jié)點間分布式存儲的層次特點,因此同時支持節(jié)點間消息傳遞和節(jié)點內(nèi)共享內(nèi)存并行編程模型,其中MPI與OpenMP是這2類并行編程模型的代表。

      OpenMP是用于共享內(nèi)存并行化的標準共享內(nèi)存、多處理應(yīng)用程序接口(API)。OpenMP為線程創(chuàng)建、管理和同步提供了一組編譯器指令、環(huán)境變量和運行庫函數(shù),通過fork-join編程模型實現(xiàn)并行性。在此模型中,程序開始作為單個進程或線程順序執(zhí)行,當運行至并行區(qū)域時,創(chuàng)建其他幾個從線程來執(zhí)行并行任務(wù),并行域代碼執(zhí)行完后再回到主線程[7]。OpenMP為程序員提供了更高層的并行編程抽象,只需要在程序中添加編譯指令以及調(diào)用庫函數(shù),就可以在共享內(nèi)存系統(tǒng)中實現(xiàn)高效的并行程序,降低了并行編程的難度和復(fù)雜度,同時具有良好的可移植性。

      MPI是為開發(fā)基于消息傳遞模型的并行程序而制定的工業(yè)標準消息傳遞接口。在并行計算中,多臺計算機或者同一臺計算機內(nèi)的多個處理器核心被稱為一個節(jié)點,共同完成計算任務(wù)。在分布式內(nèi)存系統(tǒng)中,并行計算的最大挑戰(zhàn)是如何同步各個并行節(jié)點的動作,在節(jié)點之間交換數(shù)據(jù)以及對整個并行集群提供命令和控制[8]。MPI為這些任務(wù)定義了一套標準的函數(shù)。MPI的優(yōu)點是高性能、大規(guī)模性和可移植性,是高性能計算的主要模型。

      OpenMP和MPI這2種編程模型可以在同一個程序中使用,適用于由共享和分布式內(nèi)存組成的架構(gòu),如多核處理器集群[9-10]。在OpenMP和MPI混合編程模型中,MPI可用于跨節(jié)點提供過程級并行,而OpenMP可用于通過使用編譯器指令在節(jié)點內(nèi)實現(xiàn)循環(huán)級并行,如圖1所示。在混合編程模型中,OpenMP線程將共享每個節(jié)點的內(nèi)存,因而此時的消耗內(nèi)存總量會遠遠小于使用純MPI進程模型時所占用的內(nèi)存總量,輕量級線程間的通信也因為取代了傳統(tǒng)的MPI進程收發(fā)通信機制而變得更快,并且由于跨節(jié)點間更少的MPI,通信混合模型的可擴展性也因而得到顯著提升。

      圖1 MPI+OpenMP模型

      2 雷達信號脈內(nèi)分析并行處理

      電子偵察雷達信號脈內(nèi)分析架構(gòu)如圖2所示,通常分為兩部分:首先對原始的中頻信號進行數(shù)字化采樣,完成信號檢測,這一部分通常在FPGA處理單元內(nèi)完成;之后將脈沖信號數(shù)據(jù)送至脈內(nèi)分析模塊,獲取脈內(nèi)特征參數(shù)以及常規(guī)參數(shù)(中心頻率、幅度、脈寬、到達時間),生成包含調(diào)制樣式與調(diào)制參數(shù)的脈沖描述字(PDW),供后續(xù)分選識別模塊進一步使用,生成輻射源描述字(EDW),提高其對復(fù)雜環(huán)境的適應(yīng)性。上述流程關(guān)鍵是提升脈內(nèi)分析環(huán)節(jié)處理速度,以滿足實時性要求[11-12]。

      圖2 電子偵察雷達信號脈內(nèi)分析架構(gòu)

      雷達信號脈內(nèi)分析的最主要功能是對脈沖數(shù)據(jù)的調(diào)制類型識別與參數(shù)解調(diào),目前廣泛應(yīng)用的脈內(nèi)分析方法主要分為基于似然函數(shù)的分析算法和基于特征的分析算法?;谒迫缓瘮?shù)的方法計算量大,計算復(fù)雜度高,工程中一般采用基于特征提取的脈內(nèi)分析方法,算法流程如圖3所示。

      圖3 基于特征的脈內(nèi)分析算法

      雷達信號脈內(nèi)分析以一個完整的脈沖數(shù)據(jù)為數(shù)據(jù)分析單元,各個脈沖間的數(shù)據(jù)是相互獨立的[13-14]。因此脈內(nèi)分析功能的并行計算加速根據(jù)并行的粒度不同可分為2種方式:一種是細粒度單脈沖級的加速,即對單個脈沖脈內(nèi)分析的算法流程進行加速;另一種粗粒度加速方式是以脈沖為最小單位進行并行計算。為了獲得最大的單脈沖并行計算性能,細粒度單脈沖級脈內(nèi)分析并行加速需要根據(jù)圖3流程中的算法模塊進行并行化設(shè)計,系統(tǒng)的并行化程度取決于設(shè)計人員對算法的設(shè)計。圖4給出了一種可供參考的單脈沖級別脈內(nèi)分析并行化示意圖,針對脈內(nèi)分析流程中不同處理算法進行相應(yīng)的并行化設(shè)計,輸出包含調(diào)制參數(shù)的單個PDW。單脈沖級的加速方式,理論上可以獲取最小的單脈沖脈內(nèi)分析時延。但是由于脈沖流數(shù)據(jù)量大,該方法會頻繁產(chǎn)生I/O讀取與線程切換,導致處理開銷變大,同時該方式對脈內(nèi)算法分析流程的并行化實現(xiàn)要求極高,設(shè)計難度大,不易于后期算法更新擴展。

      圖4 單脈沖脈內(nèi)分析并行化參考示意圖

      另一種粗粒度加速方式是以脈沖為最小單位進行并行計算,即為每個脈沖的脈內(nèi)分析任務(wù)分配一個線程,并行計算多個脈沖數(shù)據(jù),最終匯總所有脈沖的PDW結(jié)果輸出,如圖5所示。脈內(nèi)分析算法各個脈沖分析計算任務(wù)數(shù)據(jù)完全獨立[15],在并行計算時不需要額外的數(shù)據(jù)通信開銷,該并行方式可以充分發(fā)揮系統(tǒng)并行計算的能力,并且易于后期處理算法的靈活升級。但是該方式需要存儲一段時間的脈沖數(shù)據(jù),因此會引入至少1幀數(shù)據(jù)塊的延遲,而雷達信號分選功能本身就需要累積一段時間的數(shù)據(jù),因此此部分延遲開銷并不影響后續(xù)分選功能。

      圖5 脈沖級脈內(nèi)分析并行化

      綜上所述,實時脈內(nèi)分析針對實時脈沖數(shù)據(jù)流,進行相同的分析處理,各個脈沖數(shù)據(jù)相互獨立,因此本文提出為每個節(jié)點分配1個MPI進程,用于處理一定數(shù)量的脈沖數(shù)據(jù),同時在節(jié)點內(nèi)部利用OpenMP為每個脈沖串分配一個分析線程,實現(xiàn)多線程并行計算,如圖6所示。為了考慮各個節(jié)點的負載均衡性,脈沖串數(shù)據(jù)的分配一般需要考慮數(shù)據(jù)量而非脈沖數(shù)據(jù)個數(shù),具體實現(xiàn)步驟如下:

      圖6 基于MPI+OpenMP的并行脈內(nèi)分析流程

      (1) 在每個節(jié)點上建立MPI進程,并進行必要的初始化;

      (2) 主數(shù)據(jù)節(jié)點的主進程對數(shù)據(jù)進行劃分,通過節(jié)點間通信為每個節(jié)點的MPI進程分配數(shù)據(jù);

      (3) 在每個節(jié)點的MPI進程內(nèi)部,通過 OpenMP 編譯指導語句,對脈沖串數(shù)據(jù)進行脈沖級的多線程并行計算(線程數(shù)量根據(jù)硬件平臺的計算核心數(shù)進行配置);

      (4) 當全部計算完成后,MPI進程結(jié)束,由主節(jié)點進程匯總結(jié)果輸出。

      下面給出混合編程模型實時脈內(nèi)分析的偽代碼:

      MPI_Init();

      MPI_Comm_rank();

      MPI_Comm_size();

      if (myid == 0)//主進程分發(fā)數(shù)據(jù)

      {

      MPI_Send();

      }

      else //其余節(jié)點進程接收數(shù)據(jù)

      {

      MPI_Recv();

      }

      omp_set_num_threads(n);//設(shè)置OpenMP線程數(shù)n

      #pragma omp parallel for //N個脈沖多線程并行

      For i=1:N

      Elint();//脈內(nèi)分析計算

      /*MPI進程通信,結(jié)果匯總至主節(jié)點輸出*/

      MPI_Finalize();

      3 測試結(jié)果

      本文采用的硬件測試平臺為2臺高性能計算服務(wù)器(每臺包含2個Xeon E5-2640 CPU,單個CPU包含8核心,主頻2.6 GHz),即每個節(jié)點共包含16核。軟件環(huán)境為Centos 7操作系統(tǒng),測試程序采用c++編寫,編譯環(huán)境使用gcc-8.3.1,mpich-3.3.2等。

      在單個節(jié)點上,測試了采用OpenMP并行編程模型在不同CPU核心數(shù)的情況下對脈內(nèi)分析算法(常規(guī)參數(shù)測量、調(diào)制識別、調(diào)制參數(shù)解調(diào)等)的加速情況,如圖7所示。其中測試采用常規(guī)信號中頻脈沖數(shù)據(jù),脈沖寬度10 μs,脈沖數(shù)量1 000。

      圖7 單節(jié)點OpenMP/MPI加速比

      由圖7可以看出:單節(jié)點內(nèi)由于不需要進行進程間通信,OpenMP獲得了相對較好的加速性能。但隨著核數(shù)的增多,因為存在多線程資源分配、回收等開銷,加速比并未呈現(xiàn)線性增加的趨勢。因此在實際應(yīng)用中,需要根據(jù)具體處理算法需求,合理分配線程數(shù)以達到最優(yōu)的效率。

      進一步對比單節(jié)點串行計算,單節(jié)點OpenMP并行計算以及兩節(jié)點MPI+OpenMP并行計算的脈內(nèi)分析處理時間,測試結(jié)果如表1所示。其中測試數(shù)據(jù)采用常規(guī)信號(NS)、線性調(diào)頻信號(LFM)、二相編碼信號(BPSK)和四相編碼信號(QPSK)的中頻脈沖數(shù)據(jù),脈沖寬度10 μs,脈沖數(shù)量1 000。

      表1 處理用時對比(單位ms)

      表1中,OpenMP計算時使用單個服務(wù)器、單個進程32線程并行計算,MPI+OpenMP計算時使用2臺服務(wù)器,將計算數(shù)據(jù)平均分配至2個節(jié)點,在每個節(jié)點上采用單進程32線程的并行計算??梢钥闯?在單節(jié)點上采用OpenMP加速能有效提高脈內(nèi)分析的處理速度。在2個節(jié)點間采用MPI+OpenMP時,每個節(jié)點的計算數(shù)據(jù)量降低1倍,但是由于節(jié)點間通信的開銷,導致實際計算速度提升小于2倍。圖8給出了2種并行計算方式對不同調(diào)制類型數(shù)據(jù)的加速比。可以看出:MPI+OpenMP的加速方法對不同調(diào)制類型的加速比達到了15以上。

      圖8 不同調(diào)制類型的加速比

      4 結(jié)束語

      本文提出了一種基于MPI+OpenMP的雷達信號實時脈內(nèi)分析并行計算方法,針對雷達信號脈沖數(shù)據(jù)流,在每個節(jié)點分配MPI進程,在節(jié)點進程的內(nèi)部利用OpenMP為每個脈沖串分配一個線程,實現(xiàn)脈沖級的脈內(nèi)分析并行計算,充分發(fā)揮電子偵察信號處理計算平臺的性能。測試結(jié)果表明,該方法對不同調(diào)制類型信號的處理速度都獲得了較大的提升。該方法實時性好,并且易于擴展,可以為雷達信號脈內(nèi)分析的實時處理提供解決方案。

      猜你喜歡
      線程進程編程
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      債券市場對外開放的進程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      淺談linux多線程協(xié)作
      社會進程中的新聞學探尋
      民主與科學(2014年3期)2014-02-28 11:23:03
      我國高等教育改革進程與反思
      Linux僵死進程的產(chǎn)生與避免
      Linux線程實現(xiàn)技術(shù)研究
      房产| 巧家县| 锡林浩特市| 屏东县| 克拉玛依市| 太湖县| 万安县| 雅安市| 琼结县| 饶阳县| 南京市| 项城市| 浮梁县| 巨野县| 鹤壁市| 民县| 金寨县| 分宜县| 义乌市| 杨浦区| 鄂伦春自治旗| 姜堰市| 铁力市| 清河县| 民勤县| 垫江县| 定南县| 枣强县| 龙南县| 陆良县| 新野县| 营口市| 乃东县| 乌什县| 荥阳市| 离岛区| 茂名市| 麻阳| 黄梅县| 柞水县| 乾安县|