999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenMP的電磁場FDTD多核并行程序設(shè)計(jì)

2013-04-12 00:00:00呂忠亭張玉強(qiáng)崔巍
現(xiàn)代電子技術(shù) 2013年23期

摘 要: 探討了基于OpenMP的電磁場FDTD多核并行程序設(shè)計(jì)的方法,以期實(shí)現(xiàn)該方法在更復(fù)雜的算法中應(yīng)用具有更理想的性能提升。針對一個一維電磁場FDTD算法問題,對其計(jì)算方法與過程做了簡單描述。在Fortran語言環(huán)境中,采用OpenMP+細(xì)粒度并行的方式實(shí)現(xiàn)了并行化,即只對循環(huán)部分進(jìn)行并行計(jì)算,并將該并行方法在一個三維瞬態(tài)場電偶極子輻射FDTD程序中進(jìn)行了驗(yàn)證。該并行算法取得了較其他并行FDTD算法更快的加速比和更高的效率。結(jié)果表明基于OpenMP的電磁場FDTD并行算法具有非常好的加速比和效率。

關(guān)鍵詞: OpenMP; 時(shí)域有限差分法; 多核并行程序; 程序設(shè)計(jì)

中圖分類號: TN710?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2013)23?0168?03

Design of electromagnetic field FDTD multi?core parallel program based on OpenMP

Lü Zhong?ting, ZHANG Yu?qiang, CUI Wei

(College of Physics and Electronic Information, Yan’an University, Yan’an 716000, China)

Abstract: The method of the electromagnetic field FDTD multi?core parallel programm design based on OpenMP is discussed, in order to implement ideal performance improvement of this method in the application of more sophisticated algorithms. Aiming at a problem existing in one?dimensional electromagnetic FDTD algorithm, its calculation method and process are described briefly. In Fortran language environment, the parallelism is achieved with OpenMP technology and fine?grained parallel way, that is, the parallel computation is performed only for the cycle part. The parallel method was verified in a three?dimensional transient electromagnetic field FDTD program for dipole radiation. The parallel algorithm has achieved faster speedup and higher efficiency than other parallel FDTD algoritms. The results indicate that the electromagnetic field FDTD parallel algorithm based on OpenMP has a good speedup and efficiency.

Keywords: OpenMP; FDTD; multi?core parallel program; program design

0 引 言

隨著多核技術(shù)的不斷發(fā)展,并行方法已經(jīng)成為一種處理較大規(guī)模問題的手段,同時(shí)在許多領(lǐng)域取得了成功地應(yīng)用。目前,并行算法的實(shí)現(xiàn)主要基于兩種標(biāo)準(zhǔn):MPI[1](Message Passing Interface)是一種基于消息傳遞并行編程模型的工業(yè)標(biāo)準(zhǔn),主要用于分布存儲體系結(jié)構(gòu)的現(xiàn)實(shí),是已被證實(shí)了的理想的程序設(shè)計(jì)模型;OpenMP標(biāo)準(zhǔn),主要用于共享存儲體系結(jié)構(gòu)的并行編程,可實(shí)現(xiàn)在SMP集群系統(tǒng)內(nèi)多處理器的多線程并行計(jì)算[2]。OpenMP是一個應(yīng)用程序接口,通過規(guī)范一系列的編程制導(dǎo)、運(yùn)行庫函數(shù)和環(huán)境變量來說明共享存儲體系結(jié)構(gòu)的并行機(jī)制,通常由于其較低的開銷和相對較簡單的編程而受到人們廣泛的關(guān)注。

時(shí)域有限差分(FDTD)方法是模擬計(jì)算電磁場的一種基本算法[3]。自1966年Yee首次提出以來,經(jīng)過半個多世紀(jì)的發(fā)展,這一方法得到迅速發(fā)展和廣泛應(yīng)用。但是時(shí)域有限差分算法通常由于其串行方式使問題本身復(fù)雜化且運(yùn)算較費(fèi)時(shí)間而采用并行方式計(jì)算。因此,在PC機(jī)上研究并行FDTD算法問題,具有重要的理論與現(xiàn)實(shí)意義,可為大規(guī)模工程問題的并行化處理提供一定的方法借鑒與理論依據(jù)。本文以一維平面波在自由空間中的傳播為例,討論了采用OpenMP技術(shù)對電磁場FDTD算法程序?qū)崿F(xiàn)并行化的方法,并將該并行方法在三維瞬態(tài)場電偶極子輻射FDTD程序中進(jìn)行了驗(yàn)證,也相當(dāng)于對該并行方法進(jìn)行了一定的推廣,并通過實(shí)驗(yàn)證明了該并行計(jì)算的有效性。

1 電磁場理論簡介

FDTD方法[4]由微分形式的麥克斯韋(Maxwell)旋度方程出發(fā)進(jìn)行離散而得到的一組時(shí)域推進(jìn)公式。一維情況下,設(shè)TEM波沿[z]軸方向傳播,介質(zhì)參數(shù)和場量均與[x,y]無關(guān),即[??x=0, ??y=0],于是Maxwell方程為:

[-?Hy?z=ε?Ex?t+σEx]

[?Ex?z=-μ?Hy?t-σmH]

一維情況[E]、[H]分量空間節(jié)點(diǎn)取樣如圖1所示。

圖1 一維情況[E]、[H]分量空間節(jié)點(diǎn)取樣

在自由空間中,[σ=σm=0],介質(zhì)為無耗,故而可得場的FDTD迭代方程為:

[En+1xk=Enxk-ΔtεΔzHn+12yk+12-Hn+12yk-12]

[Hn+12yk+12=Hn-12yk+12-ΔtμΔzEnxk+1-Enxk]

為了滿足數(shù)值計(jì)算的Courant穩(wěn)定性條件,通常選取時(shí)間步長為[Δt=δ2c≤δc,]空間間隔為[δ=λN,][N≥8,]FDTD截?cái)噙吔鐥l件采用一階近似Mur,設(shè)截?cái)噙吔缣帪閇Ex]節(jié)點(diǎn),如圖2所示,則在[Ex]節(jié)點(diǎn)處離散,得:

[En+1xk=Enxk-1+cΔt-ΔzcΔt+ΔzEn+1xk-1-Enxk]

式中:[Exk-1]為截?cái)噙吔鐑?nèi)的節(jié)點(diǎn);[c]在真空中為光速[c0,]在介質(zhì)中則為截?cái)噙吔缣幉ǖ膫鞑ニ俣取?/p>

圖2 一維截?cái)噙吔?/p>

激勵源采用高斯脈沖源,其表達(dá)式為[Ei(t)=][exp-4π(t-t0)2τ2],其中[τ]為常數(shù),決定了高斯脈沖的寬度。為了使入射波限制在空間有限區(qū)域,根據(jù)等效原理,在區(qū)域分界面上設(shè)置等效面電磁流,并設(shè)分界面外的場為零。所以,在總場?散射場區(qū)的分界面上(總場邊界)設(shè)置入射波電磁場的切向分量便可將入射波只引入到總場區(qū)。本實(shí)驗(yàn)通過在一維FDTD的總場邊界處引入高斯脈沖波,如圖3所示。

圖3 一維FDTD的總場邊界

2 OpenMP并行設(shè)計(jì)

2.1 OpenMP概述

OpenMP是基于共享存儲體系結(jié)構(gòu)的工業(yè)標(biāo)準(zhǔn),它不是一門獨(dú)立的語言,而是對基本語言的擴(kuò)展,如C/C++,F(xiàn)ortran語言[5]。其編程簡單,開銷小,規(guī)范并制定了一系列的編譯指導(dǎo)語句、運(yùn)行庫函數(shù)和環(huán)境變量。對于傳統(tǒng)的串行代碼,采用OpenMP技術(shù)并行化時(shí)無需對原程序作大的改動,只需加入一些簡單的編譯指導(dǎo)語句即可。同時(shí),OpenMP提供了兩種粒度的并行方式:粗粒度并行和細(xì)粒度并行。OpenMP的細(xì)粒度并行[6]是指利用OpenMP只求解循環(huán)部分計(jì)算,又稱為循環(huán)級并行。由此可見,細(xì)粒度并行是一種最為簡單的并行方法。

2.2 OpenMP并行編程模型

OpenMP采用標(biāo)準(zhǔn)的并行模式——Fork/Join式并行執(zhí)行模式,如圖4所示,在編譯過程中使用編譯指導(dǎo)語句實(shí)現(xiàn)并行化。在程序開始執(zhí)行時(shí),只有主線程的運(yùn)行線程存在,在執(zhí)行的過程中,若遇到OpenMP的指令要求并行執(zhí)行時(shí),主線程會派生出子線程來執(zhí)行并行任務(wù)。在并行執(zhí)行的過程中,由主線程與派生出的子線程組成一個線程組來協(xié)同工作。在并行執(zhí)行結(jié)束后,派生出的子線程退出或掛起,不再工作,控制流程回到單獨(dú)的主線程中,直到下一個并行區(qū)或者程序執(zhí)行完畢。

圖4 Fork/Join并行模型

2.3 FDTD算法的并行化

在用FDTD算法模擬計(jì)算電磁場的過程中,時(shí)間步長上的迭代過程是相關(guān)聯(lián)的、互相影響的,故而不能實(shí)現(xiàn)并行化。但是在一次迭代內(nèi)部,電場與磁場的計(jì)算僅需要前一時(shí)刻的計(jì)算結(jié)果,與其他區(qū)域的電場或者磁場分量無關(guān),各個計(jì)算過程之間沒有影響、相互獨(dú)立,可以實(shí)現(xiàn)并行化。為此,本文采用OpenMP提供的細(xì)粒度并行的方式對該算法實(shí)現(xiàn)并行化,即OpenMP+細(xì)粒度并行。

3 并行FDTD性能分析

3.1 仿真算例設(shè)計(jì)

為驗(yàn)證FDTD算法并行的性能,以電磁波在自由空間中傳播的一維FDTD算法為例,采用OpenMP提供的細(xì)粒度技術(shù)實(shí)現(xiàn)并行化。激勵源采用Gauss脈沖源,其帶寬為10 GHz,[τ=]0.2 ns,[t0=0.8?τ=]0.16 ns,總場邊界為[z0=][500Δz]處,[Δt=τ80=]0.002 5 ns,[Δt=dz2c,]吸收邊界采用一階近似Mur,波傳播的空間區(qū)域?yàn)楣?jié)點(diǎn)1~1 000。用統(tǒng)計(jì)的方法,分別測量了2 000~10 000之間不同迭代次數(shù)的串并行時(shí)間。

3.2 并行性能測試

并行程序性能測試可由并行算法的加速比和并行效率來衡量[7],假設(shè)有[n]個并行部件,則對加速比、效率的定義如下:

(1)加速比speedup=單一計(jì)算機(jī)運(yùn)行整個程序[所花費(fèi)時(shí)間同一臺計(jì)算機(jī)使用][n]個并行部件的執(zhí)行時(shí)間;

(2)效率efficiency=[speedupn。]

程序串并行的運(yùn)行時(shí)間由OpenMP庫函數(shù)提供的OMP_get_wtime()函數(shù)來測量。具體地,在測量串行程序運(yùn)行時(shí)間時(shí),注釋掉了程序中的并行編譯指導(dǎo)語句,并保持時(shí)間函數(shù)的位置不變。本文采用多次運(yùn)行程序取穩(wěn)定值的方法,分別測量并記錄了不同迭代次數(shù)下的程序串并行運(yùn)行時(shí)間。

3.3 測試環(huán)境

測試環(huán)境為Intel(R) Core(TM) 2 Duo CPU T5670@1.8 GHz,內(nèi)存為2 GB,操作系統(tǒng)為WinXP SP3,開發(fā)軟件為Intel Fortran 10.1.014 with vs 2005,測試結(jié)果如表1所示。

表1 并行算法加速比與效率

[迭代次數(shù)\串行運(yùn)行時(shí)間 /s\并行運(yùn)行時(shí)間 /s\加速比\效率\2 000\0.625 488 3\0.336 242 7\1.860 \ 0.930\3 000\0.787 109 4\0.428 405 8\1.837\0.919\4 000\ 0.945 312 5\0.578 308 1\1.635\0.817\5 000\1.127 411\ 0.674 499 5\1.672\0.836\6 000\1.294 922\0.784 240 7\1.651\0.826\7 000\1.467 773\0.869 751 0\1.688\0.844\8 000\1.647 461 \0.948 608 4\1.737\0.868\9 000\1.821 777\1.069 580\1.703\0.852\10 000\2.032 227\1.232 300\1.649\0.825\]

3.4 并行方法驗(yàn)證

為了驗(yàn)證本文所采用的OpenMP并行算法的可行性,將該并行方法應(yīng)用于三維瞬態(tài)場電偶極子輻射FDTD程序中。設(shè)整個計(jì)算域空間為真空,垂直點(diǎn)偶極子位于計(jì)算域中心,即[Ez](0,0,0),F(xiàn)DTD計(jì)算空間步長為5 cm,時(shí)間步長為83.333 ps,計(jì)算域?yàn)?5×55×55個元胞,截?cái)噙吔鐬镸ur吸收邊界,輻射源為高斯脈沖,測量并記錄了300~10 000之間不同迭代次數(shù)的串并行時(shí)間,測量結(jié)果見表2。

4 結(jié) 論

本文從分析OpenMP本身的特點(diǎn)及編程模型入手,結(jié)合一維FDTD算法實(shí)例,采用OpenMP+細(xì)粒度并行的方式實(shí)現(xiàn)了并行化,并證明了基于OpenMP的并行FDTD算法的有效性,而且并行FDTD算法在所選測試實(shí)例的不同迭代次數(shù)上均獲得了超線性的加速比。充分利用了OpenMP共享存儲體系結(jié)構(gòu)的特點(diǎn),避免了消息傳遞帶來的開銷,取得了較其他并行FDTD算法更快加速比和更高的效率。更值得一提的是,將該并行方法應(yīng)用在三維電磁場FDTD程序中也取得了很好的加速比和效率,可以預(yù)見,該優(yōu)化方法在更復(fù)雜的算法中應(yīng)用一定具有更理想的性能提升。但不足之處在于系統(tǒng)的可擴(kuò)展性差,這是由于OpenMP本身的特點(diǎn)所限制。因此,今后的工作將放在對基于SMP機(jī)群的MPI與OpenMP混合編程模型的研究,從而克服系統(tǒng)擴(kuò)展性差的缺點(diǎn),進(jìn)而提升系統(tǒng)的易用性和可移植性。

表2 3D程序中的加速比與效率

[迭代次數(shù)\串行運(yùn)行時(shí)間 /s\并行運(yùn)行時(shí)間 /s\加速比\效率\300\2.056 979\0.552 468 0\3.723\1.862\500\3.375 049\0.810 813 7\ 4.163\2.081\700\ 4.582 965\1.070 792 \4.280\2.140\900\5.941 251\ 1.335 628\ 4.448\2.224\1 000\6.552 726\1.453 520\4.508\2.254\2 000\13.277 06\2.747 422\4.833\2.416\3 000\19.400 20 \4.025 004\4.820\2.410\5 000\32.496 27\6.635 254\4.898\2.449\10 000\66.070 61\13.136 30\5.030\2.515\]

參考文獻(xiàn)

[1] 李正浩,周俊,劉大剛.基于OpenMP的電磁場FDTD并行程序性能分析[J].現(xiàn)代電子技術(shù),2008,31(5):135?136.

[2] Anon. OpenMP application program interface, version 2.5 [EB/OL]. [2005?05?20]. http://www.openmp.org.

[3] WU Yan, LIN Min, WASSELL I J. Modified 2D finite?difference time?domain based tunnle path loss prediction for wireless sensor network application [J]. Journal of Communications, 2009, 5: 214?215.

[4] 葛德彪,閆玉波.電磁波時(shí)域有限差分方法[M].3版.西安:西安電子科技大學(xué)出版社,2011.

[5] 吳少剛,章隆兵,蔡飛,等.集群OpenMP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)學(xué)報(bào),2004(7):905?906.

[6] 潘衛(wèi),陳燎原,張錦華,等.基于SMP的MPI+OpenMP混合編程模型研究[J].計(jì)算機(jī)應(yīng)用研究,2009(12):4593?4594.

[7] 徐藻,王毅,李琳,等.基于MPI的FDTD并行算法及其優(yōu)化策略[J].計(jì)算機(jī)仿真,2009(3):123?125.

作者簡介:呂忠亭 男,1988年出生,陜西榆林人,在讀碩士研究生。主要研究方向?yàn)樾畔鬏敿巴ㄐ判盘柼幚怼?/p>

主站蜘蛛池模板: 丁香六月综合网| 人人91人人澡人人妻人人爽| 国产自在线拍| av在线5g无码天天| 亚洲无码37.| 九九线精品视频在线观看| 久久综合丝袜长腿丝袜| 亚洲日本在线免费观看| 在线日韩一区二区| 国产精品页| 69综合网| 免费Aⅴ片在线观看蜜芽Tⅴ| 欧美怡红院视频一区二区三区| 国产91丝袜| 色综合久久无码网| 在线观看欧美精品二区| 成AV人片一区二区三区久久| 国产精品冒白浆免费视频| 久久国产亚洲偷自| 国产区免费精品视频| 亚洲精品在线91| 亚洲天堂日本| 天堂在线亚洲| 国产极品美女在线播放| 成人一区在线| 欧美人人干| 亚洲午夜国产片在线观看| 丁香五月激情图片| 中文字幕亚洲综久久2021| 色婷婷色丁香| 亚洲成人黄色在线| 亚洲第一成网站| 欧美精品H在线播放| 久久久成年黄色视频| 国产麻豆精品久久一二三| 精品久久蜜桃| 国产最爽的乱婬视频国语对白| 毛片视频网| 色窝窝免费一区二区三区| 国产福利影院在线观看| 日韩毛片免费| 日韩精品亚洲人旧成在线| 亚洲高清资源| 国产午夜精品一区二区三区软件| 亚洲第一色网站| 久久香蕉国产线看观看亚洲片| 在线观看国产黄色| 九九视频免费在线观看| 在线无码av一区二区三区| 亚洲午夜天堂| 国产精品19p| 99久久国产综合精品女同| 日本国产精品一区久久久| 天堂在线www网亚洲| 国产99视频精品免费观看9e| 国产高清免费午夜在线视频| 欧美国产日本高清不卡| 日韩资源站| 亚洲黄网视频| 人妻中文字幕无码久久一区| 国产va免费精品观看| 国产乱码精品一区二区三区中文 | 亚洲无码91视频| 久久国产精品电影| 色悠久久综合| 亚洲av色吊丝无码| 91无码人妻精品一区二区蜜桃| 色婷婷国产精品视频| 欧美成在线视频| 亚洲日韩国产精品无码专区| 丁香亚洲综合五月天婷婷| 综合色天天| 日本不卡在线播放| 亚洲人成高清| 国产精品第一区| 国产成人精品无码一区二| 国产精品亚洲天堂| 日韩精品欧美国产在线| 亚洲欧美不卡视频| 亚洲日本中文综合在线| 狠狠v日韩v欧美v| 国产自无码视频在线观看|