国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種集群環(huán)境下分布式水文模擬的并行化方法

      文檔序號:6397790閱讀:250來源:國知局
      專利名稱:一種集群環(huán)境下分布式水文模擬的并行化方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種集群環(huán)境下分布式水文模擬的并行化方法,技術(shù)應用領(lǐng)域為水文模擬。
      背景技術(shù)
      分布式水文模擬考慮了各種地理要素的空間異質(zhì)性,與集總式模擬相比能更準確地表達流域水文過程,從而能更好地預測自然和人為因素對流域水資源和水環(huán)境的影響。隨著遙感和地理信息技術(shù)的發(fā)展,高分辨率的地形、植被、土壤和降水數(shù)據(jù)的獲取日益方便?;谶@些高空分辨率的數(shù)據(jù)進行精細水文模擬成為一個重要的發(fā)展方向。但是由于計算能力的限制,當前高分辨率精細模擬一般僅限于小流域短歷時模擬。要進行大流域長時段的精細模擬需要借助并行計算的支持。集群是當前并行計算的主流平臺。在集群環(huán)境下進行分布式水文模型的并行化一般采用以子流域為單元進行區(qū)域分解的方式。子流域是流域的自然劃分單元,基于子流域進行并行計算只需在子流域出口與相鄰子流域進行數(shù)據(jù)交換,并行執(zhí)行的任務之間通信量很小,因此在集群環(huán)境下,基于子流域的并行計算是一種合理的分布式水文模擬并行化方式。現(xiàn)有基于子流域的并行化方法將坡面過程與河道過程的計算作為一個整體進行調(diào)度,調(diào)度規(guī)則如下:不存在上下游關(guān)系的子流域可以并行計算,存在上下游關(guān)系的子流域需串行執(zhí)行。將流域用樹型結(jié)構(gòu)表示,則樹型結(jié)構(gòu)中從葉子節(jié)點(代表源頭子流域)到根節(jié)點(代表出口子流域)的最長通路的計算時間決定了并行計算的最短時間。在計算節(jié)點數(shù)超過一定數(shù)目時,并行計算時間不會隨節(jié)點數(shù)增多而減少,并行加速比達到一個上限。該加速比上限導致了基于子流域的并行算法可伸縮性較差的問題。目前國內(nèi)外尚沒有解決這一問題的技術(shù)。

      發(fā)明內(nèi)容
      本發(fā)明解決的技術(shù)問題是:為克服集群環(huán)境下現(xiàn)有基于子流域的分布式水文模擬并行化方法存在的加速比上限問題,提供一種坡面與河道過程分離的分布式水文模擬并行化方法。該方法將作為并行計算限制因子的河道過程與可并行性較好的坡面過程分離,對坡面和河道過程采用不同的并行策略和調(diào)度方法,能突破現(xiàn)有并行方法中存在的最大加速比問題,有效地提高了分布式水文模擬的并行計算性能。實際應用證明,通過使用本發(fā)明,大流域高分辨率分布式水文模擬的效率得到很大提升。本發(fā)明的技術(shù)解決方案為:一種集群環(huán)境下分布式水文模擬的并行化方法,步驟如下:(I)首先根據(jù)柵格DEM (Digital Elevation Model)將流域按照應用目標和流域特點劃分成多個子流域。子流域劃分過程包括填洼、提取流向、流量累積、河網(wǎng)提取、河網(wǎng)編碼、子流域提取和子流域分級等步驟。子流域分級的方法為:源頭子流域為第一級,非源頭子流域的級別為其上游河段的最大級別加I。子流域分級信息將用于下面步驟中子流域計算順序的確定。(2)從DEM、土地利用圖、土壤圖、遙感影像等基礎(chǔ)信息中提取模型運行所需要的空間參數(shù),這些參數(shù)以柵格數(shù)據(jù)方式存儲,包括:坡度、葉面積指數(shù)、土壤厚度、飽和導水率、最大孔隙率等。(3)將模型所需的上述空間參數(shù)以子流域為模版進行剖分,得到按子流域組織的空間數(shù)據(jù)圖層,并以二進制格式存入數(shù)據(jù)庫,以方便以子流域為單元進行高效數(shù)據(jù)讀寫。(4)以子流域面積作為計算量的衡量指標,同時考慮子流域間的拓撲關(guān)系進行并行計算任務劃分。任務劃分一方面要考慮負載平衡,另一方面要將有上下游關(guān)系的子流域盡可能分配到一個進程計算,以減少通信開銷。該分配問題屬于NP-Hard問題,無法在多項式時間內(nèi)獲得最優(yōu)解,可利用METIS圖分解算法求得滿意解。(5)在集群環(huán)境下,對坡面和河道過程分別采用不同的并行策略進行并行計算:坡面過程的計算相互獨立,計算時不需要進行通信,可采用靜態(tài)任務調(diào)度的方式;而河道過程的計算則必須按照從上游到下游的順序依次進行,而且下游子流域的匯流計算需要上游子流域的流量作為輸入,需要考慮子流域的計算順序和進程間的通信,進行動態(tài)任務調(diào)度。該算法采用主從式架構(gòu),由一個管理進程和多個計算進程組成(如圖2所示)。管理進程負責任務的分發(fā)、計算進程間的協(xié)調(diào)以及計算結(jié)果的匯總。程序開始執(zhí)行后,管理進程讀取子流域信息和任務劃分方案,并將計算任務分配到各個計算進程。由于一個子流域的坡面過程和河道匯流計算密切相關(guān),所以一個子流域的坡面和河道計算任務由同一計算進程執(zhí)行。在運行過程中,管理進程在內(nèi)存中通過樹型結(jié)構(gòu)保存子流域間的拓撲關(guān)系,并負責計算進程間的協(xié)調(diào)和數(shù)據(jù)傳遞。在計算完成后,管理進程負責匯總各計算進程的計算結(jié)果并寫入數(shù)據(jù)庫。計算進程負責執(zhí)行具體的計算任務,在計算時根據(jù)計算特點將任務分為三類:A類:源頭子流域坡面過程和河道匯流整體計算;B類:非源頭子流域的坡面過程計算;C類:非源頭子流域的的河道匯流計算;其中,各個子流域的前兩類計算任務是相互獨立的,所以計算進程收到計算任務后先進行這兩類任務的計算,然后進行C類任務的計算。在同一類任務中,子流域級別越小(距源頭子流域越近),優(yōu)先級越高。這樣設(shè)計的原因在于,只有A類和C類任務中的河道匯流完成后,其下游子流域的河道匯流才可以執(zhí)行,優(yōu)先執(zhí)行上游子流域的計算任務可以盡早解除對下游子流域的計算限制。對A類和B類任務,計算前需先從數(shù)據(jù)庫中讀取模擬所需的流域數(shù)據(jù)(包括河道匯流所需數(shù)據(jù));對于C類任務計算前需從當前計算進程或管理進程獲取上游子流域的出口流量數(shù)據(jù)。每個計算任務完成后,計算進程將用戶指定的計算結(jié)果寫到數(shù)據(jù)庫,并檢查計算完成子流域的下游子流域是否在同一節(jié)點,如果在同一節(jié)點,則將子流域出口的計算結(jié)果保存在內(nèi)存供下游子流域計算使用;如果下游子流域不在同一節(jié)點,則將出口的計算結(jié)果發(fā)送給管理進程,再由管理進程轉(zhuǎn)發(fā)給需要的計算進程。當所有計算進程完成計算任務后,計算進程通知管理進程計算結(jié)束,然后管理進程和計算進程都退出。本發(fā)明的原理是:對于基于子流域的分布式水文模擬的并行化,由于河道過程的計算存在上下游依賴關(guān)系,可并行性較差,導致了加速比上限和算法的可伸縮性問題。但河道過程的計算一般只占水文模擬總計算時間的一小部分,占總計算時間相當大比例的坡面過程計算具有很好的可并行性。所以將作為限制因子的河道過程從水文模擬計算中分離出來,能顯著提高水文模擬的總體并行性能。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:現(xiàn)有基于子流域的分布式水文模擬的并行化方法將坡面過程和河道過程作為一個整體對待,導致河道過程引起的加速比上限成為整個水文模擬的性能瓶頸。本發(fā)明將作為限制因子的河道過程分離出來,突破了現(xiàn)有基于子流域的并行化方法的性能瓶頸,能顯著提高大流域高分辨率分布式水文模擬的效率。


      圖1為本發(fā)明的實現(xiàn)流程圖;圖2為本發(fā)明的坡面和河道過程分離的并行算法流程圖;圖3為在贛江上游流域利用本發(fā)明提出的方法和現(xiàn)有基于子流域的方法進行分布式水文模擬并行計算的加速比對比圖。
      具體實施例方式下面結(jié)合如圖1所示的流程圖,以贛江上游流域(6.27萬km2)的分布式水文模擬并行計算為例,說明本發(fā)明的具體實施方法:(I)獲取籍江上游流域 90m 分辨率的 SRTM(Shuttle Radar Topography Mission)DEM數(shù)據(jù),并按照如下步驟進行子流域劃分:填洼、提取流向、流量累積、河網(wǎng)提取、河網(wǎng)編碼、子流域提取。然后,將提取的子流域矢量化,并根據(jù)上下游關(guān)系進行子流域分級,分級方法為:源頭子流域為第一級,非源頭子流域的級別為其上游河段的最大級別加I。子流域分級信息將用于下面步驟中子流域計算順序的確定。(2)從DEM、土地利用圖、土壤圖、遙感影像等基礎(chǔ)信息中提取模型運行所需要的空間參數(shù),這些參數(shù)以柵格數(shù)據(jù)方式存儲,包括:坡度、葉面積指數(shù)、土壤厚度、飽和導水率、最大孔隙率等。(3)將模型所需的上述空間參數(shù)以子流域為模版進行剖分,得到按子流域組織的空間數(shù)據(jù)圖層,并以GridFS 二進制格式存入MongoDB數(shù)據(jù)庫(一種NoSQL數(shù)據(jù)庫),以方便以子流域為單元進行高效數(shù)據(jù)讀寫。(4)計算各個子流域的面積,并以子流域面積作為計算量的衡量指標,同時考慮子流域間的拓撲關(guān)系進行并行計算任務劃分。任務劃分一方面要考慮負載平衡,另一方面要將有上下游關(guān)系的子流域盡可能分配到一個進程計算,以減少通信開銷。該分配問題屬于NP-Hard問題,無法在多項式時間內(nèi)獲得最優(yōu)解,可利用METIS圖分解算法求得滿意解。(5)在集群環(huán)境下,對坡面和河道過程分別采用不同的并行策略進行并行計算:坡面過程的計算相互獨立,計算時不需要進行通信,可采用靜態(tài)任務調(diào)度的方式;而河道過程的計算則必須按照從上游到下游的順序依次進行,而且下游子流域的匯流計算需要上游子流域的流量作為輸入,需要考慮子流域的計算順序和進程間的通信,進行動態(tài)任務調(diào)度。該算法采用主從式架構(gòu),由一個管理進程和多個計算進程組成(如圖2所示),進程間通信采用MPI (Message Passing Interface)消息傳遞的方式進行。管理進程負責任務的分發(fā)、計算進程間的協(xié)調(diào)以及計算結(jié)果的匯總。程序開始執(zhí)行后,管理進程讀取子流域信息和任務劃分方案,并用MPI_Scatter函數(shù)將計算任務分配信息發(fā)送給各個計算進程。由于一個子流域的坡面過程和河道匯流計算密切相關(guān),所以一個子流域的坡面和河道計算任務由同一計算進程執(zhí)行。在運行過程中,管理進程在內(nèi)存中通過樹型結(jié)構(gòu)保存子流域間的拓撲關(guān)系,并負責計算進程間的協(xié)調(diào)和數(shù)據(jù)傳遞。在計算完成后,管理進程負責匯總各計算進程的計算結(jié)果并寫入MongoDB數(shù)據(jù)庫。計算進程負責執(zhí)行具體的計算任務,在計算時根據(jù)計算特點將任務分為三類:A類:源頭子流域坡面過程和河道匯流整體計算;B類:非源頭子流域的坡面過程計算;C類:非源頭子流域的的河道匯流計算;其中,各個子流域的前兩類計算任務是相互獨立的,所以計算進程收到計算任務后先進行這兩類任務的計算,然后進行C類任務的計算。在同一類任務中,子流域級別越小(距源頭子流域越近),優(yōu)先級越高。這樣設(shè)計的原因在于,只有A類和C類任務中的河道匯流完成后,其下游子流域的河道匯流才可以執(zhí)行,優(yōu)先執(zhí)行上游子流域的計算任務可以盡早解除對下游子流域的計算限制。對A類和B類任務,計算前需先從數(shù)據(jù)庫中讀取模擬所需的流域數(shù)據(jù)(包括河道匯流所需數(shù)據(jù));對于C類任務計算前需從當前計算進程或管理進程獲取上游子流域的出口流量數(shù)據(jù)。每個計算任務完成后,計算進程將用戶指定的計算結(jié)果寫到數(shù)據(jù)庫,并檢查計算完成子流域的下游子流域是否在同一節(jié)點,如果在同一節(jié)點,則將子流域出口的計算結(jié)果保存在內(nèi)存供下游子流域計算使用;如果下游子流域不在同一節(jié)點,則將出口的計算結(jié)果發(fā)送給管理進程,再由管理進程轉(zhuǎn)發(fā)給需要的計算進程。當所有計算進程完成計算任務后,計算進程通知管理進程計算結(jié)束,然后管理進程和計算進程都退出。為驗證本發(fā)明方法在實際應用中的性能,分別利用本發(fā)明提出的并行化方法與現(xiàn)有基于子流域的并行化方法,在贛江上游流域進行了分布式水文模擬。模擬的水文過程包括冠層截留、蒸發(fā)、入滲、地表徑流、壤中流、滲漏、地下水運動、河道匯流等,各過程的模擬算法采用WetSpa Extension中的相應算法。模擬單元采用規(guī)則柵格,在空間分辨率為90m的情況下,參與計算的單個柵格數(shù)據(jù)的行列數(shù)為3228*3951。計算平臺為由三個DELLPowerEdge R710節(jié)點組成的集群,每個節(jié)點的CPU為Xeon E5645 (雙路6核),內(nèi)存為32G。兩種并行化方法的加速比測試結(jié)果如圖3所示,可以看出使用本發(fā)明的方法進行分布式水文模擬的加速比優(yōu)于現(xiàn)有基于子流域的并行化方法,能顯著提高流域分布式水文模擬的效率,具有較好的實用價值。本發(fā)明說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。所有上述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視作本發(fā)明的保護范圍。
      權(quán)利要求
      1.一種集群環(huán)境下分布式水文模擬的并行化方法,其特征在于實現(xiàn)步驟如下: (1)根據(jù)柵格DEM(Digital Elevation Model)將流域按照應用目標和流域特點劃分成多個子流域,子流域劃分過程包括填洼、提取流向、流量累積、河網(wǎng)提取、河網(wǎng)編碼、子流域提取和子流域分級;所述子流域分級的方法為:源頭子流域為第一級,非源頭子流域的級別為其上游河段的最大級別加I ;子流域分級信息將用于下面步驟中子流域計算順序的確定; (2)從DEM、土地利用圖、土壤圖、遙感影像等基礎(chǔ)信息中提取模型運行所需要的空間參數(shù)(以柵格方式存儲); (3)以子流域為模版,對分布式水文模擬所需的柵格數(shù)據(jù)進行剖分,得到按子流域組織的空間數(shù)據(jù),并以二進制格式存入數(shù)據(jù)庫,以便進行以子流域為單元的高效數(shù)據(jù)讀寫; (4)以子流域面積作為計算量的衡量指標,同時考慮子流域間的拓撲關(guān)系進行并行計算任務劃分; (5)在集群環(huán)境下,對坡面和河道過程分別采用不同的并行策略進行并行計算:坡面過程的計算相互獨立,計算時不需要進行通信,可采用靜態(tài)任務調(diào)度的方式;而河道過程的計算則必須按照從上游到下游的順序依次進行,而且下游子流域的匯流計算需要上游子流域的流量作為輸入,需要考慮子流域的計算順序和進程間的通信,進行動態(tài)任務調(diào)度;并行計算采用主從式架構(gòu),由一個管理進程和多個計算進程組成; 所述管理進程負責任務的分發(fā)、計算進程間的協(xié)調(diào)以及計算結(jié)果的匯總;計算開始時,管理進程讀取子流域信息和任務劃分方案,并將計算任務分配到各個計算進程;由于一個子流域的坡面過程和河道匯流計算密切相關(guān),所以一個子流域的坡面和河道計算任務由同一計算進程執(zhí)行;在運行過程中,管理進程在內(nèi)存中通過樹型結(jié)構(gòu)保存子流域間的拓撲關(guān)系,并負責計算進程間的協(xié)調(diào)和數(shù)據(jù)傳遞;在計算完成后,管理進程負責匯總各計算進程的計算結(jié)果并將匯總的全局結(jié)果寫入數(shù)據(jù)庫; 所述計算進程負責執(zhí)行具體的計算任務,在計算時根據(jù)計算特點將任務分為三類: A類:源頭子流域坡面過程和河道匯流整體計算; B類:非源頭子流域的坡面過程計算; C類:非源頭子流域的的河道匯流計算; 其中,各個子流域的前兩類計算任務是相互獨立的,計算進程收到計算任務后先進行這兩類任務的計算,然后進行C類任務的計算;在同一類任務中,子流域級別越小,即距源頭子流域越近,優(yōu)先級越高; 對A類和B類任務,計算前需先從數(shù)據(jù)庫中讀取模擬所需的流域數(shù)據(jù),包括河道匯流所需數(shù)據(jù);對于C類任務計算前需從當前計算進程或管理進程獲取上游子流域的出口流量數(shù)據(jù); 每個計算任務完成后,計算進程將用戶指定的計算結(jié)果寫到數(shù)據(jù)庫,并檢查計算完成子流域的下游子流域是否在同一節(jié)點,如果在同一節(jié)點,則將子流域出口的計算結(jié)果保存在內(nèi)存供下游子流域計算使用;如果下游子流域不在同一節(jié)點,則將出口的計算結(jié)果發(fā)送給管理進程,再由管理進程轉(zhuǎn)發(fā)給需要的計算進程; 當所有計算進程完成計算任務后,計算進程通知管理進程計算結(jié)束,然后管理進程和計算進程結(jié)束。
      全文摘要
      一種集群環(huán)境下分布式水文模擬的并行化方法,對分布式水文模擬并行計算中的限制因子——匯流過程計算與并行性較好的坡面過程計算區(qū)分對待,研發(fā)了一種集群環(huán)境下的并行算法,以提高計算效率。技術(shù)方案為進行子流域劃分和分級;以子流域為模版,將輸入數(shù)據(jù)進行剖分并存入數(shù)據(jù)庫;以子流域面積為計算量的衡量指標,同時考慮子流域間的拓撲關(guān)系進行計算任務劃分;以子流域為單元,在集群環(huán)境下進行并行計算,其中,坡面過程計算采用靜態(tài)調(diào)度,河道過程計算采用動態(tài)調(diào)度;計算完成后,將結(jié)果寫入數(shù)據(jù)庫。本發(fā)明突破了集群環(huán)境下現(xiàn)有分布式水文模擬并行化方法的性能瓶頸,顯著提高了并行性能,在大流域高分辨率分布式水文模擬方面具有廣闊的應用前景。
      文檔編號G06F9/38GK103092572SQ201310011570
      公開日2013年5月8日 申請日期2013年1月11日 優(yōu)先權(quán)日2013年1月11日
      發(fā)明者朱阿興, 劉軍志, 吳輝, 劉永波, 秦承志 申請人:中國科學院地理科學與資源研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1