本發(fā)明涉及地震資料成像領(lǐng)域,更具體地,涉及使用mpi實(shí)現(xiàn)全波形反演(fwi)的方法和系統(tǒng)。
背景技術(shù):
:全波形反演是地震波建模成像中的關(guān)鍵和前沿技術(shù),由于它的計(jì)算量非常巨大,通常需要依賴大型高性能計(jì)算機(jī)集群的并行計(jì)算來實(shí)現(xiàn)。即使在大型高性能計(jì)算機(jī)集群上運(yùn)行,單個(gè)項(xiàng)目運(yùn)行時(shí)間通常達(dá)到幾周或幾個(gè)月。因此如何實(shí)現(xiàn)全波形反演的并行計(jì)算,并使得全波形反演項(xiàng)目能夠克服計(jì)算機(jī)集群的硬件故障,同時(shí)實(shí)現(xiàn)高效率的并行計(jì)算,成為人們實(shí)現(xiàn)產(chǎn)業(yè)化全波形反演技術(shù)的關(guān)鍵難點(diǎn)。目前所有公開的全波形反演并行計(jì)算實(shí)現(xiàn)方案,都是采用mpi(messagepassinginterface)技術(shù)來實(shí)現(xiàn)的。mpi并行實(shí)現(xiàn),通常是由主節(jié)點(diǎn)帶一定數(shù)量的從節(jié)點(diǎn)實(shí)時(shí)協(xié)同并行實(shí)現(xiàn)。如圖1所示,每個(gè)從節(jié)點(diǎn)被配置為順序執(zhí)行單炮的梯度計(jì)算和步長(zhǎng)計(jì)算,而疊加多炮的梯度以及根據(jù)多炮的步長(zhǎng)確定最終的步長(zhǎng)均在主節(jié)點(diǎn)中執(zhí)行。在如圖1所示的全波形反演計(jì)算的全程,主節(jié)點(diǎn)與從節(jié)點(diǎn)之間、從節(jié)點(diǎn)之間將存在實(shí)時(shí)網(wǎng)絡(luò)通訊交換數(shù)據(jù)。在實(shí)際應(yīng)用中,該方法存在許多顯著缺陷:1)不支持硬件設(shè)備的動(dòng)態(tài)增加和減少:mpi并行作業(yè)一旦發(fā)出,就不能添加或減少參與計(jì)算的計(jì)算機(jī)節(jié)點(diǎn),而在大型數(shù)據(jù)處理中心通常具備大量計(jì)算機(jī)節(jié)點(diǎn),同時(shí)有大量作業(yè)運(yùn)行,導(dǎo)致可用計(jì)算機(jī)節(jié)點(diǎn)數(shù)量動(dòng)態(tài)變化較大,只有支持動(dòng)態(tài)設(shè)備增加和減少,才能實(shí)現(xiàn)資源的充分利用;2)穩(wěn)定性差:采用mpi技術(shù)時(shí),大量計(jì)算機(jī)節(jié)點(diǎn)同時(shí)計(jì)算并且相互關(guān)聯(lián),通常全波形反演技術(shù)的計(jì)算時(shí)間比較長(zhǎng)(幾周至幾個(gè)月),一旦某個(gè)節(jié)點(diǎn)出現(xiàn)硬件故障,整個(gè)計(jì)算立即失??;3)不支持異構(gòu)設(shè)備:mpi技術(shù)不能運(yùn)行在異構(gòu)的計(jì)算機(jī)集群,mpi技術(shù)要求所有計(jì)算機(jī)節(jié)點(diǎn)必須是相同的,如果計(jì)算機(jī)節(jié)點(diǎn)不同,它是按最慢的計(jì)算機(jī)節(jié)點(diǎn)的效率來運(yùn)行的。而在實(shí)際生產(chǎn)應(yīng)用中,由于計(jì)算機(jī)節(jié)點(diǎn)采購(gòu)的時(shí)間不同,同時(shí)計(jì)算機(jī)硬件更新速度很快,不可避免地導(dǎo)致計(jì)算機(jī)集群由不同計(jì)算機(jī)節(jié)點(diǎn)組成,因此不適合mpi的并行計(jì)算;4)硬件成本高:mpi并行實(shí)現(xiàn)對(duì)計(jì)算機(jī)集群的節(jié)點(diǎn)之間的網(wǎng)絡(luò)速度和穩(wěn)定性要求很高,迫使人們采用infiniband以及其他設(shè)備來提高網(wǎng)絡(luò)通信效率,迫使人們采用更昂貴的硬件來提高系統(tǒng)的穩(wěn)定性,這些毫無疑問地顯著提升高性能計(jì)算機(jī)設(shè)備的采購(gòu)配置成本;5)大規(guī)模并行計(jì)算效率低下:mpi技術(shù)的并行效率隨計(jì)算機(jī)節(jié)點(diǎn)數(shù)增加而降低,一旦計(jì)算機(jī)節(jié)點(diǎn)數(shù)超過10個(gè),mpi對(duì)計(jì)算效率提升的瓶頸作用就有體現(xiàn)。因此,雖然目前人們?cè)谌ㄐ畏囱菁夹g(shù)的實(shí)現(xiàn)過程中普遍采用上述mpi并行方法,但由于它具有上述缺陷,嚴(yán)重制約了全波形反演技術(shù)的進(jìn)一步發(fā)展。技術(shù)實(shí)現(xiàn)要素:本發(fā)明提出了一種能夠克服上述缺陷的使用mpi實(shí)現(xiàn)全波形反演的系統(tǒng)。本發(fā)明還提出了相應(yīng)的方法。根據(jù)本發(fā)明的一方面,提出了一種使用mpi實(shí)現(xiàn)全波形反演的方法,該方法包括:將多個(gè)mpi并行進(jìn)程中的每個(gè)mpi并行進(jìn)程均置為通過訪問共享盤獲取該mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)以及執(zhí)行該任務(wù)所需的地震數(shù)據(jù)、以及將執(zhí)行該任務(wù)得到的計(jì)算結(jié)果返回至相應(yīng)的計(jì)算結(jié)果文件,并且將不同mpi并行進(jìn)程配置為彼此互不通信。其中,所述共享盤用于存儲(chǔ)共享狀態(tài)文件和共享數(shù)據(jù)體,所述共享狀態(tài)文件中存儲(chǔ)全波形反演的最大循環(huán)次數(shù)、當(dāng)前循環(huán)次數(shù)、每個(gè)mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)、每個(gè)mpi并行進(jìn)程的當(dāng)前任務(wù)的計(jì)算結(jié)果文件的存放路徑,所述共享數(shù)據(jù)體包括全波形反演所需的地震數(shù)據(jù)。根據(jù)本發(fā)明的另一方面,提出了一種使用mpi實(shí)現(xiàn)全波形反演的系統(tǒng),該系統(tǒng)包括共享盤和多個(gè)mpi并行進(jìn)程,其中;所述共享盤用于存儲(chǔ)共享狀態(tài)文件和共享數(shù)據(jù)體,所述共享狀態(tài)文件中存儲(chǔ)全波形反演的最大循環(huán)次數(shù)、當(dāng)前循環(huán)次數(shù)、每個(gè)mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)、每個(gè)mpi并行進(jìn)程的當(dāng)前任務(wù)的計(jì)算結(jié)果文件的存放路徑,所述共享數(shù)據(jù)體包括全波形反演所需的地震數(shù)據(jù);多個(gè)mpi并行進(jìn)程中的每個(gè)mpi并行進(jìn)程均被配置為通過訪問共享盤獲取該mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)以及執(zhí)行該任務(wù)所需的地震數(shù)據(jù)、以及將執(zhí)行該任務(wù)得到的計(jì)算結(jié)果返回至相應(yīng)的計(jì)算結(jié)果文件,不同mpi并行進(jìn)程被配置為彼此互不通信。本發(fā)明的各方面,將每個(gè)mpi并行進(jìn)程都視為主進(jìn)程,每個(gè)mpi并行進(jìn)程通過訪問共享盤的方式獲取其要執(zhí)行的任務(wù)并進(jìn)行數(shù)據(jù)交互,不同mpi并行進(jìn)程間互不通信,從而能夠在全波形反演中支持硬件設(shè)備的動(dòng)態(tài)變化、能夠使得網(wǎng)絡(luò)計(jì)算結(jié)構(gòu)更為穩(wěn)定、能夠支持異構(gòu)設(shè)備、便于降低硬件成本,此外應(yīng)用本發(fā)明還消除了不同mpi并行進(jìn)程間網(wǎng)絡(luò)通信瓶頸對(duì)全波形反演效率的限制。附圖說明通過結(jié)合附圖對(duì)本發(fā)明示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本發(fā)明示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。圖1示出了現(xiàn)有技術(shù)中使用mpi實(shí)現(xiàn)全波形反演的示意圖。圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例的全波形反演分布式并行計(jì)算實(shí)現(xiàn)示意圖。圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的使用mpi實(shí)現(xiàn)全波形反演的系統(tǒng)的示意圖。具體實(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ù)人員。實(shí)施例1本發(fā)明公開了一種使用mpi實(shí)現(xiàn)全波形反演的方法。該方法包括使用共享盤和多個(gè)mpi并行進(jìn)程來進(jìn)行全波形反演。將多個(gè)mpi并行進(jìn)程中的每個(gè)mpi并行進(jìn)程均置為通過訪問共享盤獲取該mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)以及執(zhí)行該任務(wù)所需的地震數(shù)據(jù)、以及將執(zhí)行該任務(wù)得到的計(jì)算結(jié)果返回至相應(yīng)的計(jì)算結(jié)果文件,并且將不同mpi并行進(jìn)程配置為彼此互不通信。其中,所述共享盤用于存儲(chǔ)共享狀態(tài)文件和共享數(shù)據(jù)體,所述共享狀態(tài)文件中存儲(chǔ)全波形反演的最大循環(huán)次數(shù)、當(dāng)前循環(huán)次數(shù)、每個(gè)mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)、每個(gè)mpi并行進(jìn)程的當(dāng)前任務(wù)的計(jì)算結(jié)果文件的存放路徑,所述共享數(shù)據(jù)體包括全波形反演所需的地震數(shù)據(jù)。上述實(shí)施例中,將每個(gè)mpi并行進(jìn)程都視為主進(jìn)程,每個(gè)mpi并行進(jìn)程通過訪問共享盤的方式獲取其要執(zhí)行的任務(wù)并進(jìn)行數(shù)據(jù)交互,不同mpi并行進(jìn)程間互不通信,從而能夠在全波形反演中支持硬件設(shè)備的動(dòng)態(tài)變化、能夠使得網(wǎng)絡(luò)計(jì)算結(jié)構(gòu)更為穩(wěn)定、能夠支持異構(gòu)設(shè)備、便于降低硬件成本,此外應(yīng)用本發(fā)明還消除了不同mpi并行進(jìn)程間網(wǎng)絡(luò)通信瓶頸對(duì)全波形反演效率的限制。所述任務(wù)可以包括:梯度計(jì)算、步長(zhǎng)計(jì)算、更新速度。所述梯度計(jì)算可以包括:可以計(jì)算單炮的速度更新梯度、可以疊加所計(jì)算的單炮的速度更新梯度和當(dāng)前的臨時(shí)總梯度以得到新的臨時(shí)總梯度,以及可以返回新的臨時(shí)總梯度至相應(yīng)的計(jì)算結(jié)果文件。所述步長(zhǎng)計(jì)算可以包括:可以計(jì)算單炮的速度更新步長(zhǎng)、可以基于所計(jì)算的單炮的速度更新步長(zhǎng)和當(dāng)前的臨時(shí)總步長(zhǎng)以得到新的臨時(shí)總步長(zhǎng),以及可以返回新的臨時(shí)總步長(zhǎng)至相應(yīng)的計(jì)算結(jié)果文件。所述更新速度包括基于從共享盤中獲取的本次循環(huán)的速度更新量計(jì)算單炮更新后的速度,以及返回單炮更新后的速度至相應(yīng)的計(jì)算結(jié)果文件。如本領(lǐng)域技術(shù)人員所公知的,可以基于遍歷工區(qū)內(nèi)所有炮后得到的最終總梯度和遍歷工區(qū)內(nèi)所有炮后得到的總步長(zhǎng),得到本次循環(huán)的速度更新量。當(dāng)針對(duì)工區(qū)內(nèi)的所有炮遍歷執(zhí)行所述梯度計(jì)算后,可以在所述共享狀態(tài)文件中將部分或全部mpi并行進(jìn)程的當(dāng)前執(zhí)行的任務(wù)改寫為步長(zhǎng)計(jì)算;當(dāng)針對(duì)工區(qū)內(nèi)的所有炮遍歷執(zhí)行所述步長(zhǎng)計(jì)算后,所述共享狀態(tài)文件中將部分或全部mpi并行進(jìn)程的當(dāng)前執(zhí)行的任務(wù)改寫為更新速度。即在對(duì)工區(qū)內(nèi)的所有炮遍歷所述梯度計(jì)算任務(wù)后,再對(duì)工區(qū)內(nèi)的所有炮遍歷所述步長(zhǎng)計(jì)算任務(wù);在對(duì)工區(qū)內(nèi)的所有炮遍歷所述步長(zhǎng)計(jì)算任務(wù)后,再對(duì)工區(qū)內(nèi)的所有炮遍歷所述更新速度任務(wù)。當(dāng)滿足下列條件之一時(shí),可以結(jié)束全波形反演:當(dāng)本次循環(huán)的速度更新量小于設(shè)定閾值,當(dāng)當(dāng)前循環(huán)次數(shù)達(dá)到所述最大循環(huán)次數(shù);若均不滿足,則可以將更新后的速度作為新的初始速度模型,開始下一次循環(huán)。多個(gè)mpi并行進(jìn)程可以通過協(xié)議文件鎖的形式訪問所述共享盤中的共享狀態(tài)文件和共享數(shù)據(jù)體。協(xié)議文件鎖是一種文件讀寫機(jī)制,在任意時(shí)間僅允許一個(gè)mpi并行進(jìn)程訪問同一個(gè)文件,可確保文件版本的唯一性和正確性。圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例的全波形反演分布式并行計(jì)算實(shí)現(xiàn)示意圖。實(shí)施例2圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的使用mpi實(shí)現(xiàn)全波形反演的系統(tǒng)的示意圖。在本實(shí)施例中,該系統(tǒng)包括:共享盤101和mpi并行進(jìn)程201、202、203。共享盤101用于存儲(chǔ)共享狀態(tài)文件和共享數(shù)據(jù)體,所述共享狀態(tài)文件中存儲(chǔ)全波形反演的最大循環(huán)次數(shù)、當(dāng)前循環(huán)次數(shù)、每個(gè)mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)、每個(gè)mpi并行進(jìn)程的當(dāng)前任務(wù)的計(jì)算結(jié)果文件的存放路徑,所述共享數(shù)據(jù)體包括全波形反演所需的地震數(shù)據(jù)。mpi并行進(jìn)程201、202、203均被配置為通過訪問共享盤101獲取該mpi并行進(jìn)程當(dāng)前執(zhí)行的任務(wù)以及執(zhí)行該任務(wù)所需的地震數(shù)據(jù)、以及將執(zhí)行該任務(wù)得到的計(jì)算結(jié)果返回至相應(yīng)的計(jì)算結(jié)果文件。mpi并行進(jìn)程201、202、203被配置為彼此互不通信。圖3中僅示出了3個(gè)mpi并行進(jìn)程201、202、203作為示例,但本領(lǐng)域技術(shù)人員可以理解的是,其僅用于示意性說明,不用于限制mpi并行進(jìn)程的數(shù)量。所述任務(wù)可以包括:梯度計(jì)算、步長(zhǎng)計(jì)算、更新速度。所述梯度計(jì)算可以包括:可以計(jì)算單炮的速度更新梯度、可以疊加所計(jì)算的單炮的速度更新梯度和當(dāng)前的臨時(shí)總梯度以得到新的臨時(shí)總梯度、以及可以返回新的臨時(shí)總梯度至相應(yīng)的計(jì)算結(jié)果文件。所述步長(zhǎng)計(jì)算可以包括:可以計(jì)算單炮的速度更新步長(zhǎng)、可以基于所計(jì)算的單炮的速度更新步長(zhǎng)和當(dāng)前的臨時(shí)總步長(zhǎng)以得到新的臨時(shí)總步長(zhǎng)、以及可以返回新的臨時(shí)總步長(zhǎng)至相應(yīng)的計(jì)算結(jié)果文件。所述更新速度可以包括基于從共享盤中獲取的本次循環(huán)的速度更新量計(jì)算單炮更新后的速度、以及返回單炮更新后的速度至相應(yīng)的計(jì)算結(jié)果文件。如本領(lǐng)域技術(shù)人員所公知的,可以基于遍歷工區(qū)內(nèi)所有炮后得到的最終總梯度和遍歷工區(qū)內(nèi)所有炮后得到的總步長(zhǎng),得到本次循環(huán)的速度更新量。當(dāng)針對(duì)工區(qū)內(nèi)的所有炮遍歷執(zhí)行所述梯度計(jì)算后,所述共享狀態(tài)文件中的部分或全部mpi并行進(jìn)程的當(dāng)前執(zhí)行的任務(wù)可以被改寫為步長(zhǎng)計(jì)算;當(dāng)針對(duì)工區(qū)內(nèi)的所有炮遍歷執(zhí)行所述步長(zhǎng)計(jì)算后,所述共享狀態(tài)文件中的部分或全部mpi并行進(jìn)程的當(dāng)前執(zhí)行的任務(wù)可以被改寫為更新速度。當(dāng)滿足下列條件之一時(shí),可以結(jié)束全波形反演:當(dāng)本次循環(huán)的速度更新量小于設(shè)定閾值,當(dāng)當(dāng)前循環(huán)次數(shù)達(dá)到所述最大循環(huán)次數(shù);若均不滿足,則可以將更新后的速度作為新的初始速度模型,開始下一次循環(huán)。多個(gè)mpi并行進(jìn)程可以通過協(xié)議文件鎖的形式訪問所述共享盤中的共享狀態(tài)文件和共享數(shù)據(jù)體。協(xié)議文件鎖是一種文件讀寫機(jī)制,在任意時(shí)間僅允許一個(gè)mpi并行進(jìn)程訪問同一個(gè)文件,可確保文件版本的唯一性和正確性。根據(jù)本發(fā)明的這種分布式mpi并行進(jìn)程之間沒有緊密的依存關(guān)系,因此在實(shí)際應(yīng)用中具有如下優(yōu)點(diǎn):1)支持硬件設(shè)備的動(dòng)態(tài)增加和減少:參與計(jì)算的節(jié)點(diǎn)可以動(dòng)態(tài)增加和減少,每個(gè)節(jié)點(diǎn)/進(jìn)程都可以通過共享狀態(tài)文件/共享數(shù)據(jù)體來調(diào)節(jié)工作切入點(diǎn);2)穩(wěn)定性好:由于計(jì)算機(jī)節(jié)點(diǎn)無相互關(guān)聯(lián),在長(zhǎng)時(shí)間的全波形反演計(jì)算中,即使部分節(jié)點(diǎn)出現(xiàn)故障中斷,整個(gè)計(jì)算作業(yè)仍舊會(huì)繼續(xù);3)支持異構(gòu)設(shè)備:不同計(jì)算效率的節(jié)點(diǎn)能夠更新共享狀態(tài)文件,自行調(diào)整計(jì)算量,不會(huì)干預(yù)其他節(jié)點(diǎn)的計(jì)算;4)硬件成本低:并行計(jì)算對(duì)系統(tǒng)的穩(wěn)定性、網(wǎng)絡(luò)通信等要求比較低,因此可以使用低成本的硬件設(shè)備;5)并行計(jì)算效率不受節(jié)點(diǎn)數(shù)目影響:由于沒有節(jié)點(diǎn)間的網(wǎng)絡(luò)通訊效率瓶頸,增加節(jié)點(diǎn)不會(huì)帶來額外的計(jì)算效率損失。下面的表1示出了現(xiàn)有技術(shù)的mpi并行全波形反演和根據(jù)本發(fā)明的mpi并行全波形反演的主要技術(shù)指標(biāo)對(duì)比。技術(shù)指標(biāo)現(xiàn)有技術(shù)本發(fā)明動(dòng)態(tài)增減計(jì)算節(jié)點(diǎn)不能能部分節(jié)點(diǎn)故障中斷整體作業(yè)中斷整體作業(yè)繼續(xù)支持異構(gòu)計(jì)算節(jié)點(diǎn)不能能節(jié)點(diǎn)硬件性能要求高低并行效率與平均單節(jié)點(diǎn)效率節(jié)點(diǎn)增多,效率降低節(jié)點(diǎn)增多,效率不變以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實(shí)施例。在不偏離所說明的各實(shí)施例的范圍和精神的情況下,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌?chǎng)中的技術(shù)的改進(jìn),或者使本
技術(shù)領(lǐng)域:
的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。當(dāng)前第1頁12