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