本發(fā)明涉及地震資料成像領(lǐng)域,更具體地,涉及用于優(yōu)化三維地震波場(chǎng)模擬和成像的方法、用于優(yōu)化三維地震波場(chǎng)模擬和成像的裝置以及優(yōu)化三維地震波場(chǎng)模擬和成像的系統(tǒng)。
背景技術(shù):
三維地震波場(chǎng)模擬計(jì)算方法是地震波成像技術(shù)的基石,地震波場(chǎng)的快速模擬計(jì)算技術(shù)是現(xiàn)代地震波成像技術(shù)的核心。高性能中央處理器cpu,以及由成千上萬(wàn)個(gè)cpu(centralprocessingunit,中央處理器)組成的高性能計(jì)算機(jī)集群,是近年來(lái)人們用來(lái)實(shí)現(xiàn)地震波場(chǎng)模擬的主要工具。最近,采用新型的高性能計(jì)算機(jī)硬件——圖形處理器gpu(graphicprocessingunit,圖形處理器)協(xié)同cpu來(lái)實(shí)現(xiàn)地震波場(chǎng)模擬和成像,是當(dāng)前提高三維地震波場(chǎng)模擬和成像計(jì)算效率的發(fā)展主題方向。與傳統(tǒng)的cpu硬件結(jié)構(gòu)不同,圖形處理器gpu具有更多的計(jì)算單元(例如高達(dá)三位數(shù)甚至更多的核),以及更為復(fù)雜的內(nèi)存體系結(jié)構(gòu)和有限的內(nèi)存資源。
地震波場(chǎng)的模擬和成像方法的實(shí)現(xiàn)基礎(chǔ),都是波動(dòng)方程的數(shù)值模擬算法:
上述波動(dòng)方程的數(shù)值模擬方法的關(guān)鍵在于波場(chǎng)在三維空間的拉普拉斯算子(即二階偏導(dǎo)數(shù))
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提出了一種方法,其能夠充分發(fā)掘gpu多核并行運(yùn)算優(yōu)勢(shì)以實(shí)現(xiàn)三維地震波場(chǎng)模擬和成像。本發(fā)明還提出了相應(yīng)的裝置和系統(tǒng)。
根據(jù)本發(fā)明的一方面,提出了一種用于優(yōu)化三維地震波場(chǎng)模擬和成像的方法,該方法包括:獲取地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息;針對(duì)每個(gè)時(shí)刻的波動(dòng)方程,針對(duì)每個(gè)質(zhì)點(diǎn),調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子。
根據(jù)本發(fā)明的另一方面,提出了一種用于優(yōu)化三維地震波場(chǎng)模擬和成像的方法,該方法包括:
步驟201,開(kāi)始計(jì)算,初始化i=0,然后進(jìn)入步驟202;
步驟202,判斷i<n是否成立,如果成立,進(jìn)入步驟203,否則,結(jié)束計(jì)算;
步驟203,準(zhǔn)備ti時(shí)刻的地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息,然后進(jìn)入步驟204;
步驟204,針對(duì)每個(gè)質(zhì)點(diǎn),調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)在ti時(shí)刻的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子,然后進(jìn)入步驟205;
步驟205,存儲(chǔ)gpu返回的計(jì)算結(jié)果,然后進(jìn)入步驟206;
步驟206,設(shè)置i=i+1,然后返回步驟202。
根據(jù)本發(fā)明的另一方面,提出了一種用于優(yōu)化三維地震波場(chǎng)模擬和成像的裝置,該裝置包括:地震數(shù)據(jù)獲取單元,用于獲取地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息;gpu調(diào)用單元,針對(duì)每個(gè)時(shí)刻的波動(dòng)方程,針對(duì)每個(gè)質(zhì)點(diǎn),用于調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子。
根據(jù)本發(fā)明的另一方面,提出了一種用于優(yōu)化三維地震波場(chǎng)模擬和成像的系統(tǒng),該系統(tǒng)包括cpu和gpu。所述cpu被配置為:獲取地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息;針對(duì)每個(gè)時(shí)刻的波動(dòng)方程,針對(duì)每個(gè)質(zhì)點(diǎn),調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子;存儲(chǔ)gpu返回的計(jì)算結(jié)果。所述gpu被配置為:由所述cpu調(diào)用以計(jì)算質(zhì)點(diǎn)的振動(dòng)位移u在相應(yīng)方向的拉普拉斯算子;返回計(jì)算結(jié)果。
本發(fā)明的各方面,針對(duì)每個(gè)質(zhì)點(diǎn),調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子,充分發(fā)揮gpu線程多的優(yōu)勢(shì),顯著提高了計(jì)算效率,同時(shí)由于每個(gè)gpu只計(jì)算一個(gè)方向上的拉普拉斯算子,而不需要知道質(zhì)點(diǎn)在其他方向的情況,能有效避免由于gpu寄存器數(shù)目有限所帶來(lái)的計(jì)算效率限制。
附圖說(shuō)明
通過(guò)結(jié)合附圖對(duì)本發(fā)明示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本發(fā)明示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。
圖1示出了現(xiàn)有三維地震波場(chǎng)模擬和成像的原理示意圖。
圖2示出了根據(jù)本發(fā)明的三維地震波場(chǎng)模擬和成像的原理示意圖。
圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于優(yōu)化三維地震波場(chǎng)模擬和成像的方法的流程圖。
圖4(a)中示出了現(xiàn)有技術(shù)中調(diào)用gpu時(shí)所需的地震數(shù)據(jù)的三維空間位置示意圖。
圖4(b)示出了本發(fā)明中調(diào)用gpu時(shí)所需的地震數(shù)據(jù)的三維空間位置示意圖。
圖5示出了根據(jù)本發(fā)明的另一實(shí)施例的用于優(yōu)化三維地震波場(chǎng)模擬和成像的方法的流程圖。
圖6(a)示出了在一個(gè)應(yīng)用示例中應(yīng)用現(xiàn)有技術(shù)得到地震波場(chǎng)結(jié)果圖。
圖6(b)示出了在該應(yīng)用示例中應(yīng)用本發(fā)明得到的地震波場(chǎng)結(jié)果圖。
圖7示出了在應(yīng)用本發(fā)明的計(jì)算時(shí)間與應(yīng)用現(xiàn)有技術(shù)的計(jì)算時(shí)間之比。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本發(fā)明的優(yōu)選實(shí)施方式。雖然附圖中顯示了本發(fā)明的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本發(fā)明更加透徹和完整,并且能夠?qū)⒈景l(fā)明的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
先對(duì)本發(fā)明的基本原理進(jìn)行簡(jiǎn)單介紹。圖2示出了根據(jù)本發(fā)明的三維地震波場(chǎng)模擬和成像的原理示意圖。如圖2所示,在本發(fā)明中,針對(duì)每個(gè)質(zhì)點(diǎn),cpu可調(diào)用三個(gè)gpu分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子,可更充分地發(fā)掘gpu的多線程計(jì)算潛力,顯著提高計(jì)算效率、縮短計(jì)算時(shí)間。
實(shí)施例1
圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于優(yōu)化三維地震波場(chǎng)模擬和成像的方法的流程圖。在本實(shí)施例中,該方法包括:
步驟101,獲取地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息;
步驟102,針對(duì)每個(gè)時(shí)刻的波動(dòng)方程,針對(duì)每個(gè)質(zhì)點(diǎn),調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子。
在本實(shí)施例中,通過(guò)調(diào)用三個(gè)gpu線程分別計(jì)算質(zhì)點(diǎn)在三個(gè)方向上的拉普拉斯算子,大大縮短計(jì)算時(shí)間,提高計(jì)算效率。
圖4(a)中示出了現(xiàn)有技術(shù)中調(diào)用gpu時(shí)所需的地震數(shù)據(jù)的三維空間位置示意圖。如圖所示,在現(xiàn)有技術(shù)中,調(diào)用一個(gè)gpu線程通過(guò)數(shù)值模擬方法計(jì)算某個(gè)質(zhì)點(diǎn)(例如質(zhì)點(diǎn)0)的波動(dòng)方程時(shí),除該點(diǎn)的信息外,通常還需要與其相鄰的其他6個(gè)點(diǎn)(例如質(zhì)點(diǎn)1~6)的信息。
圖4(b)示出了本發(fā)明中調(diào)用gpu時(shí)所需的地震數(shù)據(jù)的三維空間位置示意圖。如圖所示,根據(jù)本發(fā)明,由于每個(gè)gpu僅計(jì)算該質(zhì)點(diǎn)在某一維度上的拉普拉斯算子,因此除該點(diǎn)的信息外,每個(gè)線程通常只需要額外的其他2個(gè)點(diǎn)的信息。
因此,在本實(shí)施例的一些可能的實(shí)施方式中,該方法還可以包括:可以分別按照x、y、z三個(gè)方向?qū)λ龅卣饠?shù)據(jù)進(jìn)行排序,按照x、y、z三個(gè)方向排序后的地震數(shù)據(jù)可以被分別提供給用以計(jì)算相應(yīng)方向的拉普拉斯算子的gpu線程。這可帶來(lái)以下好處:
(1)可減少每個(gè)gpu線程中使用的寄存器的數(shù)量。gpu具有多個(gè)線程(三位數(shù)甚至更多),每個(gè)線程中的寄存器的數(shù)量有限,這也成為制約gpu計(jì)算效率的一個(gè)關(guān)鍵因素。相比于現(xiàn)有技術(shù),按不同方向給相應(yīng)gpu提供地震數(shù)據(jù),能顯著節(jié)約gpu中寄存器的使用數(shù)量,有利于進(jìn)一步提高計(jì)算效率。
(2)可提高gpu訪問(wèn)地震數(shù)據(jù)的速度。例如,如圖4(a)所示,某一方向的相鄰質(zhì)點(diǎn)(例如質(zhì)點(diǎn)5、6)可能與其他質(zhì)點(diǎn)(例如質(zhì)點(diǎn)0~4)的存儲(chǔ)位置相距甚遠(yuǎn),導(dǎo)致gpu無(wú)法合并訪問(wèn),從而限制整體計(jì)算效率。按不同方向給相應(yīng)gpu提供地震數(shù)據(jù),使得計(jì)算當(dāng)前質(zhì)點(diǎn)所需的數(shù)據(jù)的存儲(chǔ)位置緊密相鄰,有利于gpu實(shí)現(xiàn)合并訪問(wèn)以提高整體計(jì)算效率。
上述方法可以在cpu中實(shí)施。
實(shí)施例2
圖5示出了根據(jù)本發(fā)明的另一實(shí)施例的用于優(yōu)化三維地震波場(chǎng)模擬和成像的方法的流程圖。在本實(shí)施例中,該方法包括:
步驟201,開(kāi)始計(jì)算,初始化i=0,然后進(jìn)入步驟202;
步驟202,判斷i<n是否成立,如果成立,進(jìn)入步驟203,否則,結(jié)束計(jì)算;
步驟203,準(zhǔn)備ti時(shí)刻的地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息,然后進(jìn)入步驟204;
步驟204,針對(duì)每個(gè)質(zhì)點(diǎn),調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)在ti時(shí)刻的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子,然后進(jìn)入步驟205;
步驟205,存儲(chǔ)gpu返回的計(jì)算結(jié)果,然后進(jìn)入步驟206;
步驟206,設(shè)置i=i+1,然后返回步驟202。
在一種可能的實(shí)施方式中,準(zhǔn)備ti時(shí)刻的地震數(shù)據(jù)可以包括:可以分別按照x、y、z三個(gè)方向?qū)λ龅卣饠?shù)據(jù)進(jìn)行排序,按照x、y、z三個(gè)方向排序后的地震數(shù)據(jù)可以被分別提供給用以計(jì)算相應(yīng)方向的拉普拉斯算子的gpu線程。
上述方法可以在cpu中實(shí)施。
實(shí)施例3
本發(fā)明還公開(kāi)了一種用于優(yōu)化三維地震波場(chǎng)模擬和成像的裝置。在本實(shí)施例中,該裝置包括地震數(shù)據(jù)獲取單元和gpu調(diào)用單元。其中,地震數(shù)據(jù)獲取單元用于獲取地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息。針對(duì)每個(gè)時(shí)刻的波動(dòng)方程,針對(duì)每個(gè)質(zhì)點(diǎn),gpu調(diào)用單元用于調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子。
在一種可能的實(shí)施方式中,該裝置還可包括地震數(shù)據(jù)排序單元。地震數(shù)據(jù)排序單元可用于分別按照x、y、z三個(gè)方向?qū)λ龅卣饠?shù)據(jù)進(jìn)行排序,按照x、y、z三個(gè)方向排序后的地震數(shù)據(jù)可以被分別提供給用以計(jì)算相應(yīng)方向的拉普拉斯算子的gpu線程。
實(shí)施例4
本發(fā)明還公開(kāi)了一種用于優(yōu)化三維地震波場(chǎng)模擬和成像的系統(tǒng)。該系統(tǒng)包括cpu和gpu。所述cpu被配置為:獲取地震數(shù)據(jù),所述地震數(shù)據(jù)包括多個(gè)質(zhì)點(diǎn)的振動(dòng)位移u以及每個(gè)質(zhì)點(diǎn)的三維空間位置信息;針對(duì)每個(gè)時(shí)刻的波動(dòng)方程,針對(duì)每個(gè)質(zhì)點(diǎn),調(diào)用三個(gè)gpu線程分別計(jì)算該質(zhì)點(diǎn)的振動(dòng)位移u在三維空間的x、y、z三個(gè)方向的拉普拉斯算子;存儲(chǔ)gpu返回的計(jì)算結(jié)果。gpu被配置為:由所述cpu調(diào)用以計(jì)算質(zhì)點(diǎn)的振動(dòng)位移u在相應(yīng)方向的拉普拉斯算子;返回計(jì)算結(jié)果。
在一些可能的實(shí)施方式中,上述cpu還可以被配置為:可以分別按照x、y、z三個(gè)方向?qū)λ龅卣饠?shù)據(jù)進(jìn)行排序,按照x、y、z三個(gè)方向排序后的地震數(shù)據(jù)可以被分別提供給用以計(jì)算相應(yīng)方向的拉普拉斯算子的gpu線程。
應(yīng)用示例
為便于理解本發(fā)明實(shí)施例的方案及其效果,以下給出一個(gè)具體應(yīng)用示例。本領(lǐng)域技術(shù)人員應(yīng)理解,該示例僅為了便于理解本發(fā)明,其任何具體細(xì)節(jié)并非意在以任何方式限制本發(fā)明。
在一個(gè)應(yīng)用示例中,采用256x256x256的三維計(jì)算網(wǎng)格,在相同gpu上執(zhí)行了2000步波場(chǎng)模擬運(yùn)算,應(yīng)用現(xiàn)有技術(shù)和應(yīng)用本發(fā)明得到的地震波場(chǎng)示意圖分別如圖6(a)和圖6(b)所示??梢钥闯龆叩玫降牡卣鸩▓?chǎng)模擬結(jié)果是一致的,但相比于現(xiàn)有技術(shù),應(yīng)用本發(fā)明可減少約36%的計(jì)算時(shí)間。
圖7示出了在應(yīng)用本發(fā)明的計(jì)算時(shí)間與應(yīng)用現(xiàn)有技術(shù)的計(jì)算時(shí)間之比,其中橫坐標(biāo)表示網(wǎng)格數(shù),縱坐標(biāo)表示計(jì)算時(shí)間的比值??梢钥闯觯?dāng)整體三維網(wǎng)格數(shù)為1x107時(shí),前者所需的計(jì)算時(shí)間為后者的67%。并且隨著計(jì)算量進(jìn)一步加大,本發(fā)明的計(jì)算優(yōu)勢(shì)更為明顯,當(dāng)整體三維網(wǎng)格數(shù)為1x109時(shí),前者所需的計(jì)算時(shí)間為后者的58%。
以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說(shuō)明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說(shuō)明的各實(shí)施例的范圍和精神的情況下,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)許多修改和變更都是顯而易見(jiàn)的。本文中所用術(shù)語(yǔ)的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)的改進(jìn),或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。