宋 鵬, 解 闖, 李金山??, 譚 軍, 劉 偉, 譚惠文
(1. 中國海洋大學海洋地球科學學院,山東 青島 266100; 2. 中國海洋大學海底科學與探測技術(shù)教育部重點實驗室,山東 青島 266100;3. 中國科學院地質(zhì)與地球物理研究所 中國科學院油氣資源研究重點實驗室,北京 100029; 4. 中國科學院大學,北京 100049)
?
基于MPI+OpenMP的三維聲波方程正演模擬?
宋 鵬1,2, 解 闖1, 李金山1,2??, 譚 軍1,2, 劉 偉3,4, 譚惠文1
(1. 中國海洋大學海洋地球科學學院,山東 青島 266100; 2. 中國海洋大學海底科學與探測技術(shù)教育部重點實驗室,山東 青島 266100;3. 中國科學院地質(zhì)與地球物理研究所 中國科學院油氣資源研究重點實驗室,北京 100029; 4. 中國科學院大學,北京 100049)
針對三維聲波方程數(shù)值模擬的大計算量和大內(nèi)存消耗問題,研究并實現(xiàn)了基于MPI+OpenMP的三維聲波方程數(shù)值模擬并行算法,在PC-Cluster的計算節(jié)點間采用基于MPI的按炮分任務(wù)的多進程并行模式,在計算節(jié)點內(nèi)采用基于OpenMP的按空間分任務(wù)的多線程并行模式,以有效地利用計算和存儲資源。3D-Overthrust模型的實驗結(jié)果顯示,基于MPI+OpenMP的三維聲波方程數(shù)值模擬并行算法的計算效率與基于MPI的按炮分任務(wù)并行計算模式相當,但其內(nèi)存消耗遠遠低于后者,其更適合于基于大模型或?qū)嶋H模型的三維模擬。
三維聲波方程;正演模擬;并行計算;MPI+OpenMP
基于波動方程的地震波正演模擬技術(shù)是研究地震波傳播規(guī)律的有效手段,是地震資料數(shù)據(jù)處理中諸多處理算法的基礎(chǔ),同時其還可用以指導和優(yōu)化觀測系統(tǒng)設(shè)計以及進行地震數(shù)據(jù)處理結(jié)果和地震資料解釋的合理性評價,因此深入研究地震波正演模擬技術(shù)對于提升整個地震勘探的精度具有重要意義。
目前為止,國內(nèi)外學者已對基于波動方程的地震波正演模擬技術(shù)進行了大量的研究工作[1-8],地震波正演模擬算法已趨于成熟,但三維地震數(shù)值模擬由于其數(shù)據(jù)量大、計算量大和內(nèi)存消耗高的特點,尚未在工業(yè)生產(chǎn)中得到廣泛應(yīng)用。當前,微機群(PC-Cluster)已在地震勘探領(lǐng)域得到普及,而GPU機群也在業(yè)界嶄露頭角,借助于高性能計算集群的并行加速能力來解決三維地震波正演模擬的低計算效率問題已成為業(yè)內(nèi)共識,而合理科學地利用計算資源,深入研究并優(yōu)化并行算法以顯著提高三維地震波正演模擬的計算效率將大力推動其服務(wù)于生產(chǎn)的進程。
MPI是當前應(yīng)用較為廣泛的并行編程工具,其具有移植性好、功能強大、使用高效等多種特點[9],國內(nèi)外學者們針對基于MPI的地震波正演模擬并行算法已開展了諸多卓有成效的研究工作[10-14]。基于MPI的地震波正演模擬并行計算模式有兩種,一種是按炮分任務(wù)的并行模式,該模式通常根據(jù)CPU核數(shù)啟動相應(yīng)的進程,每個進程單獨執(zhí)行一炮的計算任務(wù),其避免了進程間的頻繁通信,可獲得極大的計算加速,但其內(nèi)存需求較高(計算機內(nèi)存需大于單炮模擬所需的內(nèi)存要求);另一種是按空間分任務(wù)的并行模式,其將單炮的計算區(qū)域劃分為多個計算任務(wù)并賦予不同的進程執(zhí)行,降低了內(nèi)存消耗,但各個進程需頻繁通信來交換計算區(qū)域邊界上的計算結(jié)果,降低了并行計算效率。由于大模型或?qū)嶋H模型的單炮模擬內(nèi)存消耗較高,因此常規(guī)的按炮分任務(wù)并行模式難以在三維地震波數(shù)值模擬當中得到應(yīng)用,而按空間分任務(wù)的并行模式的應(yīng)用則難以達到令人滿意的并行加速比。
OpenMP是實現(xiàn)多線程并行的應(yīng)用程序編程接口[15]?;贠penMP的并行計算為線程級并行,其通過簡單的高級語言指令即可實現(xiàn)內(nèi)存共享的多線程并行計算,并且其已為大多數(shù)常用的編譯器(GCC、ICC、PGI等)所支持,因此目前OpenMP在并行計算領(lǐng)域已逐漸得到廣泛地關(guān)注?;贠penMP的各個線程由于內(nèi)存共享而避免了線程間的頻繁通訊,由此可保證其計算效率不會受到并行任務(wù)分配模式的影響。
本論文針對基于MPI和OpenMP的并行模式的特點,研究并實現(xiàn)了基于MPI+OpenMP的三維聲波方程的交錯網(wǎng)格有限差分正演模擬并行算法,其在節(jié)點間依然采用基于MPI的按炮分任務(wù)多進程并行模式,但其是根據(jù)計算節(jié)點數(shù)(而非CPU核數(shù))啟動相應(yīng)數(shù)目的進程,而在節(jié)點內(nèi)采用基于OpenMP的按空間分任務(wù)并行模式,根據(jù)節(jié)點內(nèi)CPU核數(shù)啟動相應(yīng)數(shù)目的線程,通過進程和線程的合理配置和管理,既降低三維聲波方程數(shù)值模擬的內(nèi)存消耗,又可通過計算資源的高效利用提高三維聲波方程數(shù)值模擬的計算效率。
1.1 三維聲波方程任意偶數(shù)階精度交錯網(wǎng)格差分格式
笛卡爾坐標系下,三維聲波方程可表示為一階應(yīng)力-速度方程組的形式[4]:
(1)
式中:p為聲壓;v為波速;ρ為密度;Vx、Vy、Vz分別為x、y、z方向上的質(zhì)點振動速度,三維空間一階應(yīng)力-速度方程組通常應(yīng)用交錯網(wǎng)格有限差分方法求解。
采用交錯網(wǎng)格有限差分方法求解(1)式,首先需將(1)式中的各變量進行合理的空間網(wǎng)格剖分(各物理量在交錯網(wǎng)格中的空間位置分布如圖1所示)。
圖1 各變量在交錯網(wǎng)格中的空間分布示意圖Fig.1 The sketch map of spatial distribution of different variables in the staggered grids
根據(jù)各變量的空間分布圖,將p的時間一階微分應(yīng)用二階精度差分格式,在整時間點展開,而將p的空間一階微分按2L(L為正整數(shù))階差分格式在空間半節(jié)點展開,同時將Vx、Vy、Vz在半時間點展開,并將Vx、Vy、Vz的空間一階微分應(yīng)用2L階差分格式在空間整節(jié)點展開,最終可得到三維空間一階速度-壓力聲波方程組的時間二階、空間任意偶數(shù)階精度的交錯網(wǎng)格差分格式[4]:
(2)
式中:αm為2m(m為正整數(shù)且m 1.2 三維聲波方程交錯網(wǎng)格有限差分模擬的PML邊界處理 地震波正演模擬需引入人工邊界來界定計算區(qū)域,而人工邊界若不做特殊處理會產(chǎn)生強邊界反射擾亂中心波場。目前對于人工邊界的處理方法主要有兩種:一種是吸收邊界條件方法[16],其在邊界上應(yīng)用近似外行波方程來模擬外行波傳播以此達到消除邊界反射的目的;另一種是PML(Perfectly Matched Layer)方法[17],其在中心波場計算區(qū)域外加上一系列的完全匹配層,層內(nèi)引入衰減因子,地震波在匹配層之間傳播時其能量按傳播距離的指數(shù)規(guī)律衰減以達到衰減邊界反射的目的。理論上PML方法對于各個入射角度、各個頻率的地震波都有很好的吸收效果,其整體吸收效率要優(yōu)于常規(guī)的吸收邊界條件方法,因此本文采用PML方法進行三維聲波方程數(shù)值模擬的邊界處理。 三維聲波方程的PML邊界處理需在計算區(qū)域的各個面(共6個面)上加上一系列的匹配層,各面的匹配層在每個面的邊界處發(fā)生交叉又會構(gòu)成12條棱區(qū)和8個角點區(qū),因此三維聲波方程的正演模擬的PML區(qū)域共包含6個面區(qū)、12條棱區(qū)和8個角點區(qū)(PML區(qū)域空間分布如圖2所示)。 在PML區(qū)域內(nèi),將p在x、y、z方向上分解為px、py、pz,p=px+py+pz,則各變量在PML區(qū)域中按下式計算[4]: (3) (4) 式中:h表示該層與計算區(qū)域邊界的距離,δ為PML層總厚度,v為波速,R為最外層邊界理論反射系數(shù)(實際中常取0.0001,但隨著PML層的增加,R可以適當減小)。 在PML區(qū)域中,面、棱和角點區(qū)的衰減系數(shù)取值有所不同,在面區(qū),垂直該面方向上的衰減系數(shù)不為零,其它兩個方向上的衰減系數(shù)為零;在棱區(qū),垂直于與該棱相關(guān)的兩個面方向上的衰減系數(shù)不為零,另外一個衰減系數(shù)為零;而在角點區(qū)域,各個方向上的衰減系數(shù)均不為零。 綜合以上,三維聲波方程交錯網(wǎng)格有限差分數(shù)值模擬在中心波場區(qū)域應(yīng)用(2)式進行計算,其是一個外層時間,內(nèi)層三維空間的四層循環(huán),而應(yīng)用(3)式的邊界處理計算同樣也是一個四層循環(huán);此外,波場計算時需兩個三維數(shù)組存放模型的速度和密度,并且由于波場遞推計算的需要,每個變量至少還需一個三維數(shù)組來存放計算結(jié)果,因此三維聲波方程交錯網(wǎng)格有限差分數(shù)值模擬的計算量和內(nèi)存消耗都相當大。 針對三維聲波方程交錯網(wǎng)格有限差分數(shù)值模擬的計算量和內(nèi)存消耗大的問題,本文研究并實現(xiàn)了基于MPI+OpenMP的并行計算模式,通過計算節(jié)點間進程級并行和節(jié)點內(nèi)線程級并行的有機結(jié)合,在有效降低其內(nèi)存消耗的基礎(chǔ)上最大限度地提高三維聲波方程數(shù)值模擬的計算效率。 2.1 基于MPI的節(jié)點間三維聲波方程數(shù)值模擬并行實現(xiàn) MPI是一種消息傳遞并行編程模型標準,其與語言和平臺無關(guān),具有實用、可移植性強且靈活高效等諸多優(yōu)點,是當前應(yīng)用最為廣泛的并行編程環(huán)境。 在MPI并行計算中,進程與進程之間的通訊是一個比較耗費時間的過程,如果進程之間的通訊比較頻繁,加上交換路由的帶寬限制,極易造成網(wǎng)絡(luò)的阻塞,使得大部分時間耗費在進程間相互通訊的等待上,從而不能發(fā)揮并行計算的優(yōu)勢,因此基于MPI的并行計算程序設(shè)計的一個原則是盡量減少進程間的通訊。 當前主流的PC-Cluster通常由幾十個甚至上千個計算節(jié)點組成,每個節(jié)點一般包含若干個(一般為2~8個)CPU核,且各核共用該節(jié)點的內(nèi)存。為敘述方便,這里假設(shè)模擬應(yīng)用的PC-Cluster共有N_node個計算節(jié)點,每個節(jié)點的CPU核數(shù)和內(nèi)存分別為N_core和S,此時理論上采用基于MPI的按炮分任務(wù)的并行模式,可同時啟動N_node*N_core個進程并通過合理的負載均衡設(shè)計而得到理想的并行加速比;但此時每個進程被分配的內(nèi)存僅為S/N_core,極有可能小于單炮模擬的內(nèi)存需求,因此本文在計算節(jié)點間僅根據(jù)節(jié)點數(shù)啟動相應(yīng)數(shù)目的進程,即每個節(jié)點上只啟動一個進程,這樣每個進程可被分配的內(nèi)存為S,由此可最大限度地保證每個進程所分配的內(nèi)存足夠大。 本文基于MPI的三維聲波方程數(shù)值模擬的節(jié)點間進程級并行計算實現(xiàn)步驟如下: (1)調(diào)用MPI_Init,啟動并行環(huán)境; (2)根據(jù)計算節(jié)點的數(shù)量,調(diào)用MPI_Comm_size命令確定進程的個數(shù)(一個節(jié)點執(zhí)行一個進程),同時調(diào)用MPI_Comm_rank命令獲得各進程的標號; (3)各進程分別調(diào)用單炮模擬子程序(基于OpenMP實現(xiàn),詳見下節(jié))實現(xiàn)三維聲波方程波場模擬; (4)各進程調(diào)用MPI_Write,將各進程計算結(jié)果并行寫入炮集文件; (5)調(diào)用MPI_Finalize,結(jié)束并行環(huán)境。 根據(jù)上述步驟實現(xiàn)的三維聲波方程數(shù)值模擬并行計算,在每個節(jié)點上只啟動一個進程,也即每個節(jié)點上只調(diào)用一個CPU核參與計算,因此其可為各個進程提供足夠大的內(nèi)存。當然,該并行模式下每個節(jié)點只有一個CPU核參與運算,也造成了計算資源浪費,為充分利用各個節(jié)點的計算資源,本文在實現(xiàn)了基于MPI的節(jié)點間三維聲波方程數(shù)值模擬并行計算的基礎(chǔ)上,在各個節(jié)點內(nèi)部又根據(jù)各個節(jié)點的CPU核數(shù),基于OpenMP將每個節(jié)點的單進程分解為多個線程,每個CPU核執(zhí)行一個線程,以充分利用計算資源,提高三維聲波方程正演的并行計算效率。 2.2 基于OpenMP的節(jié)點內(nèi)三維聲波方程數(shù)值模擬并行實現(xiàn) OpenMP是由OpenMP Architecture Review Board牽頭提出的,并已被廣泛接受的用于共享內(nèi)存并行系統(tǒng)的多線程程序設(shè)計編譯處理方案,其是基于共享內(nèi)存和線程的支持單指令流多數(shù)據(jù)流的并行編程模型[19],為編寫多線程應(yīng)用程序提供了簡單快捷的途徑,而無需程序員進行復雜的線程創(chuàng)建、同步、銷毀等工作,使得線程級并行的實現(xiàn)變得更加簡單易行。 基于OpenMP的各線程內(nèi)存共享,因此對于三維聲波方程數(shù)值模擬來講,可以應(yīng)用OpenMP將單炮的計算任務(wù)進行線程級任務(wù)劃分,并不需進行頻繁的網(wǎng)絡(luò)通信,由此可保證其計算效率不會受到網(wǎng)絡(luò)堵塞的影響。 OpenMP通常采用引語的方式,對程序的循環(huán)部分進行并行化,但要求用于并行的循環(huán)部分其每次循環(huán)互不相關(guān)。三維聲波方程數(shù)值模擬的計算任務(wù)為一個四層循環(huán)(最外層是時間,內(nèi)層依次為x、y、z方向上的空間循環(huán)),由于每個時間切片上的當前循環(huán)均依賴于上一個時間切片上的計算結(jié)果,即時間循環(huán)中各個時間切片存在相關(guān)性,因此對于時間循環(huán)來講其并不適合于基于OpenMP的并行,但對于內(nèi)層的x、y或z方向上的空間循環(huán),其任兩次循環(huán)之間均不存在相關(guān)性,具備應(yīng)用OpenMP進行并行計算的條件,因此每一層空間循環(huán)都可被指定進行并行計算(本文選擇將x方向的循環(huán)指定為并行運算區(qū)域)。此外,基于OpenMP的并行計算其每次線程的啟動也會需要一定的時間開銷,因此并行計算當中也要盡量避免線程的頻繁啟動和銷毀操作,因此本文將三維聲波方程數(shù)值模擬的線程啟動置于時間循環(huán)層外,在整個單炮模擬過程中僅需進行一次線程的啟動和銷毀。 本文基于OpenMP的節(jié)點內(nèi)三維聲波方程數(shù)值模擬線程級并行計算實現(xiàn)步驟如下: (1)根據(jù)當前節(jié)點的CPU核數(shù),調(diào)用int_omp_set_num_threads函數(shù)設(shè)置當前節(jié)點所啟動線程的數(shù)目(即一個CPU核執(zhí)行一個線程); (2)在時間循環(huán)層外部調(diào)用#pragma omp parallel num_threads語句,將三維聲波方程數(shù)值模擬的四層循環(huán)設(shè)定為并行計算區(qū)域; (3)在時間循環(huán)層外部調(diào)用omp_get thread_num函數(shù),得到當前的線程號,然后通過任務(wù)劃分得到各線程在x方向上對應(yīng)的起止網(wǎng)格點號; (4)將各線程在x方向上的起止網(wǎng)格點號代入x方向的循環(huán)語句中,即可實現(xiàn)沿x方向分任務(wù)的多線程并行計算。 本文基于3D-Overthrust模型進行三維聲波方程的數(shù)值模擬并行計算效率和內(nèi)存消耗測試。3D-Overthrust模型是SEG/EAEG設(shè)計的一個三維地質(zhì)模型,是當前測試三維數(shù)值模擬、成像及反演精度的標準模型。該模型長、寬均為10km,深度為2.325km,空間采樣步長為12.5m,其描述了一個推覆地層在早期形成的擴展斷裂序列上的不整合覆蓋,并且其上覆層頂部為一個復雜的風化帶(3D-Overthrust速度模型如圖3所示,過模型中心垂直于x方向和垂直于y方向的速度切片如圖4所示)。 圖3 3D-Overthrust速度模型Fig.3 3D-Overthrust velocity model 本文應(yīng)用一個包含59個節(jié)點,每個節(jié)點4G內(nèi)存且包含4個核(CPU型號為AMD2.4)的PC-Cluster,分別基于MPI的按炮分任務(wù)并行模式(以下簡稱基于MPI)和基于MPI+OpenMP的并行算法(以下簡稱基于MPI+OpenMP)對3D-Overthrust模型進行一個航次共236炮的數(shù)值模擬。模擬的震源采用主頻為30Hz的雷克子波,時間采樣間隔為0.5ms,模擬時間長度為1.6s。密度采用1500kg/m3的常密度模型,速度模型和密度模型的空間采樣步長均為12.5m。觀測系統(tǒng)為單邊放炮8線接收,每線160道,炮間隔、線間隔、道間隔均為25m,檢波點深度為12.5m。炮點位于第四線和第五線中間,最小偏移距為100m,起始炮點位置位于(4075m,325m,12.5m),X方向和Y方向的模擬孔徑均為500m,每炮模擬最大覆蓋區(qū)域的空間范圍為4075m×1175m×2325m(觀測系統(tǒng)示意如圖5所示,基于該觀測系統(tǒng)數(shù)值模擬所得第160炮單炮記錄如圖6所示)。 ((a)為垂直于x方向的速度切片。(a) is the velocity slice perpendicular to thexdirection;(b)為垂直于y方向的速度切片。(b) is the velocity slice perpendicular to theydirection.) 圖4 過模型中心的速度切片 本文分別基于MPI和基于MPI+OpenMP,對于3D-Overthrust模型的三維聲波方程正演模擬的計算時間和內(nèi)存消耗見表1。 圖5 觀測系統(tǒng)示意圖Fig.5 The sketch map of the acquisition geometry 圖6 第160炮單炮記錄Fig.6 The seismic record of the 160th shot 并行模式Parallelpattern236炮的計算時間/sThecalculatingtimeof236shots每個節(jié)點的內(nèi)存消耗/MThememoryconsnmptionofeachnode基于MPI96121253基于MPI+OpenMP9735315 由表1可知,基于MPI+OpenMP的三維聲波方程數(shù)值模擬其計算效率與基于MPI的按炮分任務(wù)并行模式基本相當,但其內(nèi)存消耗卻僅約為基于MPI的按炮分任務(wù)并行模式的1/4,因此理論上其更適合于大模型或?qū)嶋H數(shù)據(jù)的三維聲波方程數(shù)值模擬。 本文研究并實現(xiàn)了基于MPI+OpenMP并行計算模式的三維聲波方程的交錯網(wǎng)格有限差分數(shù)值模擬并行算法,在節(jié)點間采用基于MPI的按炮分任務(wù)多進程并行模式,在節(jié)點內(nèi)采用基于OpenMP的按空間分任務(wù)并行模式,實現(xiàn)了計算和存儲資源的高效利用。3D-Overthrust實驗結(jié)果顯示,基于MPI+OpenMP的三維聲波方程數(shù)值模擬其計算效率與基于MPI的按炮分任務(wù)并行模式相當,但其內(nèi)存消耗卻大大低于基于MPI的按炮分任務(wù)并行模式,因此基于MPI+OpenMP的并行算法更適合于大模型或?qū)嶋H模型的三維聲波方程數(shù)值模擬,有望推動三維地震波數(shù)值模擬進入大規(guī)模生產(chǎn)領(lǐng)域。 此外,基于MPI+OpenMP的并行算法同樣適應(yīng)于三維彈性波模擬、三維逆時偏移以及三維全波反演等大計算量和大內(nèi)存消耗地球物理問題的并行計算,也同樣適應(yīng)于基于GPU機群的海量數(shù)據(jù)并行計算。 [1] Virieux J. SH-wave propagation in heterogeneous media: velocity-stress finite-difference method[J]. Geophysics, 1984, 49(11): 1933-1942. [2] Virieux J. P-SV wave propagation in heterogeneous media: Velocity-stress finite-difference method[J]. Geophysics, 1986, 51(4): 889-901. [3] 董良國, 馬在田, 曹景忠, 等. 一階彈性波方程交錯網(wǎng)格高階差分解法[J]. 地球物理學報, 2000, 43(3): 411-419. [4] 牟永光, 裴正林. 三維復雜介質(zhì)地震數(shù)值模擬[M]. 北京: 石油工業(yè)出版社, 2005. [5] 井涌泉, 高紅偉, 王維紅. 二維各向同性介質(zhì) P 波和 S 波分離方法研究[J]. 地球物理學進展, 2008, 23(5): 1412-1416. [6] 張會星, 何兵壽, 張晶, 等. 復雜各向異性介質(zhì)中的地震波場有限差分模擬[J]. 煤炭學報, 2008, 33(11): 1257-1262. [7] 孫銀行. 弱各向異性介質(zhì)彈性波的準各向同性近似正演模擬[J]. 地球物理學進展, 2008, 23(4): 1118-1123. [8] 宋鵬, 王修田. 優(yōu)化系數(shù)的四階吸收邊界條件[J]. 中國海洋大學學報 (自然科學版), 2008, 38(2): 251-258. [9] 都志輝. 高性能計算之并行編程技術(shù)—MPI 并行程序設(shè)計[M]. 北京: 清華大學出版社, 2001: 13-15. [10] 王德利, 雍運動, 韓立國, 等. 三維粘彈介質(zhì)地震波場有限差分并行模擬[J]. 西北地震學報, 2007, 29(1): 30-34. [11] 王月英. 基于MPI的三維波動方程有限元法并行正演模擬[J]. 石油物探, 2009, 48(3): 221-225. [12] 何兵壽, 張會星, 韓令賀. 彈性波方程正演的粗粒度并行算法[J]. 地球物理學進展, 2010(2): 650-656. [13] 秦艷芳, 王彥賓. 地震波傳播的三維偽譜和高階有限差分混合方法并行模擬[J]. 地震學報, 2012, 34(2): 147-156. [14] 張明財, 熊章強, 張大洲. 基于MPI的三維瑞雷面波有限差分并行模擬[J]. 石油物探, 2013, 52(4): 354-362. [15] Chandra R, Menon R, Dagum L, ed. Parallel programming in OpenMP[M]. [s.l.]: Morgan Kaufmann, 2001. [16] Enquist B, Madja A. Absorbing boundary conditions for the numerical simulation of wave[J]. Math Comp, 1977, 31: 629-651. [17] Bérenger J P. A perfectly matched layer for the absorption of electromagnetic waves[J]. Journal of Comp Physics, 1998, 114(1): 185-200. [18] Collino F, Tsogka C. Application of the perfectly matched absorbing layer model to the linear elastodynamic problem in anisotropic heterogeneous media[J]. Geophysics, 2001, 66: 294-307. [19] 王恩東, 張清, 沈鉑, 等. MIC高性能計算編程指南[M]. 北京: 中國水利水電出版社, 2012. 責任編輯 徐 環(huán) The 3D Modeling of Acoustic Wave Equation Based on MPI+OpenMP SONG Peng1,2, XIE Chuang1, LI Jin-Shan1,2, TAN Jun1,2, LIU Wei3,4, TAN Hui-Wen1 (1. College of Marine Geo-Science, Ocean University of China, Qingdao 266100, China; 2. Key Lab of Submarine Geosciences and Prospecting Techniques,Ministry of Education, Qingdao 266100, China; 3. Key Laboratory of Petroleum Resources Research, Institute of Geology and Geophysics, Beijing 100029, China; 4. University of Chinese Academy of Sciences, Beijing 100049, China) For the problem of large computational amount and memory consumption of the 3D modeling based on acoustic wave equation, a parallel algorithm based on MPI+OpenMP is studied and implemented in the paper. The algorithm applies the multi-process parallel pattern of task allocation by shots based on MPI among the computing nodes of a PC-Cluster, and uses the multi-thread parallel pattern of task allocation by spaces based on OpenMP within the nodes, so the computational and storage resources can be utilized more effectively. The test of the 3D-Overthrust model shows that the 3D modeling of acoustic wave equation based on MPI+OpenMP has nearly the same computing efficiency as that only based on MPI, but far less memory is needed. Therefore, the parallel algorithm based on MPI+OpenMP is more suitable than that based on MPI for the 3D acoustic wave equation modeling of huge models or real models. 3D acoustic wave equation; forward modeling; parallel computing; MPI+OpenMP 中央高?;究蒲袠I(yè)務(wù)費專項(201513005);國家大學生創(chuàng)新訓練項目(201410423033)資助 2015-01-13; 2015-03-06 宋 鵬(1979-),男,講師,主要從事全波形反演及計算機高性能運算研究。E-mail:pengs@ouc.edu.cn ?? 通訊作者: E-mail:ljs@ouc.edu.cn P631.4 A 1672-5174(2015)09-097-07 10.16441/j.cnki.hdxb.201500082 基于MPI+OpenMP的三維聲波方程數(shù)值模擬并行計算
3 基于MPI+OpenMP的三維聲波方程數(shù)值模擬效果分析
Fig.4 The velocity slices that cross the center of model4 結(jié)論與展望