[發(fā)明專利]一種用于地球系統(tǒng)模式的并行耦合方法有效
| 申請?zhí)枺?/td> | 201210152947.5 | 申請日: | 2012-05-16 |
| 公開(公告)號: | CN102707932A | 公開(公告)日: | 2012-10-03 |
| 發(fā)明(設計)人: | 季穎生;楊廣文;何健 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/54 |
| 代理公司: | 北京清亦華知識產(chǎn)權代理事務所(普通合伙) 11201 | 代理人: | 廖元秋 |
| 地址: | 100084*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 地球 系統(tǒng) 模式 并行 耦合 方法 | ||
1.一種用于地球系統(tǒng)模式的并行耦合方法,其特征在于,該方法分為三個階段:基于子區(qū)域映射關系的耦合初始階段,基于子區(qū)域映射的耦合運行階段;以及耦合結束階段;
1)設分量模式A和分量模式B進行耦合,分量模式A基于網(wǎng)格A,分量模式B基于網(wǎng)格B;耦合物理量數(shù)據(jù)從分量模式A流向分量模式B,分量模式A發(fā)送耦合物理量數(shù)據(jù),分量模式B接收耦合物理量數(shù)據(jù),然后分量模式B執(zhí)行并行插值計算,將網(wǎng)格A上的耦合物理量數(shù)據(jù)插值到網(wǎng)格B上,網(wǎng)格A為源網(wǎng)格,網(wǎng)格B為目標網(wǎng)格;
基于子區(qū)域映射關系的耦合初始階段,具體包括以下步驟:
步驟1-1:從namelist文件中讀取namelist信息,包含了耦合相關的運行參數(shù)及數(shù)據(jù)文件信息,這部分信息由用戶給定;
步驟1-2:根據(jù)通信配置中的通信信息初始化MPI通信域,包括地球系統(tǒng)模式的全局通信域和分量模式A和B的局部通信域,通信配置信息由用戶給定;
步驟1-3:初始化靜態(tài)剖分:根據(jù)剖分配置中的并行剖分配置信息初始化靜態(tài)剖分,其中分量模式A基于網(wǎng)格A和分量模式B基于網(wǎng)格B的并行剖分由分量模式自身提供,通過調(diào)用耦合器提供的初始化接口函數(shù)進行參數(shù)導入,分量模式B基于網(wǎng)格A的并行剖分由用戶在剖分配置中給定剖分方式,在剖分初始化過程中調(diào)用相應的剖分算法生成,該步驟中的并行剖分為靜態(tài)剖分;
步驟1-4:初始化剖分前網(wǎng)格:分量模式的進程從網(wǎng)格配置中包含的網(wǎng)格數(shù)據(jù)文件中讀取完整的網(wǎng)格信息,該網(wǎng)格信息為剖分前網(wǎng)格;
步驟1-5:初始化插值算法:分量模式B的進程將基于網(wǎng)格B的靜態(tài)剖分作為目標網(wǎng)格單元集合搜索插值配置中包含的插值系數(shù)文件,獲取對應的插值權重系數(shù),構成插值權重矩陣;
步驟1-6:生成動態(tài)剖分:分量模式B的進程將基于網(wǎng)格B的靜態(tài)剖分作為目標網(wǎng)格單元集合搜索相應的插值權重矩陣,得到網(wǎng)格A的網(wǎng)格單元集合,然后根據(jù)基于網(wǎng)格A的靜態(tài)剖分,求出不在該進程上的網(wǎng)格單元集合作為子區(qū)域信息,將子區(qū)域信息和基于網(wǎng)格A的靜態(tài)剖分保存在一起,建立新的并行剖分,該并行剖分為動態(tài)剖分,采用該操作流程生成的動態(tài)剖分記為同一種剖分類型;
步驟1-7:將動態(tài)剖分和靜態(tài)剖分進行合并,統(tǒng)一為并行剖分:首先建立一個并行剖分鏈表,然后在并行剖分對象中搜索相同網(wǎng)格名的靜態(tài)剖分和動態(tài)剖分,再在結果中搜索相同剖分類型的動態(tài)剖分對象,最終的搜索結果存在三種情況:情況一,如果僅包含一個靜態(tài)剖分,則將其加入到并行剖分鏈表中;情況二,如果包含一個靜態(tài)剖分和一個動態(tài)剖分,則將動態(tài)剖分加入到并行剖分鏈表中;情況三,如果包含一個靜態(tài)剖分和兩個以上的動態(tài)剖分,則首先合并動態(tài)剖分的子區(qū)域信息,將合并后的子區(qū)域信息與靜態(tài)剖分保存在一起,建立新的并行剖分,將其加入到并行剖分鏈表中,最后釋放所有未加入到并行剖分鏈表中的動態(tài)剖分和靜態(tài)剖分的內(nèi)存空間;
步驟1-8:分量模式A和分量模式B根據(jù)并行路由配置和合并后的并行剖分初始化并行路由,在并行路由配置中描述了分量模式A和分量模式B需要建立進程間的通信映射關系,根據(jù)不同類型的并行剖分建立相應的并行路由,具體操作為:首先,分量模式A的進程與分量模式B的進程兩兩握手,交換基于網(wǎng)格A的并行剖分,每個進程將自身基于網(wǎng)格A的并行剖分與通過交換得到的對方完整的并行剖分進行求交,確定進程所負責網(wǎng)格單元在對方分量模式的哪個進程上,建立起通信映射關系;
步驟1-9:初始化剖分后網(wǎng)格:根據(jù)合并后的并行剖分的網(wǎng)格單元索引號從剖分前網(wǎng)格中獲取并行剖分所包含的網(wǎng)格單元信息,申請內(nèi)存空間保存這部分網(wǎng)格單元信息,建立剖分后網(wǎng)格,最后釋放保存剖分前網(wǎng)格的內(nèi)存空間;
步驟1-10:初始化數(shù)據(jù)緩沖區(qū):根據(jù)耦合物理量基本信息初始化耦合物理量命名空間,根據(jù)合并后的并行剖分的網(wǎng)格單元數(shù)來申請相應大小的內(nèi)存空間用于管理耦合物理量數(shù)據(jù)的數(shù)據(jù)緩沖區(qū);
基于子區(qū)域映射的耦合運行階段,具體包括以下步驟:
步驟2-1:首先,兩個分量模式執(zhí)行并行通信,分量模式A的進程根據(jù)并行路由將耦合物理量數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)中取出并打包,發(fā)送給分量模式B,分量模式B的進程接收分量模式A發(fā)送的數(shù)據(jù)包;
步驟2-2:然后分量模式B的進程根據(jù)并行路由進行解包,將數(shù)據(jù)復制到數(shù)據(jù)緩沖區(qū)的對應位置上;
步驟2-3:完成并行通信后,分量模式B的進程直接進行插值計算,不再執(zhí)行MPI通信來收集數(shù)據(jù);
耦合結束階段,分量模式通過調(diào)用耦合器提供的結束接口函數(shù)去釋放耦合相關的內(nèi)存空間,結束MPI通信等收尾工作;
2)設分量模式A和分量模式B進行耦合,分量模式A基于網(wǎng)格A,分量模式B基于網(wǎng)格B;耦合物理量數(shù)據(jù)從分量模式B流向分量模式A,分量模式B執(zhí)行并行插值計算,將網(wǎng)格B上的耦合物理量數(shù)據(jù)插值到網(wǎng)格A上,網(wǎng)格B為源網(wǎng)格,網(wǎng)格A為目標網(wǎng)格,然后分量模式B發(fā)送耦合物理量數(shù)據(jù),分量模式A接收耦合物理量數(shù)據(jù)。
基于子區(qū)域映射關系的耦合初始階段,具體包括以下步驟:
步驟1-1:從namelist文件中讀取namelist信息,包含了耦合相關的運行參數(shù)及數(shù)據(jù)文件信息,這部分信息由用戶給定;
步驟1-2:根據(jù)通信配置中的通信信息初始化MPI通信域,包括地球系統(tǒng)模式的全局通信域和分量模式A和B的局部通信域,通信配置信息由用戶給定;
步驟1-3:初始化靜態(tài)剖分:根據(jù)剖分配置中的并行剖分配置信息初始化靜態(tài)剖分,其中分量模式A基于網(wǎng)格A和分量模式B基于網(wǎng)格B的并行剖分由分量模式自身提供,通過調(diào)用耦合器提供的初始化接口函數(shù)進行參數(shù)導入,分量模式B基于網(wǎng)格A的并行剖分由用戶在剖分配置中給定剖分方式,在剖分初始化過程中調(diào)用相應的剖分算法生成,該步驟中的并行剖分為靜態(tài)剖分;
步驟1-4:初始化剖分前網(wǎng)格:分量模式的進程從網(wǎng)格配置中包含的網(wǎng)格數(shù)據(jù)文件中讀取完整的網(wǎng)格信息,該網(wǎng)格信息為剖分前網(wǎng)格;
步驟1-5:初始化插值算法:分量模式B的進程將基于網(wǎng)格B的靜態(tài)剖分作為源網(wǎng)格單元集合搜索插值配置中包含的插值系數(shù)文件,獲取對應的插值權重系數(shù),構成插值權重矩陣;
步驟1-6:生成動態(tài)剖分:分量模式B的進程將基于網(wǎng)格B的靜態(tài)剖分作為源網(wǎng)格單元集合搜索相應的插值權重矩陣,得到網(wǎng)格A的網(wǎng)格單元集合,然后根據(jù)基于網(wǎng)格A的靜態(tài)剖分,求出不在該進程上的網(wǎng)格單元集合作為子區(qū)域信息,將子區(qū)域信息和基于網(wǎng)格A的靜態(tài)剖分保存在一起,建立新的并行剖分,該并行剖分為動態(tài)剖分,采用該操作流程生成的動態(tài)剖分記為同一種剖分類型;
步驟1-7:將動態(tài)剖分和靜態(tài)剖分進行合并,統(tǒng)一為并行剖分:首先建立一個并行剖分鏈表,然后在并行剖分對象中搜索相同網(wǎng)格名的靜態(tài)剖分和動態(tài)剖分,再在結果中搜索相同剖分類型的動態(tài)剖分對象,最終的搜索結果存在三種情況:情況一,如果僅包含一個靜態(tài)剖分,則將其加入到并行剖分鏈表中;情況二,如果包含一個靜態(tài)剖分和一個動態(tài)剖分,則將動態(tài)剖分加入到并行剖分鏈表中;情況三,如果包含一個靜態(tài)剖分和兩個以上的動態(tài)剖分,則首先合并動態(tài)剖分的子區(qū)域信息,將合并后的子區(qū)域信息與靜態(tài)剖分保存在一起,建立新的并行剖分,將其加入到并行剖分鏈表中,最后釋放所有未加入到并行剖分鏈表中的動態(tài)剖分和靜態(tài)剖分的內(nèi)存空間;
步驟1-8:分量模式A和分量模式B根據(jù)并行路由配置和合并后的并行剖分初始化并行路由,在并行路由配置中描述了分量模式A和分量模式B需要建立進程間的通信映射關系,根據(jù)不同類型的并行剖分建立相應的并行路由,具體操作為:首先,分量模式A的進程與分量模式B的進程兩兩握手,交換基于網(wǎng)格A的并行剖分,每個進程將自身基于網(wǎng)格A的并行剖分與通過交換得到的對方完整的并行剖分進行求交,確定進程所負責網(wǎng)格單元在對方分量模式的哪個進程上,建立起通信映射關系;
步驟1-9:初始化剖分后網(wǎng)格:根據(jù)合并后的并行剖分的網(wǎng)格單元索引號從剖分前網(wǎng)格中獲取并行剖分所包含的網(wǎng)格單元信息,申請內(nèi)存空間保存這部分網(wǎng)格單元信息,建立剖分后網(wǎng)格,最后釋放保存剖分前網(wǎng)格的內(nèi)存空間;
步驟1-10:初始化數(shù)據(jù)緩沖區(qū):根據(jù)耦合物理量基本信息初始化耦合物理量命名空間,根據(jù)合并后的并行剖分的網(wǎng)格單元數(shù)來申請相應大小的內(nèi)存空間用于管理耦合物理量數(shù)據(jù)的數(shù)據(jù)緩沖區(qū);
基于子區(qū)域映射的耦合運行階段,具體包括以下步驟:
步驟2-1:首先,分量模式B的進程直接進行并行插值計算,不再執(zhí)行MPI通信來收集數(shù)據(jù),將插值計算結果存放到數(shù)據(jù)緩沖區(qū)中。由于沒有執(zhí)行通信,部分源網(wǎng)格單元上的耦合物理量數(shù)據(jù)在其它進程上進行了計算,所以這里插值計算所得為不完全結果;
步驟2-2:兩個分量模式執(zhí)行并行通信,分量模式B的進程根據(jù)并行路由將耦合物理量數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)中取出并打包,發(fā)送給分量模式A,分量模式A的進程接收分量模式B發(fā)送的數(shù)據(jù)包;
步驟2-3:分量模式A的進程根據(jù)并行路由進行解包,由于插值計算所得為部分計算結果,需要將分量模式B的不同進程發(fā)送來的相同網(wǎng)格單元上的耦合物理量數(shù)據(jù)進行合并,分量模式A的進程首先將保存這部分耦合物理量數(shù)據(jù)的數(shù)據(jù)緩沖區(qū)置0,然后根據(jù)并行路由將耦合物理量數(shù)據(jù)加到數(shù)據(jù)緩沖區(qū)對應的位置上;
耦合結束階段,分量模式通過調(diào)用耦合器提供的結束接口函數(shù)去釋放耦合相關的內(nèi)存空間,結束MPI通信等收尾工作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經(jīng)清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210152947.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





