利用可伸縮網(wǎng)格計算的儲層仿真的制作方法
【專利摘要】不同代和不同性能速度的更大、可擴展高性能計算(HPC)集群被提供用于儲層仿真。這提供了在HPC機器上運行高密度計算儲層仿真任務(wù)的可伸縮性和靈活性。在處理器集用場中的更多數(shù)量的處理器的可用性使得巨型模型的仿真成為可能,并且當(dāng)運行多個任務(wù)時還降低了碎片化。基于硬件性能的域分解被執(zhí)行,使得計算負荷平衡。儲層域被有效分解,從而減少了通信開銷。可用計算資源的混合體的適應(yīng)性檢測被執(zhí)行,并且儲層仿真分解方法基于可用硬件和不同代處理器資源來調(diào)整負荷分布,從而最小化儲層仿真時間。
【專利說明】利用可伸縮網(wǎng)格計算的儲層仿真
[0001] 相關(guān)申請的交叉引用
[0002] 本申請要求于2012年5月31日提交的美國臨時專利申請第61/653, 501號的優(yōu) 先權(quán)。出于美國專利實踐的目的,本申請通過全部引用將所述臨時申請的內(nèi)容并入。
【技術(shù)領(lǐng)域】
[0003] 本申請涉及利用高性能計算(HPC)集群對地下油氣儲層的計算機化仿真,特別是 利用具有不同發(fā)展階段的處理器的子集群的可伸縮和可擴展HPC集群。
【背景技術(shù)】
[0004] 在石油和天然氣工業(yè)中,針對用于探測和生產(chǎn)目的的計算機化仿真、建模和分析, 需要處理大量的數(shù)據(jù)。例如,地下油氣儲層的開發(fā)通常包括儲層的計算機仿真模型的開發(fā) 和分析。這些地下油氣儲層通常是含有石油流體混合物和水的復(fù)雜巖層。儲層流體成分通 常以兩種或多種流體相的形式存在。通過鉆入這些巖層并且在這些巖層中完井的油井來生 產(chǎn)儲層流體中的石油混合物。
[0005] 儲層的地質(zhì)學(xué)仿真模型、以及儲層的流體的存在也有助于預(yù)測油氣儲層的最優(yōu)未 來油氣開采。石油和天然氣公司已依賴地質(zhì)模型作為增強開采石油儲備的能力的重要工 具。
[0006] 在仿真模型中,儲層被組織為若干獨立單元。越來越精確的地震數(shù)據(jù)已允許這些 單元在25米區(qū)域(X和y軸)間隔的級別上。對于所謂的巨型儲層而言,單元的數(shù)量至少 是幾億個,存在所謂的千兆單元規(guī)模(十億個單元以上)的儲層。
[0007] 已可用的一種用于處理在儲層仿真中所遇到類型的大量數(shù)據(jù)的計算機系統(tǒng)是高 性能計算(HPC)網(wǎng)格。HPC網(wǎng)格系統(tǒng)采用將一組強大的工作站或服務(wù)器組合為網(wǎng)絡(luò),從而起 到一臺超級計算機的作用。
[0008] 美國專利第7, 526, 418 (其由本申請的受讓人所擁有)涉及用于由大量單元組成 的巨型油氣儲層的仿真器。該仿真器主要使用高性能計算機(HPC)。集群計算機之間的通 信根據(jù)傳統(tǒng)、標(biāo)準的方法(例如以上提及的MPI和OpenMP)來執(zhí)行。
[0009] 高性能計算(HPC)網(wǎng)格通常針對它們的來自提供HPC的制造商的計算機硬件設(shè)置 了三年的更換周期。通常,每年購買針對運行儲層仿真而設(shè)計的新的HPC計算機系統(tǒng),以作 為舊系統(tǒng)的替換,或者作為計算需求的額外補充以運行更大的模型。因此,具有這種更換周 期的HPC數(shù)據(jù)中心通常具有至少三代的計算機硬件可用。這些現(xiàn)有系統(tǒng)占用空間、消耗電 力和制冷。它們還需要維護支持合同。期望的是有效地利用這些系統(tǒng)。
[0010] 這些系統(tǒng)之間的代的差異遵循摩爾定律,其中晶體管數(shù)量以及由此而導(dǎo)致的性能 大約每十八個月到兩年翻倍??少徺I到的安裝的HPC網(wǎng)格的第一代和第三代之間的性能和 速度差異通常為三至四倍的級別。
[0011] 用戶趨向于需求更新、更快的系統(tǒng)(也稱為子群集),而使得較舊的系統(tǒng)嚴重未充 分利用。這些代的子集群以網(wǎng)格方式連接到一起,允許仿真任務(wù)跨隔多個子集群。實際上, 這些子集群以獨立方式使用,因為跨多代硬件分配計算資源使得仿真任務(wù)減慢到在分配中 的最慢的硬件。
[0012] 在HPC環(huán)境上運行儲層仿真任務(wù)的當(dāng)前模式是通過分配HPC子群集以用于用戶的 運行。由于計算節(jié)點之間所涉及的物理線路,導(dǎo)致這些物理集群一旦建立就無法變更。此 夕卜,當(dāng)在計算節(jié)點之間分配負荷時,儲層仿真軟件假設(shè)相等工作負荷共享以及同構(gòu)類型的 CPU(即,相同速度),否則,如果它們不同,仿真器將基于集群中最慢的CPU運行。這已妨 礙在網(wǎng)格計算機上運行更大仿真模型,并且還妨礙當(dāng)互連到一起時異構(gòu)物理機器的最優(yōu)利 用。
【發(fā)明內(nèi)容】
[0013] 簡略地說,本發(fā)明提供了一種新的和改進的在數(shù)據(jù)處理系統(tǒng)中的儲層仿真的計 算機實現(xiàn)方法。該數(shù)據(jù)處理系統(tǒng)由多個處理器集群的處理器節(jié)點的統(tǒng)一集用場(unified pool)形成,至少一個處理器集群由與另一處理器集群中的處理器節(jié)點具有不同處理速度 的處理器節(jié)點組成。該計算機實現(xiàn)方法響應(yīng)于用戶對儲層仿真的請求,分配來自各處理器 集群的可用處理器節(jié)點,并執(zhí)行將儲層數(shù)據(jù)分解為塊的域分解以用于儲層仿真。分配的處 理器節(jié)點隨后被分派給被分解的儲層數(shù)據(jù)塊的每個,并且在分配的處理器節(jié)點中執(zhí)行所請 求的儲層仿真。
[0014] 本發(fā)明還提供了一種新的和改進的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括多個處理 器集群的處理器節(jié)點的統(tǒng)一集用場,至少一個處理器集群由與另一處理器集群中的處理器 節(jié)點具有不同處理速度的處理器節(jié)點組成。所述數(shù)據(jù)處理系統(tǒng)中的處理器節(jié)點響應(yīng)于用戶 對儲層仿真的請求,分配來自各處理器集群的可用處理器節(jié)點,并執(zhí)行將儲層數(shù)據(jù)分解為 塊的域分解以用于該儲層仿真。數(shù)據(jù)處理節(jié)點還將分配的處理器節(jié)點分派給被分解的儲層 數(shù)據(jù)塊的每個,并且在分配的處理器節(jié)點中執(zhí)行所請求的儲層仿真。
[0015] 本發(fā)明還提供了一種新的和改進的數(shù)據(jù)存儲裝置,該數(shù)據(jù)存儲裝置在非瞬時計算 機可讀介質(zhì)中存儲了用于在數(shù)據(jù)處理系統(tǒng)中的儲層仿真的計算機可操作指令,該數(shù)據(jù)處理 系統(tǒng)包括多個處理器集群的處理器節(jié)點的統(tǒng)一集用場,至少一個處理器集群由與另一處理 器集群中的處理器節(jié)點具有不同處理速度的處理器節(jié)點組成。存儲在數(shù)據(jù)存儲裝置中的指 令使得數(shù)據(jù)處理系統(tǒng)響應(yīng)于用戶對儲層仿真的請求,分配來自各處理器集群的可用的處理 器節(jié)點,并執(zhí)行將儲層數(shù)據(jù)分解為塊的域分解以用于該儲層仿真。所述指令還使得數(shù)據(jù)處 理系統(tǒng)將分配的處理器節(jié)點分派給被分解的儲層數(shù)據(jù)塊的每個,并且在分配的處理器節(jié)點 中執(zhí)行所請求的儲層仿真。
【專利附圖】
【附圖說明】
[0016] 圖1是用于高性能網(wǎng)格計算的現(xiàn)有技術(shù)數(shù)據(jù)處理系統(tǒng)的示意性框圖。
[0017] 圖2是根據(jù)本發(fā)明的用于高性能網(wǎng)格計算的數(shù)據(jù)處理系統(tǒng)的示意性框圖。
[0018] 圖3A是用于儲層仿真的域分解策略的示意圖。
[0019] 圖3B是用于儲層仿真的另一域分解策略的示意圖。
[0020] 圖4A是基于硬件性能因子在高性能計算網(wǎng)格中的處理器之間來根據(jù)本發(fā)明對儲 層網(wǎng)格塊進行分配的示意圖。
[0021] 圖4B是在高性能計算網(wǎng)格中的三代處理器之間的根據(jù)本發(fā)明的對儲層網(wǎng)格塊的 分配的示意圖。
[0022] 圖5是在高性能計算網(wǎng)格中的三代處理器之間的儲層網(wǎng)格塊的均勻二維域分解 分配的示意圖。
[0023] 圖6是在高性能計算網(wǎng)格中的三代處理器之間的儲層網(wǎng)格塊的非均勻二維域分 解分配的示意圖。
[0024] 圖7是針對根據(jù)本發(fā)明的利用可伸縮網(wǎng)格計算的儲層仿真在圖2的數(shù)據(jù)處理系統(tǒng) 中執(zhí)行的用于處理器的選擇的一組計算機處理步驟的功能性框圖。
[0025] 圖8示出了"執(zhí)行分解"處理的擴展的子例程,即針對根據(jù)本發(fā)明的利用可伸縮網(wǎng) 格計算的儲層仿真在圖2的數(shù)據(jù)處理系統(tǒng)中執(zhí)行的用于儲層域的分解的一組計算機處理 迭代。
【具體實施方式】
[0026] 本發(fā)明提供了針對儲層仿真的可伸縮的網(wǎng)格計算,其中在處理器集群和子集群的 集用場中的性能的代差異的潛在復(fù)雜性無需讓用戶獲知。處理器的可用集用場作為統(tǒng)一 的、更大的高性能計算(HPC)網(wǎng)格呈現(xiàn)給用戶。當(dāng)任務(wù)提交時,用戶不知道發(fā)生的資源分 配。本發(fā)明使用新的和改進的方法和工作流來從混合資源的可用集用場選擇處理器,并且 還提供了新的和改進的域分解策略來平衡異構(gòu)處理器之間的負荷。
[0027] 如前所述,目前已知的是,當(dāng)前的儲層仿真已在同構(gòu)的、僅利用一種類型的處理器 建立的計算機集群上執(zhí)行。此外,各集群與其他子集群物理上分離,并且未與其他子集群互 連。將處理器分配給任務(wù)的當(dāng)前的批處理系統(tǒng)(batchsystem)根據(jù)用戶請求隨機分配處 理器。不同代處理器在過去被分配類似工作量。由于集群是統(tǒng)一的,所有處理器具有相同 速度。因此,哪些處理器被選擇并不重要。
[0028] 圖1示出了根據(jù)現(xiàn)有技術(shù)配置的三代CPU的示例。在圖1中G-I表示較舊代或第 一代(Gen1或類型I)CPU集群,G-2表示第二代或中間代(Gen2或類型2)CPU集群以及 G-3表示最近代或最新代(Genη或類型3)CPU集群。圖1中示出的CPU集群可例如由HP Linux集群計算機的節(jié)點組成。如圖1所示和以上所述,圖1的各CPU集群是同構(gòu)的并且它 們物理地分離,并且未彼此互連。
[0029] 此外,與通常要由圖1的CPU集群運行的仿真通常相關(guān)的儲層模型M的二維域分 解策略在三個CPU集群的每個中是相同的。通過傳統(tǒng)網(wǎng)格分割對每個CPU集群進行分派以 用于通過儲層仿真器處理例如體積V的儲層網(wǎng)格,但是,該體積V的儲層網(wǎng)格不同于分派 給其他處理器集群的儲層網(wǎng)格。因此,針對根據(jù)現(xiàn)有技術(shù)的圖1的同構(gòu)集群的域分解策略 不基于處理器性能來對處理器分配計算任務(wù)量。因此,如圖5表示所示,利用不同代處理器 (即,表示為G3的Gen3比表示為G2的Gen2或表示為Gl的Gen1快)對儲層網(wǎng)格運行 的仿真的傳統(tǒng)二維域分解針對儲層數(shù)據(jù)產(chǎn)生混合處理器分派,其中用戶要求的處理器被批 處理系統(tǒng)隨機地分派給相等分割的計算任務(wù)。作為示例,如圖5所示,儲層網(wǎng)格中相同大小 的計算任務(wù)量在三代處理器Gl、G2和G3之間分配。
[0030] 根據(jù)本發(fā)明,如圖2所示,從不同CPU形成了子集群中的處理器節(jié)點的統(tǒng)一集用場 P。因此,集用場P是異構(gòu)的并且是混合式計算機集群,其由圖2中G-I表示的較舊的代或 第一代(Gen1或類型I)CPU子集群、G-2表示的第二代或中間代(Gen2或類型2)CPU子集 群和G-3的最近代或最新代(Genη或類型3)CPU子集群組成。雖然在集用場P中的三個 (PU子集群中的處理器節(jié)點子集群根據(jù)它們的相對使用年限或代而具有不同的性能速度和 特性,但是它們根據(jù)本發(fā)明被合并到集用場P中。通過采用無限帶寬互聯(lián)網(wǎng)絡(luò)(Infiniband interwork)〗的一個或多個交換機進行處理器節(jié)點的互連,以提供可用處理器的非常大的 集用場。
[0031] 然而,當(dāng)將這些不同的子集群G-l、G-2和G-3互連并合并到集用場P中時,發(fā)現(xiàn)傳 統(tǒng)的現(xiàn)有域分解技術(shù)不再有效率或不再有效。利用工作速度不同但與每個子集群一起工作 的不同子集群中的處理器,但是使用根據(jù)現(xiàn)有技術(shù)的如圖1和圖5中示出的傳統(tǒng)網(wǎng)格分割, 由此導(dǎo)致處理負荷失衡。許多快速處理器時常在等待較慢處理器完成它們的工作時空閑。 全部或混合的處理工作只有當(dāng)最慢的CPU已完成其被分配的工作時才結(jié)束。
[0032] 因此,通過本發(fā)明,提供了新的域分解策略,使得處理器上分配的工作負荷與其性 能成比例。如圖2所示,較慢的最初一代處理器子集群G-I通過根據(jù)本發(fā)明的網(wǎng)格分割被 分配了比分配給中間代處理器子集群G-2的工作負荷量V-2少的來自儲層網(wǎng)格模型M的工 作負荷量V-I。工作負荷量V-I和V-2均依次少于分配給較新代處理器子集群G-3的工作 負荷量V-3。因此,本發(fā)明允許計算工作負荷的良好負荷平衡,因此提高了計算效率。本發(fā) 明使用處理器的異構(gòu)集用場P的相對硬件性能來選擇最優(yōu)的處理器子集。
[0033] 本發(fā)明還分配計算任務(wù)(或域)使其可在處理器之間最優(yōu)地劃分。因此,本發(fā)明 提供了更佳的計算負荷平衡并降低了儲層仿真的運行時間?;谔幚砥鞯募脠龅目捎眯?和異構(gòu)性,本發(fā)明允許調(diào)整工作負荷量分配或用戶要求的批處理系統(tǒng)的處理器數(shù)量以最優(yōu) 化地運行儲層仿真任務(wù)。本發(fā)明提供用于批處理系統(tǒng)的方法(圖7)來從可用集用場選擇 處理器,并提供用于域分解的伴隨方法(companionmethodology,圖8)以在選定處理器上 最優(yōu)化地分解儲層仿真模型,該儲層仿真模型被傳送至后續(xù)階段的仿真器。(基本上,在網(wǎng) 格中從可用節(jié)點的集用場分配節(jié)點,之后基于"相關(guān)節(jié)點性能數(shù)據(jù)庫D"給這些節(jié)點分配權(quán) 重。然后,"域分解"例程(步驟112)運行以基于選定節(jié)點最優(yōu)地找出最佳分布(步驟112 在圖8中擴展))。在最優(yōu)地找出節(jié)點至塊(nodes-to-blocks)的最佳組合之后,在步驟114 中正式地將節(jié)點分派給塊。
[0034] 本發(fā)明針對儲層仿真提供了建立和擴展更大的HPC集群的方法,從而避開了固定 建造的HPC集群的缺點。本發(fā)明針對在HPC機器上運行這類計算密集型任務(wù)提供了可伸縮 性和靈活性。在集用場中更多數(shù)量的處理器的可用性使得可以仿真巨型模型,同時,當(dāng)運行 多個任務(wù)時,減少了碎片化(fragmentation)。本發(fā)明的基于硬件性能的域分解導(dǎo)致良好 的負荷平衡,并且儲層域被高效地分解,從而降低了通信開銷。
[0035] 相比于傳統(tǒng)的當(dāng)前使用的HPC,本發(fā)明解決了多個限制。第一,本發(fā)明解決了集群 的碎片化問題,其是當(dāng)使用一個集群時,由于未利用到的剩余節(jié)點導(dǎo)致的,這是因為這些未 利用的節(jié)點由于集群之間的物理間隔導(dǎo)致無法移動到另一個子集群。第二,與在子集群之 間分割仿真相比,本發(fā)明允許仿真更大的模型。第三,通過修改仿真器,本發(fā)明適于現(xiàn)有的 異構(gòu)計算機網(wǎng)格環(huán)境并且基于不同代的CPU調(diào)整節(jié)點之間的負荷分布(即,在流程運行時 間期間將更少量任務(wù)分派給更慢的CPU)。第四,所提交的腳本提供了針對仿真的做出處理 器的集用場的更好選擇的機制。提交的腳本可容易地適應(yīng)于任何所需的變化。根據(jù)本發(fā)明 的硬件性能加權(quán)的域分解給出了處理器之間的計算負荷的良好負荷平衡。
[0036] 本發(fā)明提供了當(dāng)儲層仿真在針對HPC網(wǎng)格的更大型異構(gòu)HPC集群上運行時的動態(tài) 環(huán)境。本發(fā)明有效形成了用于儲層仿真的異構(gòu)處理器的大計算集用場或網(wǎng)格,并以有效方 式執(zhí)行仿真。
[0037] 計算集用場或網(wǎng)格P(圖2)由使用不同代處理器的多個集群組成,這些不同代處 理器被合并以創(chuàng)建具有可用處理器的大集用場P的網(wǎng)格。應(yīng)當(dāng)理解的是,可利用若干技術(shù) 來連接集群。作為一個示例,通過大Qlogic集群交換機中的空閑端口,利用Qlogic無限帶 寬交換機來連接具有不同CPU類型的兩個集群(圖4A)。
[0038] 本發(fā)明還提供了HPC網(wǎng)格或集用場P上的儲層仿真的優(yōu)化負荷平衡方法。以確保 CPU之間良好的負荷平衡的方式將儲層仿真的計算任務(wù)映射到異構(gòu)集群或計算網(wǎng)格上。根 據(jù)本發(fā)明的映射策略還降低了通信開銷。當(dāng)通過選擇相鄰節(jié)點APU來盡可能多地選擇CPU 時,該映射策略將網(wǎng)絡(luò)流量局部化,從而最小化運行時間。
[0039] 硬件性能因子
[0040] 本發(fā)明提供了在任意時間從可用的異構(gòu)處理器的集用場中選擇一組處理器,以及 通過計算機性能參數(shù)加權(quán)的任務(wù)分布。根據(jù)本發(fā)明的計算機性能參數(shù)是硬件性能因子(h)。
[0041] 硬件性能因子(h)表示處理器執(zhí)行儲層仿真模型的大量操作的相對效率。優(yōu)選 地,其是測量每秒浮點運算速率(FLOPs)的基準性能。如將闡述的,根據(jù)本發(fā)明,在處理器 集用場中的不同代處理器的硬件性能因子h被存儲在性能數(shù)據(jù)庫D中,以在處理器的分配 期間使用。
[0042] 計算負荷
[0043] 此外,儲層模型的計算負荷是單元塊的數(shù)量、模型類型(重油、斷裂模型、復(fù)合、雙 孔雙滲、局部細化網(wǎng)格等)和用于解決所述問題的方法的函數(shù)。儲層仿真模型的計算負荷 可表達為R(N),其是單元塊的數(shù)量(N)的單調(diào)函數(shù)。因為在儲層仿真中眾多因子的存在,R 應(yīng)當(dāng)利用網(wǎng)格塊的變化數(shù)量(N)通過基準實際仿真來測量??赏ㄟ^變化的仿真參數(shù)(例如 仿真模型中的相、斷裂的存在等)來基準測試不同類的問題以利用這些參數(shù)獲得R的校正。 根據(jù)本發(fā)明,曾針對儲層仿真模型的類型和復(fù)雜性而基準測試的計算負荷程度R被存儲在 網(wǎng)絡(luò)效應(yīng)數(shù)據(jù)庫B中,以在處理器的分配期間使用。
[0044] 如果無法得到這種校正,則可假定R如0 (nlogltln)變化,其中η是處理器上的單元 塊的數(shù)量。選擇nlog1(ln作為R的控制參數(shù)是來自于這樣的假定:就有效求解器而言對η網(wǎng) 格單元的求解時間應(yīng)當(dāng)如nlog1(ln變化。但是,如果求解方法花費0 (η2)次運算來解具有規(guī) 模η的問題,則R應(yīng)當(dāng)為η2而非nlog1(ln。
[0045] 如果在P個處理器的同構(gòu)集群上進行計算,則仿真時間應(yīng)當(dāng)如下變化,
[0046]T2R(NV(hPd)方程式(1)
[0047] 其中T是仿真時間,h是硬件性能因子,P是用于求解問題的處理器的數(shù)量,d是相 當(dāng)于一維分解的域分解效率因子(即,針對一維分解,d= 1)。如果在具有硬件性能因子Ill 和h2的兩種類型的處理器的異構(gòu)集群上進行仿真,則仿真時間應(yīng)當(dāng)如下變化,
[0048]T2[R(N1)Ah1P1(I)+R(N-N1)Ah2P2d)]方程式(2)
[0049] 其中N1個網(wǎng)格塊被分派給類型1處理器(總數(shù)P1)且(N-N1)個網(wǎng)格塊被分派給 類型2處理器(總數(shù)P2)。
[0050] 顯而易見地,如果使用包含不同CPU類型的網(wǎng)格取代單個高速網(wǎng)絡(luò)來連接處理 器,則存在速度變慢。本發(fā)明提供了避免這類速度變慢的方法。作為一個示例,針對具有屬 于集群1 (其中處理器連接在快速網(wǎng)絡(luò)上)的類型1處理器和屬于集群2 (其中處理器通過 另一快速網(wǎng)絡(luò)連接)的類型2處理器、并且集群1和集群2的連接是在比快速集群內(nèi)網(wǎng)絡(luò) 慢一個因子(例如,G1J的網(wǎng)格上的數(shù)據(jù)處理系統(tǒng),則方程式(2)變?yōu)?br>
[0051]T2[R(N1)Ah1P1(I)+R(N-N1)Ah2P2d) ] 方程式(3)
[0052] 對于具有帶m個不同類型的異構(gòu)處理器的集群的網(wǎng)格而言,方程式(3)可一般化 為:
[0053]T2[R(N1)Ah1P1(I)+R(N2)Ah2P2(I) +···+R(N-N1-N2. ·· -NmJAhmPmd) ]
[0054] 方程式(4)
[0055] 應(yīng)當(dāng)注意到的是,如果域分解策略改變(例如:從一維到二維),則方程式(3)或 方程式(4)中的數(shù)值d也改變。
[0056]儲層的域分解
[0057] 不同的域分解策略給出不同等級的復(fù)雜度和通信開銷。例如,可考慮具有40單位 長且50單位高的示例儲層網(wǎng)格塊的域,如圖3A和圖3B所示,使用一維或二維分塊分解該 域。
[0058] 考慮利用二維分塊的圖3A中的陰影子域32,則獲得下列測量值:子域32的面積 (網(wǎng)格塊的數(shù)量的測量值以及由此的計算負荷)=25*20 = 500 ;而與其他子域34和35相 鄰的表面積(測量通信開銷)=25+20 = 45。
[0059] 對于利用一維分塊的圖3B中的陰影子域36而言,獲得下面的測量值:子域36的 面積(網(wǎng)格塊的數(shù)量的測量值或計算負荷)=50*10 = 500 ;而與其他子域37和38相鄰 的表面積(通信開銷的測量值)=50+50 = 100。
[0060] 可注意到的是,圖3A和圖3B中的兩個塊的示例的計算量相同,但是一維分塊中的 通信開銷大于二維分塊。通常,這對于域分解而言是事實。因此,所述方法優(yōu)選地盡可能使 用二維分塊來分解域(儲層),除非其使得處理器間的通信方法非常復(fù)雜。
[0061] 硬件性能因子加權(quán)的域分解
[0062] 根據(jù)本發(fā)明,執(zhí)行硬件性能因子加權(quán)的域分解。硬件性能加權(quán)的域分解的目的是 獲得恒定或接近恒定的均一化負荷因子(L)的值,如下定義:
[0063]L=h*R(N) 方程式(5)
[0064] 圖4A示意性地示出了根據(jù)本發(fā)明的基于硬件性能因子(h)通過域分解對可用處 理器節(jié)點的分派。如所示的那樣,存在四個處理器:處理器1、處理器2、處理器3和處理器 4。兩個(處理器1和處理器2)具有硬件性能因子h而另兩個(處理器3和處理器4)具 有硬件性能因子h2。向分配的這四個處理器節(jié)點分派網(wǎng)格塊,使得這四個處理器具有相同 值的均一化負荷因子L。針對圖4A的儲層仿真,數(shù)據(jù)處理系統(tǒng)的模型中的網(wǎng)格塊的總數(shù)為 N= 2 (N^N2) 〇
[0065] 因此,圖4A是基于硬件性能因子加權(quán)的域分解的域分解示例??梢钥闯?,更快的 處理器被賦予更多數(shù)量的網(wǎng)格塊(基于R的計算量)以實現(xiàn)處理器之間的負荷平衡。換句 話說,h*R(N)對這四個處理器而言是相等的??纱嬖谶@樣的情況,其中可能難以實現(xiàn)對所 有處理器而言完全相等的L的值。于是,目標(biāo)是在處理器之間獲得大致相等的均一化負荷 因子L(SP,h*R(N))。
[0066] 圖4B是在具有不同代的處理器子集群的統(tǒng)一集用場P上運行的仿真的根據(jù)本發(fā) 明的二維硬件性能因子加權(quán)的域分解的示意圖。在圖4B中,表示為G3的最近代Gen3比 表示為G2的Gen2快,表示為G2的Gen2比表示為Gl的Gen1快。如圖4B中所示,在三 代處理器Gl、G2和G3之間根據(jù)本發(fā)明分配計算任務(wù)量,因此更快速的G3處理器被分配比 中等速度處理器G2更多的要處理的數(shù)據(jù)量,而G2被分配比較慢速度的處理器Gl更多的數(shù) 據(jù)量。
[0067] 處理器分配
[0068] 圖7示出了在處理器子集群的集用場P(圖2)中執(zhí)行的一組處理器步驟。如步驟 100所示,批處理提交系統(tǒng)檢查針對N個最新(GenX)處理器或具有最高硬件性能因子h的 處理器的用戶請求。如步驟102所示,批處理提交系統(tǒng)將請求的代的數(shù)量與在可用資源集 用場P中的任何一個單獨的子集群中可用的請求的代的數(shù)量進行比較。在步驟102期間, 如果確定用戶請求的GenX處理器的數(shù)量N在單個子集群上可以得到,從而滿足該用戶請 求,則將用戶請求的資源進行分派或使其可用。如步驟104所示,處理轉(zhuǎn)移到傳統(tǒng)分解和在 單個子集群中的請求的N個處理器之間相等地隨機分配仿真任務(wù)數(shù)據(jù)域。最優(yōu)地,優(yōu)選使 用二維分解,除非N是素數(shù),S卩,N無法被因式分解。在這種情況下,使用一維分解。
[0069] 在步驟102期間,如果對可用資源集用場P的確定結(jié)果為否,則執(zhí)行本發(fā)明的方 法。本發(fā)明針對在來自集用場P的一組異構(gòu)處理器上的計算,提供了硬件性能因子加權(quán)的 域分解。如果在步驟102期間確定用戶要求的代的數(shù)量N無法從任何一個單獨的子集群獲 得,則發(fā)生硬件性能因子加權(quán)的域分解。作為一個示例,如果僅存在M(其中M<N)個Gen X處理器可用,則如圖7中所示般地執(zhí)行根據(jù)本發(fā)明的硬件加權(quán)的域分解。
[0070] 在步驟106期間檢查異構(gòu)處理器集用場以確定(N-M)個快速處理器等效資源 是否在下一最佳處理器集用場中可得。在該確認中,一個快速處理器等效節(jié)點=h(x)/ h(x-l)*Gen(X-l)個處理器,其中h(x)是GenX處理器的硬件性能因子h,而h(x-l)是 Gen(X-I)處理器的硬件性能因子。也使用針對集用場P中的各代處理器的硬件性能因子h 并從相關(guān)節(jié)點性能數(shù)據(jù)庫D獲得。如果在步驟106期間,未表示可得到足夠的快速處理器 等效資源,則處理返回到步驟106并等待在108處表示的特定等待間隔,之后返回步驟104, 其中做出如上文針對步驟104描述的另一問詢。
[0071] 如果在步驟106期間確定可得到足夠的Gen(X-I)處理器,則如步驟110所示執(zhí)行 來自整個集用場P的異構(gòu)集用場中的每個處理器的節(jié)點的分配。在該分配中,考慮在以上 方程式(3)或方程式(4)中針對異構(gòu)處理器集用場給出的仿真時間的估計,如上所述。而 且,考慮包括網(wǎng)格網(wǎng)絡(luò)帶寬的影響的各種參數(shù)。也使用針對相同儲層仿真器從基準研究不 同類別的儲層仿真模型獲得的測量R(N)的預(yù)先創(chuàng)建的數(shù)據(jù)庫B來完成該評估。優(yōu)選的是, 只將相同或相似類別的儲層仿真模型的相關(guān)數(shù)據(jù)作為請求的用戶任務(wù)用于評估。
[0072] 在步驟112期間(在圖8中擴展),利用來自最近代(GenX)的最大數(shù)量的處理 器以及來自較慢代的一些處理器來規(guī)劃最優(yōu)的二維分解,從而補償剩余的要求的處理的需 求。因為這個原因,二維分解可通過使用其他較慢的處理器來使用少于所需的M個GenX 處理器,即使它們是可用的。如所述的那樣,根據(jù)方程式(5),本發(fā)明使用硬件性能因子加權(quán) 的域分解來獲得恒定或接近恒定的均一化負荷因子L。
[0073] 在域的行向或列向中使用相同代的處理器(參見圖4A),而在域的另一方向中使 用不同代的處理器。
[0074] 在步驟112期間,對比最佳一維分解來對找出的最佳二維分解進行評估(S卩,使用 組合了GenX和其他代的M個處理器與(N-M)個GenX處理器的計算能力等價)。該優(yōu)化 工作流確定處理器的最佳組合以及分解策略。
[0075] 在步驟114期間,已在步驟110期間分配的節(jié)點被分派給從步驟112獲得的分解 的塊,使得在如上所述的不同代處理器子集群上的工作負荷量不同,但是具有根據(jù)方程式 (5)的恒定或大致均一化的負荷因子L。
[0076] 在將節(jié)點在步驟114中分派給分解的塊之后,隨后腳本將最佳分解結(jié)果寫入特定 文件以由仿真器使用。
[0077] 在步驟116期間,處理任務(wù)被發(fā)送給仿真器并且執(zhí)行仿真。適宜的仿真器 的一個不例是沙特阿拉伯石油公司的ParallelOilWaterEnhancedReservoir Simulator(POWERS)〇
[0078] 圖8的方法說明了直到實現(xiàn)最佳組合為止的域分解例程迭代。
[0079] 對于根據(jù)本發(fā)明的域分解而言,如果可能的話,優(yōu)選的是在不使得處理器間通信 方法復(fù)雜的情況下使用二維域分解。否則,可使用一維域分解。批處理腳本基于圖7的方 法選擇集用場。仿真器基于通過批處理腳本選定的處理器集用場來分解域。
[0080] 本發(fā)明使用新的域分解策略統(tǒng)一了用于仿真器的異構(gòu)計算資源,具有良好的負荷 平衡,并減少了多個子集群上的處理器碎片化。將諸如沙特阿拉伯石油公司的Parallel OilWaterEnhancedReservoirSimulator(POWERS)之類的仿真器調(diào)整為與本發(fā)明的域分 解方法互動并最優(yōu)化地在現(xiàn)有設(shè)施上運行,從而最小化其運行時間。
[0081] 在網(wǎng)格上的可用計算能力的統(tǒng)一概括可通過方程式(6)來測量: -^l ^21 ^31 flIP\
[0082] PnP22PilXn2 =P1 方程式(6) ^13 -^23 ^33 ll3
[0083] 其中Pi是表示為單個統(tǒng)一CPU代i的網(wǎng)格上的可用能力;Pij是從i代到j(luò)代的 (PU轉(zhuǎn)換因子(其等同于前面描述的硬件性能因子(h));叫是(來自批處理調(diào)度器的)可 用的i代處理器的數(shù)量。
[0084] 例如,對于三個類型(代)處理器的可用集用場而言,其中存在Gen3(h= 4)的 413個節(jié)點、Gen2(h= 3)的413個節(jié)點以及Genl(h= 1)的274個節(jié)點,對于這三個節(jié)點 代而言方程式(4)可寫成如下:
[0085]T^R(N1)Zdxl/4x413+R(N2)/dxl/3x413+R(N-N1-N2)/dx 1/1x274
[0086] ^R(N1)Zdx 1/4x791
[0087] 對于一維分解:
[0088]T竺(R(N1))/4x791
[0089] 而對于二維分解:
[0090]T^R(N1)/d2x 1/4x791
[0091] 并且(12應(yīng)當(dāng)大于1。
[0092]通常,二維分解相比一維分解而言是優(yōu)選的,除非由于分解的不均勻性導(dǎo)致通信 方法變得復(fù)雜。圖6是該分解的示意描述。如圖所示,在如圖所示地分派給三代處理器Gl、G2和G3的子域之間存在大量通信開銷,如箭頭60所示,表示雙向數(shù)據(jù)通信和隨之的通信開 銷。
[0093] 從前述內(nèi)容可以理解的是,本發(fā)明的方法通過適當(dāng)選擇不同類型的處理器的組合 優(yōu)化了運行時間。
[0094] 如圖9中所示,根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)D包括計算機150,該計算機150具有 處理器152和存儲器154,存儲器154耦接到處理器152以在其中存儲操作指令、控制信息 和數(shù)據(jù)庫記錄。如果期望,計算機150可以是便攜式數(shù)字處理器,諸如具有膝上型電腦、筆 記本電腦或其他適當(dāng)?shù)木幊袒蚩删幊痰臄?shù)字數(shù)據(jù)處理設(shè)備(諸如桌面型計算機)之類形式 的計算機。還應(yīng)當(dāng)理解的是計算機150可以是具有節(jié)點的多核處理器(諸如來自英特爾公 司或超威半導(dǎo)體公司(AMD)的那些處理器)、HPCLinux集群計算機或適當(dāng)處理能力的任何 傳統(tǒng)類型的大型計算機(諸如可以從紐約阿蒙克的國際商用機器公司(IBM)或其他來源獲 得的那些大型計算機)。
[0095]計算機150具有用戶界面156和輸出數(shù)據(jù)或圖形化用戶顯示器158,顯示器158用 于顯示根據(jù)本發(fā)明的巖相和儲層屬性的輸出數(shù)據(jù)或記錄。輸出顯示器158包括諸如打印機 和輸出顯示屏幕之類的組件,其能夠以圖表、數(shù)據(jù)表、圖形化圖像、數(shù)據(jù)繪圖等形式將打印 的輸出信息或可視化顯示提供為輸出記錄或圖像。
[0096]計算機150的用戶界面156還包括適當(dāng)?shù)挠脩糨斎胙b置或輸入/輸出控制單元 160以提供用戶控制或訪問信息和數(shù)據(jù)庫記錄以及操作計算機150的途徑。數(shù)據(jù)處理系統(tǒng) D還包括存儲在計算機存儲器中的數(shù)據(jù)庫162,該計算機存儲器可以是內(nèi)部存儲器154,或 者可以是外部存儲器、網(wǎng)絡(luò)存儲器或非網(wǎng)絡(luò)存儲器,如在相關(guān)數(shù)據(jù)庫服務(wù)器168中的166處 表不的那樣。
[0097]數(shù)據(jù)處理系統(tǒng)D包括存儲在計算機150的存儲器154中的程序代碼170。根據(jù)本 發(fā)明,程序代碼170以非瞬時計算機可操作指令的形式存在,使得數(shù)據(jù)處理器152以上述方 式執(zhí)行本發(fā)明的計算機實現(xiàn)方法。
[0098]應(yīng)當(dāng)注意到的是,程序代碼170可以具有微代碼、程序、例程或符號化計算機可操 作語言的形式,其提供了用于控制數(shù)據(jù)系統(tǒng)D的功能并引導(dǎo)數(shù)據(jù)處理系統(tǒng)D的操作的有序 操作的特定集合。程序代碼170的指令可以以非瞬時形式存儲在計算機150的存儲器154 中,或者存儲在計算機磁盤、磁帶、傳統(tǒng)硬盤驅(qū)動器、電子只讀存儲器、光存儲裝置上,或者 存儲在其他存儲有非瞬時計算機可使用介質(zhì)適當(dāng)數(shù)據(jù)存儲裝置上。程序代碼170還可以以 非瞬時形式包含在諸如服務(wù)器168的數(shù)據(jù)存儲裝置上,作為計算機可讀介質(zhì)。
[0099]下面示例示出了通過根據(jù)本發(fā)明的任務(wù)調(diào)度器分配處理器和將儲層映射(域分 解)到網(wǎng)格架構(gòu)。在該示例中,用戶請求利用791個處理器的任務(wù)。在不同處理器上的硬 件性能因子和針對該任務(wù)的期望運行時間在表格1中示出??梢钥闯觯瑢τ诓煌幚砥?, 在791個處理器上針對該任務(wù)的運行時間從1小時到4小時變化。批量調(diào)度器腳本的任務(wù) 是從可用處理器集用場中選擇處理器的組合,期望的是給出與791個Gen3(即,最快速的) 處理器相似的運行時間。
[0100] 作為針對儲層仿真任務(wù)的提交腳本的一部分而執(zhí)行的本發(fā)明的方法根據(jù)在本示 例中的請求選擇791個Gen3處理器(如果可以獲得)。如果791個Gen3處理器不可獲得, 則提交腳本可另外選擇處理器的組合,諸如274個Gen3處理器、413個Gen2處理器和413 個Genl處理器,這應(yīng)當(dāng)具有與791個Gen3處理器類似的性能(即,運行時間1小時)。來 自可用集用場的處理器的組合不需要是獨一無二的,在提交腳本中的方法的任務(wù)是搜索和 找出一種組合即可(如果可以獲得)。如果因為缺少可用處理器而導(dǎo)致沒有找出這樣的處 理器的組合,則腳本提供期望給出任務(wù)的最快運行時間的最佳處理器組合。
[0101] 表格1:不同代硬件的仿真 [0102]
【權(quán)利要求】
1. 一種數(shù)據(jù)處理系統(tǒng)中的儲層仿真的計算機實現(xiàn)方法,所述數(shù)據(jù)處理系統(tǒng)包括多個處 理器集群的處理器節(jié)點的統(tǒng)一集用場,至少一個處理器集群由與另一處理器集群中的處理 器節(jié)點具有不同處理速度的處理器節(jié)點組成,所述計算機實現(xiàn)方法包括以下步驟: (a) 響應(yīng)于用戶對儲層仿真的請求,分配來自各處理器集群的可用處理器節(jié)點; (b) 執(zhí)行將儲層數(shù)據(jù)分解為塊的域分解以用于儲層仿真; (c) 將分配的處理器節(jié)點分派給被分解的儲層數(shù)據(jù)塊的每個;以及 (d) 在分配的處理器節(jié)點中執(zhí)行所請求的儲層仿真。
2. 根據(jù)權(quán)利要求1所述的計算機實現(xiàn)方法,還包括步驟: 基于要被請求的儲層仿真的類型來形成計算負荷測量值。
3. 根據(jù)權(quán)利要求1所述的計算機實現(xiàn)方法,還包括步驟: 形成對不同處理器子集群中的處理器節(jié)點的性能的測量值。
4. 根據(jù)權(quán)利要求1所述的計算機實現(xiàn)方法,其中所述執(zhí)行域分解的步驟包括步驟: 形成用于執(zhí)行儲層仿真的對可用處理器節(jié)點的假設(shè)分組; 形成針對所述處理器節(jié)點的假設(shè)分組的處理時間的測量值;以及 根據(jù)所形成的處理時間的測量值來確定是否存在對處理器節(jié)點的最優(yōu)分組。
5. 根據(jù)權(quán)利要求4所述的計算機實現(xiàn)方法,其中所述確定步驟指示不存在最優(yōu)分組, 且所述計算機實現(xiàn)方法進一步包括步驟: 回到所述形成假設(shè)分組的步驟以形成對可用處理器節(jié)點的另一假設(shè)分組。
6. 根據(jù)權(quán)利要求5所述的計算機實現(xiàn)方法,其中在分派被分配的處理器節(jié)點之前,t匕 較步驟指示存在最優(yōu)分組。
7. -種數(shù)據(jù)處理系統(tǒng),包括多個處理器集群的處理器節(jié)點的統(tǒng)一集用場,至少一個處 理器集群由與另一處理器集群中的處理器節(jié)點具有不同處理速度的處理器節(jié)點組成,所 述數(shù)據(jù)處理系統(tǒng)中的所述處理器節(jié)點執(zhí)行步驟: (a) 響應(yīng)于用戶對儲層仿真的請求,分配來自各處理器集群的可用處理器節(jié)點; (b) 執(zhí)行將儲層數(shù)據(jù)分解為塊的域分解以用于儲層仿真; (c) 將分配的處理器節(jié)點分派給被分解的儲層數(shù)據(jù)塊的每個;以及 (d) 在分配的處理器節(jié)點中執(zhí)行所請求的儲層仿真。
8. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng)方法,其中所述處理器進一步執(zhí)行步驟: 基于要被請求的儲層仿真的類型來形成計算負荷測量值。
9. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng)方法,其中所述處理器進一步執(zhí)行步驟: 形成對不同處理器子集群中的處理器節(jié)點的性能的測量值。
10. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng)方法,其中所述處理器在執(zhí)行域分解時還執(zhí) 行步驟: 形成用于執(zhí)行儲層仿真的對可用處理器節(jié)點的假設(shè)分組; 形成針對所述處理器節(jié)點的假設(shè)分組的處理時間的測量值;以及 根據(jù)所形成的處理時間的測量值來確定是否存在對處理器節(jié)點的最優(yōu)分組。 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng)方法,其中所述處理器在執(zhí)行確定時指示不存在 最優(yōu)分組,并且所述處理器進一步執(zhí)行步驟: 回到所述形成假設(shè)分組的步驟以形成對可用處理器節(jié)點的另一假設(shè)分組。
11. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng)方法,其中所述處理器在執(zhí)行確定時指示存 在最優(yōu)分組,并且所述處理器在分派被分配的處理器節(jié)點之前執(zhí)行比較步驟。
12. -種數(shù)據(jù)存儲裝置,其在計算機可讀介質(zhì)中存儲有用于數(shù)據(jù)處理系統(tǒng)中的儲層仿 真的非瞬時計算機可操作指令,所述數(shù)據(jù)處理系統(tǒng)包括多個處理器集群的處理器節(jié)點的統(tǒng) 一集用場,至少一個處理器集群由與另一處理器集群中的處理器節(jié)點具有不同處理速度的 處理器節(jié)點組成,存儲在所述數(shù)據(jù)存儲裝置中的所述指令使得所述數(shù)據(jù)處理系統(tǒng)執(zhí)行下 列步驟: (a) 響應(yīng)于用戶對儲層仿真的請求,分配來自各處理器集群的可用處理器節(jié)點; (b) 執(zhí)行將儲層數(shù)據(jù)分解為塊的域分解以用于儲層仿真; (c) 將分配的處理器節(jié)點分派給被分解的儲層數(shù)據(jù)塊的每個;以及 (d) 在分配的處理器節(jié)點中執(zhí)行所請求的儲層仿真。
13. 根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲裝置,其中所述指令包括使得所述數(shù)據(jù)處理系統(tǒng) 執(zhí)行步驟: 基于要被請求的儲層仿真的類型來形成計算負荷測量值。
14. 根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲裝置,其中所述指令包括使得所述數(shù)據(jù)處理系統(tǒng) 執(zhí)行步驟: 形成對不同處理器子集群中的處理器節(jié)點的性能的測量值。
15. 根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲裝置,其中所述指令包括使得所述數(shù)據(jù)處理系統(tǒng) 執(zhí)行步驟: 形成用于執(zhí)行儲層仿真的對可用處理器節(jié)點的假設(shè)分組; 形成針對所述處理器節(jié)點的假設(shè)分組的處理時間的測量值;以及 根據(jù)所形成的處理時間的測量值來確定是否存在處理器節(jié)點的最優(yōu)分組。
16. 根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲裝置,其中確定步驟指示不存在最優(yōu)分組,并且 所述指令包括使得所述數(shù)據(jù)處理系統(tǒng)執(zhí)行如下步驟的指令: 回到所述形成假設(shè)分組的步驟以形成對可用處理器節(jié)點的另一假設(shè)分組。
17. 根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲裝置,其中確定步驟指示存在最優(yōu)分組,所述指 令使得所述數(shù)據(jù)處理系統(tǒng)在執(zhí)行分派被分配的處理器節(jié)點的步驟之前執(zhí)行比較步驟。
【文檔編號】G06F9/50GK104380260SQ201380028645
【公開日】2015年2月25日 申請日期:2013年5月7日 優(yōu)先權(quán)日:2012年5月31日
【發(fā)明者】雷德·阿卜杜拉·阿勒-謝赫, M·伊泰莎姆·海德爾, 邁迪·A·巴杜拉, 奧馬爾·A·阿勒-薩東 申請人:沙特阿拉伯石油公司