[發(fā)明專利]一種分布式水文模型并行運算方法有效
| 申請?zhí)枺?/td> | 201410371523.7 | 申請日: | 2014-07-30 |
| 公開(公告)號: | CN104142812B | 公開(公告)日: | 2017-02-01 |
| 發(fā)明(設計)人: | 劉佳嘉;周祖昊;賈仰文;王浩;賈金生;龔家國 | 申請(專利權)人: | 中國水利水電科學研究院 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京科億知識產(chǎn)權代理事務所(普通合伙)11350 | 代理人: | 湯東鳳 |
| 地址: | 100038*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 水文 模型 并行 運算 方法 | ||
技術領域
本發(fā)明屬于水文模型領域,尤其涉及一種分布式水文模型并行運算方法。
背景技術
隨著分布式水文模型應用尺度的增大,基本計算單元個數(shù)越來越多,模型運算所需運行時間也越來越多。多線程并行運算成為提高模型運算速率的重要方法。就模型并行運算方面,許多學者進行了研究,并提出不同的并行運算方法,涉及靜態(tài)/動態(tài)并行任務分配方案、時間/空間并行分配方案等。現(xiàn)有的并行運算方法假設每個子流域具有基本相同的運行時間,對不同子流域具有不同的運行時間情況的優(yōu)化效率不高,在遇到變時間步長問題時,即不同的子流域之間以及在不同的模擬循環(huán)中都具有不同的模擬運行時間,動態(tài)分配效率低。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種分布式水文模型并行運算方法,旨在解決現(xiàn)有的并行運算動態(tài)分配技術只能處理同一個模型單個模擬循環(huán)中所有子流域以及同一子流域在不同模擬循環(huán)中都具有相同的模擬運算時間的情況。
本發(fā)明是這樣實現(xiàn)的,一種分布式水文模型并行運算方法,包括以下步驟:
S1、確定循環(huán)時段初始狀態(tài),主要包括上游依賴子流域數(shù)目(初始值等于上游子流域數(shù)目)和各子流域至流域出口線路上所有子流域所需模擬時間的累積和;
S2、選擇累積運行時間最長且上游依賴河段數(shù)等于0的河段,建立節(jié)點子進程進行并行模擬,即動態(tài)分配過程;
S3、通過節(jié)點模擬并行子進程完成整個子流域產(chǎn)匯流運算模擬,結束后將其直接下游子流域的上游依賴子流域數(shù)目減1,即節(jié)點模擬過程;
S4、循環(huán)執(zhí)行動態(tài)分配過程和節(jié)點模擬過程,直到所有子流域均完成模擬,然后進入下一循環(huán)時段進行模擬。
相比于現(xiàn)有技術的缺點和不足,本發(fā)明具有以下有益效果:
(1)本發(fā)明能夠適用于對子流域采用變時間步長模擬的分布式水文模型并行運算;本發(fā)明充分考慮了不同模擬循環(huán)中各子流域具有不同的模擬時間的情景進行動態(tài)分配,提高分布式水文模型并行效率。
(2)本發(fā)明根據(jù)不同模擬時段各子流域?qū)嶋H所需運行時間進行動態(tài)分配,能夠確保累積消耗時間最長的子流域優(yōu)先模擬。
附圖說明
圖1是本發(fā)明分布式水文模型并行運算方法的步驟流程圖;
圖2是本發(fā)明實施例中子流域示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
一種分布式水文模型并行運算方法,如圖1所示,包括以下步驟:
S1、確定循環(huán)時段初始狀態(tài),主要包括上游依賴子流域數(shù)目(初始值等于上游子流域數(shù)目)和各子流域至流域出口線路上所有子流域所需模擬時間的累積和
在步驟S1中,首先根據(jù)子流域內(nèi)河網(wǎng)拓撲關系,獲取子流域上下游拓撲關系信息,如圖2和表1所示,其中,圖2為子流域示意圖,表1為子流域上下游拓撲信息(其中子流域編號0表示沒有)。
表1子流域上下游拓撲信息
這部分信息屬于基礎信息,由外部工具提供,只需計算一次即可。該步驟主要是將上游依賴子流域數(shù)目信息進行初始化,初始值等于子流域上下游拓撲關系信息中的上游子流域數(shù)目。此外,根據(jù)當此模擬循環(huán)的具體情況(例如在日尺度模擬情況下,有的子流域按日模擬需要1個單位的基本時間,而有的子流域按小時模擬需要24個單位的基本時間),確定所有子流域所需的模擬時間后,根據(jù)子流域上下游拓撲關系計算各子流域所需的累積模擬時間,例如在圖2中,1號子流域的累積模擬時間等于1號、5號、6號這三個子流域模擬時間之和。當計算出所有子流域累積模擬時間后,按值從大到小進行排列,即累積模擬時間越大的越靠前。至此,完成當前循環(huán)的初始化過程。
S2、選擇累積運行時間最長且上游依賴河段數(shù)等于0的河段,建立節(jié)點子進程進行并行模擬,即動態(tài)分配過程
在步驟S2中,動態(tài)任務分配主線程采用循環(huán)的結構進行檢測當前模擬循環(huán)過程是否所有子流域均已經(jīng)完成,如果完成則進入步驟S4;否則檢測是否有空閑節(jié)點進程,如果沒有則繼續(xù)循環(huán)檢測;如果有空閑節(jié)點進程,則進行動態(tài)節(jié)點并行任務分配。根據(jù)排序后的子流域序列從累積模擬時間最大的子流域開始依次往下,找到第一個上游依賴河段數(shù)等于0的子流域節(jié)點編號,建立節(jié)點并行運算進程,然后主進程繼續(xù)循環(huán)檢測。
S3、通過節(jié)點模擬并行子進程完成整個子流域產(chǎn)匯流運算模擬,結束后將其直接下游子流域的上游依賴子流域數(shù)目減1,即節(jié)點模擬過程
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國水利水電科學研究院,未經(jīng)中國水利水電科學研究院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410371523.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





