利用多個加速處理部件(apc)實現時域有限差分模型的系統和方法
【專利說明】利用多個加速處理部件(APC)實現時域有限差分模型的系統和方法
[0001]相關申請的交叉引用
[0002]不適用。
[0003]關于聯邦政府贊助的研究或開發聲明
[0004]不適用。
[0005]背景
技術領域
[0006]本發明一般涉及與對油氣勘探相關的計算機科學領域。更具體地,本發明涉及利用多個APC實現時域有限差分建模的方法。
【背景技術】
[0007]時域有限差分(FDTD)建模是用于石油和天然氣勘探的重要工具。FDTD核的圖形處理單元(GPU)實現提供了最高的成本效率,并且正成為實際上的工業標準。目前,相對于浮點操作,GPU比CUP處理器快許多倍。具體地,現代GPU在操作計算機圖形方面是非常高效的,并且它們的高度并行結構使得對于其中需要并行處理大數據塊的算法而言,它們比通用CPU更有效。盡管GPU和其它計算加速器具有非常高的計算吞吐量,但是它們缺乏處理大部分石油和天然氣問題中的大的數據體所需的存儲器容量。常用的解決方法是域分解,一種將計算域或數據體分離為更小的片,并且將每個片分配給單獨的計算加速器的方法。然后,對于可以被處理的問題的大小的限制因素成為附接到系統的所有計算加速器的集合存儲器,而不是可用于任何單個計算加速器的存儲器。相反,CPU系統存儲器顯著更大,并且可以被容易地增加以適應甚至現今發展的最大的模型和最復雜的核,但是在系統存儲器與計算加速器存儲器之間傳遞數據緩慢。
[0008]因此,需要優化FDTD方法中GPU的使用的方法和系統。
【發明內容】
[0009]本文公開了用于利用多個加速處理部件(“APC”)實現時域有限差分建模的方法的實施例。通過使每個計算加速器以APC隊列的方式執行關于小片計算域或數據體的多個時間步長,所公開的方法和系統克服了計算加速器的存儲器容量限制。然后,在主機和計算加速器之間傳遞數據的成本可以通過多個時間步長被分攤,大大地降低了維持高傳播速度所需的PCI帶寬量。算法的APC隊列性質獲得隨著增加的計算加速器數目的PCI吞吐量的線性縮放,容許在一些實施例中該算法按比例擴大至多于64個計算加速器。該方法的各種實施例的進一步的細節和優點在下面被更詳細地描述。
[0010]在實施例中,利用多個APC的地震建模方法包括:(a)將數據體和地震模型的至少部分存儲到計算機系統的系統存儲器源上。該數據體包括兩個或更多個維度。該計算機系統包括耦接到系統存儲器資源的APC隊列。該APC隊列包括彼此耦接并且耦接到系統存儲器資源的多個APC。該方法還包括:(b)沿著維度中的至少一個劃分數據體以形成多個數據塊。此外,該方法還包括:(c)將數據塊中的一個或多個從系統存儲器資源傳遞到隊列中的第一APC。該第一 APC為數據塊中的至少一個計算至少一個時間迭代。此外,該方法包括:(d)將數據塊從隊列內的一個APC傳遞到隊列中的下一 APC。該方法附加地包括:(e)為隊列中每個剩余的APC重復(d)。隊列中的每個APC為存儲在每個APC內的至少一個數據塊計算至少一個時間迭代。該方法進一步包括:(f)將數據塊中的一個從隊列中的最后的APC傳遞到系統存儲器資源。
[0011]在另一實施例中,計算機系統包括用于接收數據體的接口。該數據體包括兩個或更多個維度。該計算機系統還包括系統存儲器資源和用于將通信信號呈現給人類用戶以及從人類用戶接收通信信號的輸入和輸出功能。該計算機系統還包括經由通信總線耦接到系統存儲器資源的APC隊列。該隊列包括多個APC。該計算機系統進一步包括用于執行程序指令的一個或多個中央處理單元。該系統存儲器資源被耦接到中央處理單元,用于存儲包括程序指令的計算機程序,所述程序指令當被所述一個或多個中央處理單元以及所述多個APC執行時促使計算機系統執行用于地震建模的多個操作。所述多個操作包括(a)將數據體和地震模型的至少部分存儲到系統存儲器資源上。該數據體可以包括兩個或更多個維度。所述多個操作還包括:(b)沿著維度中的至少一個劃分數據體以形成多個數據塊。附加地,所述多個操作包括:(c)將數據塊中的一個或多個從系統存儲器資源傳遞到隊列中的第一APC,所述第一 APC為數據塊中的一個計算至少一個時間迭代。所述多個操作進一步包括:
(d)將數據塊從隊列內的一個APC傳遞到隊列中的下一APC。所述多個操作還包括:(e)為隊列中每個剩余的APC重復(d)。隊列中的每個APC為存儲在每個APC內的至少一個數據塊計算至少一個時間迭代。此外,所述多個操作包括:(f)將數據塊中的一個從隊列中的最后的APC傳遞到系統存儲器資源。
[0012]在實施例中,地震建模的方法包括:(a)輸出在計算機系統的系統存儲器資源上的數據體和地震模型的至少部分。該數據體包括不只一個維度,并且該計算機系統包括彼此耦接并且耦接到系統存儲器資源的多個APC。該方法進一步包括:(b)沿著維度中的至少一個劃分數據體以形成多個數據塊。此外,該方法包括:(C)將數據塊的子集從系統存儲器資源傳遞到APC中的一個。該方法還包括:(d)將至少一個數據塊從一個APC傳遞到另一 APCt^b夕卜,該方法包括:(e)使用每個APC為存儲在每個APC內的至少一個數據塊計算至少一個時間迭代,以及(f)將數據塊中的一個從多個APC傳遞到系統存儲器資源。
[0013]前述已經相當寬泛地概括了本發明的特征和技術優點,以便接著的本發明的具體實施例可以被更好地理解。本發明的附加特征和優點將被在下文中描述,其形成了本發明的權利要求的主題。本領域技術人員應當理解所公開的概念和具體實施例可以被容易地用作實現本發明的相同目的而修改或設計其它結構的基礎。本領域技術人員還應當意識到這種等價構造不脫離如隨附權利要求中提出的本發明的精神和范圍。
【附圖說明】
[0014]為了本發明的優選實施例的更詳細的描述,現在將參考附圖,其中:
[0015]圖1說明了用于在利用多個APC實現時域有限差分建模的方法的實施例中使用的系統的實施例的圖示;
[0016]圖2說明了用于與利用多個APC實現時域有限差分建模的方法的實施例使用的數據體的圖示;
[0017]圖3說明了利用多個APC實現時域有限差分建模的方法的實施例的流程圖;
[0018]圖4A說明了用于與利用多個APC實現時域有限差分建模的方法的實施例使用的沿著兩個維度劃分的數據體的圖示;
[0019]圖4B說明了用于與利用多個APC實現時域有限差分建模的方法的實施例使用的沿著三個維度劃分的數據體的圖示;
[0020]圖5說明了用于在利用多個APC實現時域有限差分建模的方法的實施例中使用的系統的實施例的另一圖示;
[0021]圖6說明了用于與所公開的方法的實施例使用的計算機系統的示例。
[0022]符號和命名
[0023]某些術語被在下面的整個【具體實施方式】和權利要求中使用,以指特定的系統部件。該文件不是意在區分名稱不同而非功能不同的部件。
[0024]在下面的討論和權利要求中,術語“包括”和“包含”被以開放式的方式使用,并且因此應當被解釋為意為“包括,但不限于……”。此外,術語“耦接”或“親合”意在意為間接或直接連接。因此,如果第一設備耦接到第二設備,該連接可以通過直接連接或通過經由其它設備和連接的間接連接。
[0025]如本文使用的,“加速處理部件”或“APC”指包括被設計為提供附加的處理能力和設計為加速中央處理單元(CPU)外部的一種或多種類型的計算的一個或多個協同處理器或加速器芯片的設備、芯片、電路或板。APC的示例可以包括但不限制于如本文定義的GPU、協同處理器、加速器芯片或它們的結合。
[0026]如本文使用的,“圖形處理單元”或“GPU”指包括被設計為加速或快速操縱大的數據塊以典型地用于處理圖像或圖形的一個或多個處理器或加速器芯片的電路或板。然而,如本領域已知的,GPU可以與任何已知的加速器芯片互換地使用以用于處理其它類型的數據,并且不應當看作是限制于處理圖形。
[0027]如本文使用的,“地震道”指來自單個地震記錄儀或地震儀并且典型地繪制為時間或深度的函數的記錄數據。
【具體實施方式】
[0028]現在參考附圖,所公開的方法的實施例將被描述。作為入門問題,本方法的實施例可以通過多種方式實現,如將在下面更詳細地描述的,包括例如:作為系統(包括計算機處理系統)、方法(包括由計算機實現的方法)、裝置、計算機可讀介質、計算機程序產品、圖形用戶接口、網站入口或有形地固定在計算機可讀存儲器中的數據結構。所公開方法的多個實施例被在下面討論。附圖只說明了所公開方法的典型實施例,并且因此不被認為限制它的范圍和寬度。
[0029]圖1說明了可以與所公開方法使用的系統100的實施例。系統100通常包括具有彼此耦接的CPU 103和系統或系統存儲器資源105的母板101 XPU 103和系統存儲器105被安裝或耦接到母板。此外,系統100包括多個APC 107A-107D。如上討論的,APC 107A-107D可以是對本領域技術人員已知的APC,包括但不限于GPU、加速器芯片、協同處理器、現場可編程門陣列(FGPA)、或它們的結合。為了闡明,盡管四個APC 1 7A-10 7D被在圖1中描繪,但是可預期的是任何數目的APC可以在所公開的方法和系統的實施例中使用。此外,可以預期的是所公開的方法和系統不限于只與APC使用。也就是說,在APC 107A-107D的位置,可以替代地使用任何加速器芯片。
[0030]APC 107A-107D可以經由通信接口或總線109耦接到CUP和系統存儲器105。總線109可以是在計算機系統中的各種部件之間