本發(fā)明涉及地質(zhì)勘探
技術(shù)領(lǐng)域:
,特別涉及一種疊前時(shí)間偏移方法和裝置。
背景技術(shù):
:疊前時(shí)間偏移技術(shù)是地震資料處理技術(shù)之一,它能提供時(shí)間域中人們可見的最為準(zhǔn)確的地震構(gòu)造成像資料,在發(fā)現(xiàn)規(guī)模油田中有著十分重要的作用。隨著地震勘探正在邁入PB級(jí)數(shù)據(jù)時(shí)代,地震資料的處理周期越來越長,其中,疊前時(shí)間偏移是地震資料處理中最為費(fèi)時(shí)的環(huán)節(jié),一般需要占據(jù)整個(gè)處理周期的40%左右的時(shí)間。然而,由于疊前時(shí)間偏移輸入和輸出數(shù)據(jù)存在多對(duì)多的依賴關(guān)系,業(yè)界一直認(rèn)為疊前時(shí)間偏移并行算法是數(shù)據(jù)依賴型,因而發(fā)展了兩種獨(dú)立的并行算法:輸入道和輸出道算法。由于兩者都存在地震數(shù)據(jù)網(wǎng)絡(luò)流量巨大之致命缺陷,并行硬件規(guī)模被限制在100個(gè)節(jié)點(diǎn)附近,這就是疊前時(shí)間偏移處理周期長的根本原因。針對(duì)上述問題,目前尚未提出有效的解決方案。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供了一種疊前時(shí)間偏移方法,以提高疊前時(shí)間偏移效率,該方法包括:將PSTM處理的輸入數(shù)據(jù)映射到四維坐標(biāo)空間內(nèi)得到輸入地震數(shù)據(jù),其中,所述四維坐標(biāo)空間包括:CMPline、CMP、記錄時(shí)間和炮檢距;對(duì)所述輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集;確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù);按照一個(gè)或多個(gè)炮檢距區(qū)間數(shù)據(jù)子集與一個(gè)炮檢距對(duì)應(yīng)作為一個(gè)疊前時(shí)間偏移計(jì)算任務(wù)的方式進(jìn)行劃分,得到與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù);將參與計(jì)算的節(jié)點(diǎn)劃分為多個(gè)計(jì)算節(jié)點(diǎn)組;按照下述三級(jí)方法進(jìn)行并行任務(wù)分配:在節(jié)點(diǎn)組之間采用共炮檢距并行算法:一個(gè)計(jì)算節(jié)點(diǎn)組一次分配一個(gè)計(jì)算任務(wù)的方式;在一個(gè)節(jié)點(diǎn)組內(nèi)各節(jié)點(diǎn)之間采用輸出道疊前時(shí)間偏移并行算法;在節(jié)點(diǎn)內(nèi)多核之間采用輸入道疊前時(shí)間偏移并行算法。在一個(gè)實(shí)施方式中,計(jì)算節(jié)點(diǎn)組對(duì)分配的計(jì)算任務(wù)進(jìn)行處理包括:將分配至該計(jì)算節(jié)點(diǎn)組的計(jì)算任務(wù)的所有輸入地震數(shù)據(jù)按照地震道數(shù)為單位,在計(jì)算節(jié)點(diǎn)組內(nèi)的各個(gè)計(jì)算節(jié)點(diǎn)中進(jìn)行均分;各個(gè)計(jì)算節(jié)點(diǎn)獨(dú)自完成分配至自身的計(jì)算任務(wù)。在一個(gè)實(shí)施方式中,計(jì)算節(jié)點(diǎn)為多核計(jì)算單元,且多核共享該計(jì)算節(jié)點(diǎn)的內(nèi)存資源,各個(gè)計(jì)算節(jié)點(diǎn)獨(dú)自完成分配至自身的計(jì)算任務(wù),包括:計(jì)算節(jié)點(diǎn)內(nèi)的多個(gè)核之間,采用輸入道疊前時(shí)間偏移并行算法完成分配至該計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)。在一個(gè)實(shí)施方式中,所述多個(gè)炮檢距區(qū)間數(shù)據(jù)子集中各個(gè)數(shù)據(jù)子集是單獨(dú)存放的。在一個(gè)實(shí)施方式中,對(duì)所述輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集,包括:以5米作為一個(gè)炮檢距間隔,對(duì)所述輸入地震數(shù)據(jù)進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集。在一個(gè)實(shí)施方式中,對(duì)所述輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集,包括:按照以下公式計(jì)算炮檢距區(qū)間數(shù)據(jù)子集的個(gè)數(shù):j=(max_offset-min_offset)/5+1其中,j表示炮檢距區(qū)間數(shù)據(jù)子集的個(gè)數(shù),min_offset表示輸入數(shù)據(jù)中的最小炮檢距,max_offset表示輸入數(shù)據(jù)中的最大炮檢距。在一個(gè)實(shí)施方式中,按照以下公式確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù):k=(max_offset-min_offset)/offset_inc其中,k表示輸出數(shù)據(jù)集的炮檢距個(gè)數(shù),min_offset表示作業(yè)參數(shù)中的最小炮檢距,max_offset表示作業(yè)參數(shù)中的最大炮檢距,offset_inc表示作業(yè)參數(shù)中的炮檢距增量。本發(fā)明實(shí)施例還提供了一種疊前時(shí)間偏移裝置,該裝置包括:映射模塊,用于將PSTM處理的輸入數(shù)據(jù)映射到四維坐標(biāo)空間內(nèi)得到輸入地震數(shù)據(jù),其中,所述四維坐標(biāo)空間包括:CMPline、CMP、記錄時(shí)間和炮檢距;分解模塊,用于對(duì)所述輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集;確定模塊,用于確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù);第一劃分模塊,用于按照一個(gè)或多個(gè)炮檢距區(qū)間數(shù)據(jù)子集與一個(gè)炮檢距對(duì)應(yīng)作為一個(gè)疊前時(shí)間偏移計(jì)算任務(wù)的方式進(jìn)行劃分,得到與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù);第二劃分模塊,用于將參與計(jì)算的節(jié)點(diǎn)劃分為多個(gè)計(jì)算節(jié)點(diǎn)組;任務(wù)分配模塊:用于按照下述三級(jí)方法進(jìn)行并行任務(wù)分配:在節(jié)點(diǎn)組之間采用共炮檢距并行算法:一個(gè)計(jì)算節(jié)點(diǎn)組一次分配一個(gè)計(jì)算任務(wù)的方式;在一個(gè)節(jié)點(diǎn)組內(nèi)各節(jié)點(diǎn)之間采用輸出道疊前時(shí)間偏移并行算法;在節(jié)點(diǎn)內(nèi)多核之間采用輸入道疊前時(shí)間偏移并行算法。在一個(gè)實(shí)施方式中,所述分解模塊具體用于按照以下公式計(jì)算炮檢距區(qū)間數(shù)據(jù)子集的個(gè)數(shù):j=(max_offset-min_offset)/5+1其中,j表示炮檢距區(qū)間數(shù)據(jù)子集的個(gè)數(shù),min_offset表示輸入數(shù)據(jù)中的最小炮檢距,max_offset表示輸入數(shù)據(jù)中的最大炮檢距。在一個(gè)實(shí)施方式中,所述確定模塊具體用于按照以下公式確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù):k=(max_offset-min_offset)/offset_inc其中,k表示輸出數(shù)據(jù)集的炮檢距個(gè)數(shù),min_offset表示作業(yè)參數(shù)中的最小炮檢距,max_offset表示作業(yè)參數(shù)中的最大炮檢距,offset_inc表示作業(yè)參數(shù)中的炮檢距增量。在上述實(shí)施例中,對(duì)輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集;確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù);按照一個(gè)或多個(gè)炮檢距區(qū)間數(shù)據(jù)子集與一個(gè)炮檢距對(duì)應(yīng)作為一個(gè)疊前時(shí)間偏移計(jì)算任務(wù)的方式進(jìn)行劃分,得到與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù);將參與計(jì)算的節(jié)點(diǎn)劃分為多個(gè)計(jì)算節(jié)點(diǎn)組;采用一個(gè)計(jì)算組一次分配一個(gè)計(jì)算任務(wù)的方式,將所述與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù)分配至所述多個(gè)計(jì)算節(jié)點(diǎn)組進(jìn)行PSTM處理。通過上述方式有效解決了現(xiàn)有的疊前時(shí)間偏移方法效率低下的而技術(shù)問題,達(dá)到了有效提高疊前時(shí)間偏移方法效率的技術(shù)問題。進(jìn)一步的,在各個(gè)節(jié)點(diǎn)組之間采用共炮檢距并行算法,各個(gè)節(jié)點(diǎn)組獨(dú)自完成不同任務(wù),互不影響;在一個(gè)節(jié)點(diǎn)組內(nèi),各個(gè)節(jié)點(diǎn)硬件配置完全相同,采用輸出道并行算法,平均分配該任務(wù)的計(jì)算量;在一個(gè)節(jié)點(diǎn)內(nèi),由于共享內(nèi)存平均到每個(gè)核的存儲(chǔ)空間有限,采用輸入道并行算法以減少內(nèi)存開銷。這三種并行算法分別用到不同的硬件層級(jí),充分發(fā)揮三種算法的優(yōu)點(diǎn),從而可以有效降低地震數(shù)據(jù)在網(wǎng)絡(luò)傳輸中的總量,提高計(jì)算效率。附圖說明此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,并不構(gòu)成對(duì)本發(fā)明的限定。在附圖中:圖1是根據(jù)本發(fā)明實(shí)施例的疊前時(shí)間偏移方法的方法流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的輸入數(shù)據(jù)共炮檢距文件存儲(chǔ)構(gòu)圖;圖3是根據(jù)本發(fā)明實(shí)施例的節(jié)點(diǎn)組內(nèi)輸出道并行算法示意圖;圖4是根據(jù)本發(fā)明實(shí)施例的節(jié)點(diǎn)內(nèi)多核輸入道并行算法示意圖;圖5是根據(jù)本發(fā)明實(shí)施例的疊前時(shí)間偏移裝置的結(jié)構(gòu)框圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施方式和附圖,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施方式及其說明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。發(fā)明人考慮到可以疊前時(shí)間偏移共炮檢距、輸入道和輸出道三種并行算法結(jié)合在一起,考慮到PC_Cluster分布式內(nèi)存的體系架構(gòu),把三種算法分別應(yīng)用到節(jié)點(diǎn)組之間、節(jié)點(diǎn)組內(nèi)和節(jié)點(diǎn)內(nèi),發(fā)明了一種高擴(kuò)展性疊前時(shí)間偏移算法,通過該疊前時(shí)間偏移算法,可以將并行規(guī)模從100個(gè)節(jié)點(diǎn)擴(kuò)充到1000個(gè)節(jié)點(diǎn)及以上,從而達(dá)到縮短疊前時(shí)間偏移計(jì)算周期的目的。三維Kirchhoff積分法偏移的基本思想是上世紀(jì)60年代地震勘探廣泛使用的繞射疊加方法,三維Kirchhoff積分法偏移可以通過如下公式表示:其中,R表示地面點(diǎn)(x0,y0,z0=0)到地下點(diǎn)(x,y,z)的距離,v表示地震波的傳播速度。表示地面觀測波場,也是疊前時(shí)間偏移的輸入數(shù)據(jù),u(x,y,z,t)表示成像結(jié)果波場,也是疊前時(shí)間偏移的輸出數(shù)據(jù)。在該表達(dá)式中波場只考慮地面維度和垂向深度或記錄時(shí)間維度,輸入和輸出數(shù)據(jù)之間存在高度的依賴性,因此,長期以來業(yè)界一直認(rèn)為疊前時(shí)間偏移只能在三維空間進(jìn)行計(jì)算。為了縮短地震資料的處理周期,在本發(fā)明實(shí)施例中根據(jù)PC_Cluster分布式內(nèi)存的體系架構(gòu)的特點(diǎn),可以有效提高疊前時(shí)間偏移的計(jì)算效率,具體地,如圖1所示,該疊前時(shí)間偏移方法包括:步驟101:將PSTM處理的輸入數(shù)據(jù)映射到四維坐標(biāo)空間內(nèi)得到輸入地震數(shù)據(jù),其中,所述四維坐標(biāo)空間包括:CMPline、CMP、記錄時(shí)間和炮檢距;即,將待偏移地震數(shù)據(jù)映射到四維坐標(biāo)空間,其中,該四維坐標(biāo)空間對(duì)應(yīng)的維度可以包括:CMP線號(hào)、CMP、記錄時(shí)間和炮檢距。隨著地震采集技術(shù)的發(fā)展,地震數(shù)據(jù)量非常龐大,常常以萬億字節(jié)(TB)作為計(jì)量單位,為了后續(xù)對(duì)數(shù)據(jù)按炮檢距維度進(jìn)行高效的分解,可以將地震數(shù)據(jù)按照CMP線號(hào)遞增順序拆分成多文件存放。步驟102:對(duì)所述輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集;在對(duì)輸入地震數(shù)據(jù)沿著炮檢距維度進(jìn)行分解的時(shí)候,可以設(shè)定維度分解增量為5米,分解后數(shù)據(jù)是單獨(dú)存放的小炮檢距區(qū)間數(shù)據(jù)子集,假設(shè)數(shù)據(jù)子集的個(gè)數(shù)為j,那么j可以按照以下公式計(jì)算得到:j=(max_offset-min_offset)/5+1其中,j表示炮檢距區(qū)間數(shù)據(jù)子集的個(gè)數(shù),min_offset表示輸入數(shù)據(jù)中的最小炮檢距,max_offset表示輸入數(shù)據(jù)中的最大炮檢距。為了提高地震數(shù)據(jù)的分解效率,可以利用多節(jié)點(diǎn)對(duì)多文件以并行方式進(jìn)行分解,即,一個(gè)節(jié)點(diǎn)一次分解一個(gè)文件??梢詾楣?jié)點(diǎn)名和文件名建立雙緩沖池,當(dāng)節(jié)點(diǎn)數(shù)等于或大于文件數(shù)時(shí),所有文件一個(gè)輪回被分解完成,當(dāng)節(jié)點(diǎn)數(shù)小于文件數(shù)時(shí),節(jié)點(diǎn)需要進(jìn)行多輪回工作。分解后共炮檢距數(shù)據(jù)按照多文件目錄結(jié)構(gòu)獨(dú)立存放,一個(gè)文件對(duì)應(yīng)一個(gè)目錄,其中目錄名用文件名命名。如圖2所示,為是輸入數(shù)據(jù)分解后共炮檢距文件的存儲(chǔ)構(gòu)圖,offset.*為一個(gè)炮檢距文件,炮檢距范圍為i~i+5米,各個(gè)目錄下有相同后綴的offset文件,它們的差別是CMP線范圍不同。步驟103:確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù);可以根據(jù)用戶參數(shù)“offsetrange”提供的參數(shù)計(jì)算PSTM輸出數(shù)據(jù)集炮檢距個(gè)數(shù)k,具體地,可以按照以下公式計(jì)算輸出數(shù)據(jù)集炮檢距個(gè)數(shù):k=(max_offset-min_offset)/offset_inc其中,k表示輸出數(shù)據(jù)集的炮檢距個(gè)數(shù),min_offset表示作業(yè)參數(shù)中的最小炮檢距,max_offset表示作業(yè)參數(shù)中的最大炮檢距,offset_inc表示作業(yè)參數(shù)中的炮檢距增量。上述步驟102中的min_offset和max_offset,與上述步驟103中的min_offset和max_offset的量值一般是相同的,可以設(shè)定上述步驟103中的offset_inc為5的倍數(shù),那么步驟103中的輸出數(shù)據(jù)集的炮檢距個(gè)數(shù)k小于步驟102中的數(shù)據(jù)子集的個(gè)數(shù)j。步驟104:按照一個(gè)或多個(gè)炮檢距區(qū)間數(shù)據(jù)子集與一個(gè)炮檢距對(duì)應(yīng)作為一個(gè)疊前時(shí)間偏移計(jì)算任務(wù)的方式進(jìn)行劃分,得到與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù);在該步驟中,主要是為了建立步驟102中offset文件和步驟103中輸出炮檢距之間的對(duì)應(yīng)關(guān)系。Kirchhoff疊前時(shí)間偏移某一共炮檢距偏移結(jié)果只和該炮檢距周圍某一炮檢距區(qū)間內(nèi)的輸入地震道有關(guān),區(qū)間大小就是步驟103中的offset_inc的參數(shù)值。根據(jù)該原則建立步驟102的數(shù)據(jù)子集與步驟103的輸出數(shù)據(jù)的各個(gè)炮檢距之間的對(duì)應(yīng)關(guān)系,為多對(duì)一的關(guān)系,即,步驟102中的幾個(gè)數(shù)據(jù)子集對(duì)應(yīng)步驟103中的一個(gè)炮檢距。將對(duì)應(yīng)關(guān)系中每一組元素作為疊前時(shí)間偏移的一個(gè)計(jì)算任務(wù),各元素之間相互獨(dú)立。這樣就將數(shù)據(jù)依賴性疊前時(shí)間偏移拆分成數(shù)據(jù)獨(dú)立性并行算法。例如,min_offset=0,min_offset=6000,offset_inc=50,那么步驟102中的offset文件個(gè)數(shù)j=1200個(gè),炮檢距范圍依次為0~4、5~9、10~14…5995~6000。步驟103中的輸出共炮檢距數(shù)k=120個(gè),炮檢距范圍依次為0~50、51~100、101~150…5951~6000。由此可以看出,步驟102中的10個(gè)offset文件和步驟103中的一個(gè)輸出共炮檢距對(duì)應(yīng)。圖2中虛線框內(nèi)所有offset文件中地震數(shù)據(jù)只參與一個(gè)炮檢距的計(jì)算。步驟105:將參與計(jì)算的節(jié)點(diǎn)劃分為多個(gè)計(jì)算節(jié)點(diǎn)組;在該步驟中,可以先計(jì)算一個(gè)共炮檢距的成像空間M:M=CMPline數(shù)*CMP數(shù)*記錄樣點(diǎn)數(shù)*4/1024/1024/1024(GB)將參與計(jì)算的節(jié)點(diǎn)分成若干組,每組包括n個(gè)節(jié)點(diǎn),選定組內(nèi)第一個(gè)節(jié)點(diǎn)為“組長”(Groupleader)節(jié)點(diǎn),其它節(jié)點(diǎn)作為“組員”(Groupmember)節(jié)點(diǎn)。步驟106:按照下述三級(jí)方法進(jìn)行并行任務(wù)分配:在節(jié)點(diǎn)組之間采用共炮檢距并行算法:一個(gè)計(jì)算節(jié)點(diǎn)組一次分配一個(gè)計(jì)算任務(wù)的方式;在一個(gè)節(jié)點(diǎn)組內(nèi)各節(jié)點(diǎn)之間采用輸出道疊前時(shí)間偏移并行算法;在節(jié)點(diǎn)內(nèi)多核之間采用輸入道疊前時(shí)間偏移并行算法;用節(jié)點(diǎn)組數(shù)建立資源池、步驟103計(jì)算的輸出共炮檢距數(shù)k建立任務(wù)池,按照雙循環(huán)方式給資源池中節(jié)點(diǎn)組進(jìn)行任務(wù)分配,一組節(jié)點(diǎn)一次分配一個(gè)共炮檢距任務(wù),這就是共炮檢距疊前時(shí)間偏移并行算法,該算法的計(jì)算任務(wù)之間完全獨(dú)立,不存在數(shù)據(jù)之間的交錯(cuò)訪問,因此可以有效減少地震數(shù)據(jù)在網(wǎng)絡(luò)上的傳遞總量。在組內(nèi)各計(jì)算節(jié)點(diǎn)之間采用輸出道疊前時(shí)間偏移并行算法,具體地,可以將該組節(jié)點(diǎn)計(jì)算任務(wù)所有輸入地震數(shù)據(jù)以地震道數(shù)為單位在節(jié)點(diǎn)間進(jìn)行均分,每個(gè)節(jié)點(diǎn)的內(nèi)存中申請M(GB)存儲(chǔ)空間用于存放該任務(wù)的偏移結(jié)果。偏移計(jì)算階段組內(nèi)各節(jié)點(diǎn)獨(dú)自完成各自計(jì)算任務(wù),由于單個(gè)共炮檢距成像結(jié)果是三維數(shù)據(jù)體,一般計(jì)算得到的成像空間M不會(huì)很大,當(dāng)前常用PC_Cluster單節(jié)點(diǎn)共享存儲(chǔ)在24GB以上,有能力存儲(chǔ)該炮檢距的偏移結(jié)果。如圖3所示,為節(jié)點(diǎn)組內(nèi)輸出道并行算法示意圖。計(jì)算節(jié)點(diǎn)內(nèi)可以是多核計(jì)算單元共享內(nèi)存體系結(jié)構(gòu),雖然節(jié)點(diǎn)內(nèi)共享存儲(chǔ)足夠大,但是平均到每個(gè)計(jì)算核上存儲(chǔ)空間非常有限,因此,在節(jié)點(diǎn)內(nèi)多核之間采用輸入道疊前時(shí)間偏移并行算法,具體地可以將分配至該節(jié)點(diǎn)的所有輸入地震數(shù)據(jù)分批讀入輸入數(shù)據(jù)緩沖池中等待偏移計(jì)算,每個(gè)核對(duì)緩沖池中所有地震道都要進(jìn)行偏移,所有核共享申請的M(GB)存儲(chǔ)空間,可以將該空間按照總核數(shù)進(jìn)行均分,一個(gè)核負(fù)責(zé)一部分成像空間任務(wù)的計(jì)算,所有核共同完成全部成像空間的計(jì)算任務(wù)。如圖4所示,為節(jié)點(diǎn)內(nèi)輸入道并行算法示意圖。以圖4中的單節(jié)點(diǎn)4核為例,該炮檢距涉及到的輸入地震道被分批讀入到輸入數(shù)據(jù)緩沖池,4個(gè)核一次從緩沖池中讀取相同的一個(gè)地震道進(jìn)行偏移,圖4下部的網(wǎng)格范圍表示申請內(nèi)存的總大小,該內(nèi)存按照節(jié)點(diǎn)核數(shù)4進(jìn)行均分,該例中示意的是循環(huán)分割法,每個(gè)核只負(fù)責(zé)1/4成像空間計(jì)算任務(wù)。每個(gè)核負(fù)責(zé)自身下面對(duì)應(yīng)的網(wǎng)格,全部4個(gè)核完成整個(gè)成像空間的計(jì)算任務(wù)。該道偏移計(jì)算完成后從緩沖池被刪除,所有核進(jìn)入下一地震道偏移計(jì)算。同時(shí)讀數(shù)據(jù)先從磁盤中讀取1道數(shù)據(jù)存入緩沖池中,當(dāng)磁盤中該任務(wù)涉及的所有地震道被讀入,讀數(shù)據(jù)現(xiàn)成停止工作。緩沖池空時(shí)該節(jié)點(diǎn)計(jì)算任務(wù)完成。節(jié)點(diǎn)內(nèi)輸入道并行算法沒有增加額外的內(nèi)存開銷。在上例中,提供了一種疊前時(shí)間偏移并行算法,涉及內(nèi)容由三個(gè)并行算法組合形成:第一級(jí)采用共炮檢距并行算法;第二級(jí)用輸出道并行算法,應(yīng)用于同一個(gè)節(jié)點(diǎn)組內(nèi)各個(gè)節(jié)點(diǎn)上;第三級(jí)用輸入道并行算法,應(yīng)用于同一個(gè)節(jié)點(diǎn)內(nèi)的多個(gè)計(jì)算核上。將三種不同類型的并行算法應(yīng)用到不同的硬件層次,從而形成一種全新的疊前時(shí)間偏移方法。因第一級(jí)通過共炮檢距并行算法將輸入數(shù)據(jù)沿炮檢距維度分割、全部計(jì)算節(jié)點(diǎn)分組,偏移計(jì)算時(shí)采用數(shù)據(jù)組和節(jié)點(diǎn)組一一對(duì)應(yīng)方法,地震數(shù)據(jù)不需要在節(jié)點(diǎn)組之間傳遞,把疊前時(shí)間偏移并行算法從傳統(tǒng)數(shù)據(jù)密集型轉(zhuǎn)換為了數(shù)據(jù)稀疏型算法,減少了2個(gè)數(shù)量級(jí)的地震數(shù)據(jù)網(wǎng)絡(luò)流量,從而可以使并行計(jì)算的硬件規(guī)模擴(kuò)大2個(gè)數(shù)量級(jí),達(dá)到了提高計(jì)算效率、縮短運(yùn)行時(shí)間的效果。因第二級(jí)將輸出道并行算法應(yīng)用到一個(gè)節(jié)點(diǎn)組內(nèi),在一個(gè)節(jié)點(diǎn)組內(nèi)對(duì)地震數(shù)據(jù)采用先分后模式,即在節(jié)點(diǎn)之間平分一個(gè)炮檢距內(nèi)輸入數(shù)據(jù)合并各個(gè)節(jié)點(diǎn)偏移結(jié)果數(shù)據(jù),使得每個(gè)節(jié)點(diǎn)的計(jì)算單位得到最大限度的使用,由于組內(nèi)節(jié)點(diǎn)數(shù)有限,合并偏移結(jié)果時(shí)不會(huì)產(chǎn)生太多的網(wǎng)絡(luò)流量,網(wǎng)絡(luò)也不會(huì)擁堵。第三級(jí)將輸入道并行算法應(yīng)用到一個(gè)節(jié)點(diǎn)多核之間,由于節(jié)點(diǎn)內(nèi)為多核共享存儲(chǔ)架構(gòu),輸入地震數(shù)據(jù)讀入到內(nèi)存各個(gè)計(jì)算核都能對(duì)其直接操作,地震數(shù)據(jù)不需要在計(jì)算核之間傳遞,但是內(nèi)存總量有限,平均到每個(gè)核上非常少。在地震數(shù)據(jù)的分配模式上輸入道并行方法和輸出道方法剛好相反,采用先和后分形式,即每個(gè)核要拿到所有輸入數(shù)據(jù)、所有核共享一份偏移結(jié)果數(shù)據(jù),這樣既不增加數(shù)據(jù)流量又不增加對(duì)內(nèi)存的額外需求。通過以上三級(jí)并行方法在不同硬件層面進(jìn)行有機(jī)結(jié)合,解決了疊前時(shí)間偏移并行算法存在的數(shù)據(jù)密集型問題,形成了一種高擴(kuò)展性、高效率、極低硬件資源要求的并行算法,該算法不僅適合CPU集群、也適合顯存非常小的GPU集群。該技術(shù)應(yīng)用與生產(chǎn)可使地震數(shù)據(jù)疊前時(shí)間偏移運(yùn)行周期縮短到目前的1/10。一個(gè)炮檢距成像任務(wù)計(jì)算完成,組長節(jié)點(diǎn)疊加本組所有節(jié)點(diǎn)的成像結(jié)果并輸出,同時(shí)釋放存儲(chǔ)空間并申請下一個(gè)炮檢距成像任務(wù)。隨后再執(zhí)行下一個(gè)炮檢距計(jì)算任務(wù),直至任務(wù)池空,程序運(yùn)行結(jié)束。下面結(jié)合一具體實(shí)施例對(duì)上述疊前時(shí)間偏移方法進(jìn)行說明,然而值得注意的是,該具體實(shí)施例僅是為了更好地說明本申請,并不構(gòu)成對(duì)本申請的不當(dāng)限定。測試機(jī)器配置2路6核IntelXeonX5670(CPU卡,共12個(gè)物理核)和2路NvidiaTeslaK20Xm(GPU卡),節(jié)點(diǎn)總數(shù)7168個(gè),本次測試主要目的是測試本專利產(chǎn)品的擴(kuò)展性,只用到CPU計(jì)算單元。測試數(shù)據(jù)為一個(gè)三維工區(qū),輸入數(shù)據(jù)總量2.0TB,測試數(shù)據(jù)的CMP線范圍為:1-1696線,CMP范圍為:1~1848,成像空間共有3134208個(gè)面元。數(shù)據(jù)min_offset=0米,max_offset=7300米,用戶期望的offset_inc=50米,所以炮檢距總數(shù)(并行計(jì)算的任務(wù)數(shù))為146個(gè)。測試中保持計(jì)算總量不變,用不同數(shù)量節(jié)點(diǎn)完成偏移計(jì)算。共運(yùn)行了5個(gè)作業(yè),節(jié)點(diǎn)數(shù)分別是128、256、512、768、1024,除了第四個(gè)作業(yè)外其他四個(gè)作業(yè)節(jié)點(diǎn)數(shù)倍程增加,計(jì)算節(jié)點(diǎn)按16個(gè)一組進(jìn)行分組,節(jié)點(diǎn)組總數(shù)分別為8、16、32、48、64。測試結(jié)果參看表1,由表1可以看出隨著節(jié)點(diǎn)數(shù)的增加,雖然實(shí)際加速比相對(duì)于理論加速比的接近度度逐漸減少,但是即使計(jì)算的節(jié)點(diǎn)規(guī)模增加到1024,加速比接近度達(dá)到89.8%,由此可見,通過本申請?zhí)峁┑姆椒梢詫⒁?guī)模擴(kuò)展至超過1024個(gè)節(jié)點(diǎn)。表1如表2所示是業(yè)界同類疊前時(shí)間偏移軟件加速比測試結(jié)果,該軟件采用輸入道并行算法,這類算法地震數(shù)據(jù)網(wǎng)絡(luò)流量和節(jié)點(diǎn)數(shù)成正比,隨著節(jié)點(diǎn)數(shù)增加網(wǎng)絡(luò)流量急劇增長,當(dāng)網(wǎng)絡(luò)流量超過物理網(wǎng)絡(luò)的傳輸能力,程序?qū)⒉辉偌铀?。從測試結(jié)果可以看出當(dāng)節(jié)點(diǎn)數(shù)大于128時(shí),加速比不再提高,也就是說對(duì)比軟件的硬件最大擴(kuò)展規(guī)模在128個(gè)節(jié)點(diǎn)附近。表2測試1測試2測試3測試4測試5節(jié)點(diǎn)數(shù)163264128256實(shí)際加速比11.42.152.402.42理論加速比124816接近度100%70%53.75%30%15.1%從以上的描述中,可以看出,本發(fā)明實(shí)施例實(shí)現(xiàn)了如下技術(shù)效果:在各個(gè)節(jié)點(diǎn)組之間采用共炮檢距并行算法,各個(gè)節(jié)點(diǎn)組獨(dú)自完成不同任務(wù),互不影響;在一個(gè)節(jié)點(diǎn)組內(nèi),各個(gè)節(jié)點(diǎn)硬件配置完全相同,采用輸出道并行算法,平均分配該任務(wù)的計(jì)算量;在一個(gè)節(jié)點(diǎn)內(nèi),由于共享內(nèi)存平均到每個(gè)核的存儲(chǔ)空間有限,采用輸入道并行算法以減少內(nèi)存開銷。三種并行算法分別用到不同的硬件層級(jí),充分發(fā)揮三種算法的優(yōu)點(diǎn)摒棄缺點(diǎn)。和傳統(tǒng)并行算法相比,地震數(shù)據(jù)在網(wǎng)絡(luò)傳輸總量降低2個(gè)數(shù)量級(jí)。通過上述方式可以有效提高疊前時(shí)間偏移的計(jì)算效率。基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種疊前時(shí)間偏移裝置,如下面的實(shí)施例所述。由于疊前時(shí)間偏移裝置解決問題的原理與疊前時(shí)間偏移方法相似,因此疊前時(shí)間偏移裝置的實(shí)施可以參見疊前時(shí)間偏移方法的實(shí)施,重復(fù)之處不再贅述。以下所使用的,術(shù)語“單元”或者“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。圖5是本發(fā)明實(shí)施例的疊前時(shí)間偏移裝置的一種結(jié)構(gòu)框圖,如圖5所示,可以包括:映射模塊501、分解模塊502、確定模塊503、第一劃分模塊504、第二劃分模塊505和分配模塊506,下面對(duì)該結(jié)構(gòu)進(jìn)行說明。映射模塊501,用于將PSTM處理的輸入數(shù)據(jù)映射到四維坐標(biāo)空間內(nèi)得到輸入地震數(shù)據(jù),其中,所述四維坐標(biāo)空間包括:CMPline、CMP、記錄時(shí)間和炮檢距;分解模塊502,用于對(duì)所述輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集;確定模塊503,用于確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù);第一劃分模塊504,用于按照一個(gè)或多個(gè)炮檢距區(qū)間數(shù)據(jù)子集與一個(gè)炮檢距對(duì)應(yīng)作為一個(gè)疊前時(shí)間偏移計(jì)算任務(wù)的方式進(jìn)行劃分,得到與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù);第二劃分模塊505,用于將參與計(jì)算的節(jié)點(diǎn)劃分為多個(gè)計(jì)算節(jié)點(diǎn)組;分配模塊506,用于按照下述三級(jí)方法進(jìn)行并行任務(wù)分配:在節(jié)點(diǎn)組之間采用共炮檢距并行算法:一個(gè)計(jì)算節(jié)點(diǎn)組一次分配一個(gè)計(jì)算任務(wù)的方式;在一個(gè)節(jié)點(diǎn)組內(nèi)各節(jié)點(diǎn)之間采用輸出道疊前時(shí)間偏移并行算法;在節(jié)點(diǎn)內(nèi)多核之間采用輸入道疊前時(shí)間偏移并行算法。在一個(gè)實(shí)施方式中,計(jì)算節(jié)點(diǎn)組對(duì)分配的計(jì)算任務(wù)進(jìn)行處理可以包括:將分配至該計(jì)算節(jié)點(diǎn)組的計(jì)算任務(wù)的所有輸入地震數(shù)據(jù)按照地震道數(shù)為單位,在計(jì)算節(jié)點(diǎn)組內(nèi)的各個(gè)計(jì)算節(jié)點(diǎn)中進(jìn)行均分;各個(gè)計(jì)算節(jié)點(diǎn)獨(dú)自完成分配至自身的計(jì)算任務(wù)。在一個(gè)實(shí)施方式中,計(jì)算節(jié)點(diǎn)為多核計(jì)算單元,且多核共享該計(jì)算節(jié)點(diǎn)的內(nèi)存資源,各個(gè)計(jì)算節(jié)點(diǎn)獨(dú)自完成分配至自身的計(jì)算任務(wù),包括:計(jì)算節(jié)點(diǎn)內(nèi)的多個(gè)核之間,采用輸入道疊前時(shí)間偏移并行算法完成分配至該計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù)。在一個(gè)實(shí)施方式中,所述多個(gè)炮檢距區(qū)間數(shù)據(jù)子集中各個(gè)數(shù)據(jù)子集是單獨(dú)存放的。在一個(gè)實(shí)施方式中,對(duì)所述輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集,包括:以5米作為一個(gè)炮檢距間隔,對(duì)所述輸入地震數(shù)據(jù)進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集。在一個(gè)實(shí)施方式中,可以按照以下公式計(jì)算炮檢距區(qū)間數(shù)據(jù)子集的個(gè)數(shù):j=(max_offset-min_offset)/5+1其中,j表示炮檢距區(qū)間數(shù)據(jù)子集的個(gè)數(shù),min_offset表示輸入數(shù)據(jù)中的最小炮檢距,max_offset表示輸入數(shù)據(jù)中的最大炮檢距。在一個(gè)實(shí)施方式中,可以按照以下公式確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù):k=(max_offset-min_offset)/offset_inc其中,k表示輸出數(shù)據(jù)集的炮檢距個(gè)數(shù),min_offset表示作業(yè)參數(shù)中的最小炮檢距,max_offset表示作業(yè)參數(shù)中的最大炮檢距,offset_inc表示作業(yè)參數(shù)中的炮檢距增量。在另外一個(gè)實(shí)施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實(shí)施例及優(yōu)選實(shí)施方式中描述的技術(shù)方案。在另外一個(gè)實(shí)施例中,還提供了一種存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)中存儲(chǔ)有上述軟件,該存儲(chǔ)介質(zhì)包括但不限于:光盤、軟盤、硬盤、可擦寫存儲(chǔ)器等。從以上的描述中,可以看出,本發(fā)明實(shí)施例實(shí)現(xiàn)了如下技術(shù)效果:對(duì)輸入地震數(shù)據(jù),沿炮檢距維度進(jìn)行分解,得到多個(gè)炮檢距區(qū)間數(shù)據(jù)子集;確定所述輸入地震數(shù)據(jù)經(jīng)過PSTM處理后,輸出數(shù)據(jù)集的炮檢距個(gè)數(shù);按照一個(gè)或多個(gè)炮檢距區(qū)間數(shù)據(jù)子集與一個(gè)炮檢距對(duì)應(yīng)作為一個(gè)疊前時(shí)間偏移計(jì)算任務(wù)的方式進(jìn)行劃分,得到與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù);將參與計(jì)算的節(jié)點(diǎn)劃分為多個(gè)計(jì)算節(jié)點(diǎn)組;采用一個(gè)計(jì)算組一次分配一個(gè)計(jì)算任務(wù)的方式,將所述與炮檢距個(gè)數(shù)的數(shù)量相等的計(jì)算任務(wù)分配至所述多個(gè)計(jì)算節(jié)點(diǎn)組進(jìn)行PSTM處理。通過上述方式有效解決了現(xiàn)有的疊前時(shí)間偏移方法效率低下的而技術(shù)問題,達(dá)到了有效提高疊前時(shí)間偏移方法效率的技術(shù)問題。進(jìn)一步的,在各個(gè)節(jié)點(diǎn)組之間采用共炮檢距并行算法,各個(gè)節(jié)點(diǎn)組獨(dú)自完成不同任務(wù),互不影響;在一個(gè)節(jié)點(diǎn)組內(nèi),各個(gè)節(jié)點(diǎn)硬件配置完全相同,采用輸出道并行算法,平均分配該任務(wù)的計(jì)算量;在一個(gè)節(jié)點(diǎn)內(nèi),由于共享內(nèi)存平均到每個(gè)核的存儲(chǔ)空間有限,采用輸入道并行算法以減少內(nèi)存開銷。這三種并行算法分別用到不同的硬件層級(jí),充分發(fā)揮三種算法的優(yōu)點(diǎn),從而可以有效降低地震數(shù)據(jù)在網(wǎng)絡(luò)傳輸中的總量,提高計(jì)算效率。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明實(shí)施例的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明實(shí)施例不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明實(shí)施例可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3