[發明專利]一種適用于大規模水文模擬的參數率定方法有效
| 申請號: | 201910116385.0 | 申請日: | 2019-02-13 |
| 公開(公告)號: | CN109918741B | 公開(公告)日: | 2020-11-27 |
| 發明(設計)人: | 吳佳豪;胡長軍;儲根深;李揚;吳彥飛 | 申請(專利權)人: | 北京科技大學 |
| 主分類號: | G06F30/20 | 分類號: | G06F30/20;G06Q10/06;G06Q50/26 |
| 代理公司: | 北京市廣友專利事務所有限責任公司 11237 | 代理人: | 張仲波 |
| 地址: | 100083*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 適用于 大規模 水文 模擬 參數 方法 | ||
1.一種適用于大規模水文模擬的參數率定方法,其特征在于,包括:
根據子流域間上下游匯流關系和子流域是否有觀測結果數據,對待研究流域進行分塊,得到待研究流域的塊區域關系圖,其中,每個塊中含有且僅含有一個有觀測結果數據的子流域;
根據塊區域關系圖中塊與塊間依賴關系,按從上游塊到下游塊的順序,基于并行計算技術,以塊為單位進行多級并行參數率定,外層并行將無上下游依賴關系的多個塊的參數率定任務分配到多個處理器核上并行執行,內層并行則將單個塊的參數率定任務進行任務分解后使用多個處理器核來并行執行;
其中,一個處理器核同一時刻只能執行一個進程,多個進程可以并發在一個處理器核上交替執行;
其中,所述根據子流域間上下游匯流關系和子流域是否有觀測結果數據,對待研究流域進行分塊,得到待研究流域的塊區域關系圖包括:
主進程根據子流域間上下游匯流關系和子流域是否有觀測結果數據,將塊與塊間以有觀測結果數據的子流域為邊界,對待研究流域進行分塊,使得每個塊中含有且僅含有一個有觀測結果數據的子流域而其它子流域無觀測結果數據,得到待研究流域的塊區域關系圖;
其中,所述根據塊區域關系圖中塊與塊間依賴關系,按從上游塊到下游塊的順序,基于并行計算技術,以塊為單位進行多級并行參數率定,外層并行將無上下游依賴關系的多個塊的參數率定任務分配到多個處理器核上并行執行,內層并行則將單個塊的參數率定任務進行任務分解后使用多個處理器核來并行執行包括:
主進程根據塊區域關系圖中塊與塊間依賴關系,按從上游塊到下游塊的順序,利用從上至下分塊多級并行率定策略,基于并行計算技術,以塊為單位進行多級并行參數率定,外層并行將無上下游依賴關系的多個塊的參數率定任務分配到多個處理器核上并行執行,內層并行則將單個塊的參數率定任務進行任務分解后使用多個處理器核來并行執行;
其中,所述從上至下分塊多級并行率定策略是由一個外層并行通信域和多個內層并行通信域組成的多級并行執行模式;所述外層并行通信域采用主從模式,由主進程根據當前所有待率定且可率定的區域塊的個數bs,將當前空閑進程均分為bs個內層并行通信域,并將該bs個區域塊的參數率定任務均分到該bs個內層并行通信域上并行執行;
其中,所述外層并行通信域的執行過程包括:
主進程獲得用于執行區域塊參數率定任務的從進程的個數s和塊區域關系圖中待率定區域塊的個數b,其中,所述主進程稱為外層主進程;
初始化該s個從進程的狀態為空閑態,b個區域塊的狀態為待率定態;
獲取當前所有處于空閑態的進程ss,并令ss_l等于ss中的進程個數;
遍歷區域塊關系圖,獲得當前所有待率定且可率定的區域塊bs,并令bs_l等于bs中的塊個數;
將該ss_l個從進程劃分為bs_l個內層并行通信域,并將該ss_l個從進程的狀態置為忙碌態,其中,單個內層并行通信域由多個從進程組成;
利用所述bs_l個內層并行通信域分別并行率定所述bs_l個區域塊塊上的參數;
循環等待,當某個內層并行通信域完成某個區域塊的參數率定任務,停止本次循環;
遍歷判斷待研究流域上的所有區域塊是否均已率定完畢,若率定完畢則通知所有從進程結束執行,否則,則返回執行獲取當前所有處于空閑態的進程ss的步驟;
其中,從進程的狀態分為空閑態和忙碌態;
其中,空閑態說明該從進程等待被重新調度用于參與某個區域塊的參數率定任務的執行;
忙碌態則說明該從進程正在參與某個區域塊的參數率定任務的執行;
其中,每個內層并行通信域中的所有進程采用對等并行模式,并行地執行單個區域塊的參數率定過程,其中,內層并行通信域中的所有進程為從進程;
其中,所述每個內層并行通信域中的所有進程采用對等并行模式,并行地執行單個區域塊的參數率定過程包括:
第一內層并行通信域中的所有進程接收到外層主進程分配過來的某區域塊的參數率定任務,同時將接收到任務的進程的狀態置為忙碌態,其中,所述第一內層并行通信域為任一內層并行通信域;
第一內層并行通信域中的所有進程都讀取區域塊中的所有子流域的輸入數據,進行水循環過程的模擬計算;
第一內層并行通信域中的第一個進程為該區域塊中的所有子流域生成N×n套參數,其中n是第一內層并行通信域中所有進程的個數,N是第一個進程和第一內層并行通信域中各個進程進行一次進程間通信后分配到各個進程上的參數的套數;
第一個進程通過進程間通信的方式,將新生成的N×n套參數平均分配給第一內層并行通信域中的所有進程,每個進程分配得到N套參數;
每個進程使用分配得到的N套參數在該區域塊的多個子流域上進行N次水循環模擬過程,每個進程各得到N個模擬結果;
第一個進程通過和第一內層并行通信域中所有進程進行進程間通信將所有進程上的模擬結果匯總到第一個進程上后得到N×n個模擬結果;
第一個進程計算該N×n個模擬結果和觀測結果的差異大小,得到N×n個差異值;
第一個進程判斷該N×n個差異值中是否有一個差異值滿足參數率定的預定精度要求,若滿足,則保存該差異值所對應的該區域塊中各個子流域的參數值,結束本次參數率定任務;否則,則重新為該區域塊上的子流域生成N×n套參數并返回執行將新生成的N×n套參數平均分配給第一內層并行通信域中的所有進程的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京科技大學,未經北京科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910116385.0/1.html,轉載請聲明來源鉆瓜專利網。





