[发明专利]一种用于地球系统模式的并行耦合方法有效

专利信息
申请号: 201210152947.5 申请日: 2012-05-16
公开(公告)号: CN102707932A 公开(公告)日: 2012-10-03
发明(设计)人: 季颖生;杨广文;何健 申请(专利权)人: 清华大学
主分类号: G06F9/38 分类号: G06F9/38;G06F9/54
代理公司: 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人: 廖元秋
地址: 100084*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种用于地球系统模式的并行耦合方法,属于地球系统模式的耦合技术领域。该方法分为三个阶段:1.基于子区域映射关系的耦合初始阶段,该阶段通过对已有的耦合初始阶段运行流程进行改动,生成基于插值算法的动态剖分和并行路由,用于并行通信和并行插值;2.基于子区域映射的耦合运行阶段,该阶段通过对已有的耦合运行阶段并行通信和并行插值的运行流程进行相应改动来实现;3.耦合结束阶段,该阶段采用已有方法。本发明方法基于子区域映射,将耦合器的并行通信与并行插值进行联合考虑,用于消除耦合器并行插值过程中的通信操作,从而减少整个系统的通信次数。该方法应用于耦合器中,旨在提升地球系统模式的耦合性能。
搜索关键词: 一种 用于 地球 系统 模式 并行 耦合 方法
【主权项】:
一种用于地球系统模式的并行耦合方法,其特征在于,该方法分为三个阶段:基于子区域映射关系的耦合初始阶段,基于子区域映射的耦合运行阶段;以及耦合结束阶段;1)设分量模式A和分量模式B进行耦合,分量模式A基于网格A,分量模式B基于网格B;耦合物理量数据从分量模式A流向分量模式B,分量模式A发送耦合物理量数据,分量模式B接收耦合物理量数据,然后分量模式B执行并行插值计算,将网格A上的耦合物理量数据插值到网格B上,网格A为源网格,网格B为目标网格;基于子区域映射关系的耦合初始阶段,具体包括以下步骤:步骤1‑1:从namelist文件中读取namelist信息,包含了耦合相关的运行参数及数据文件信息,这部分信息由用户给定;步骤1‑2:根据通信配置中的通信信息初始化MPI通信域,包括地球系统模式的全局通信域和分量模式A和B的局部通信域,通信配置信息由用户给定;步骤1‑3:初始化静态剖分:根据剖分配置中的并行剖分配置信息初始化静态剖分,其中分量模式A基于网格A和分量模式B基于网格B的并行剖分由分量模式自身提供,通过调用耦合器提供的初始化接口函数进行参数导入,分量模式B基于网格A的并行剖分由用户在剖分配置中给定剖分方式,在剖分初始化过程中调用相应的剖分算法生成,该步骤中的并行剖分为静态剖分;步骤1‑4:初始化剖分前网格:分量模式的进程从网格配置中包含的网格数据文件中读取完整的网格信息,该网格信息为剖分前网格;步骤1‑5:初始化插值算法:分量模式B的进程将基于网格B的静态剖分作为目标网格单元集合搜索插值配置中包含的插值系数文件,获取对应的插值权重系数,构成插值权重矩阵;步骤1‑6:生成动态剖分:分量模式B的进程将基于网格B的静态剖分作为目标网格单元集合搜索相应的插值权重矩阵,得到网格A的网格单元集合,然后根据基于网格A的静态剖分,求出不在该进程上的网格单元集合作为子区域信息,将子区域信息和基于网格A的静态剖分保存在一起,建立新的并行剖分,该并行剖分为动态剖分,采用该操作流程生成的动态剖分记为同一种剖分类型;步骤1‑7:将动态剖分和静态剖分进行合并,统一为并行剖分:首先建立一个并行剖分链表,然后在并行剖分对象中搜索相同网格名的静态剖分和动态剖分,再在结果中搜索相同剖分类型的动态剖分对象,最终的搜索结果存在三种情况:情况一,如果仅包含一个静态剖分,则将其加入到并行剖分链表中;情况二,如果包含一个静态剖分和一个动态剖分,则将动态剖分加入到并行剖分链表中;情况三,如果包含一个静态剖分和两个以上的动态剖分,则首先合并动态剖分的子区域信息,将合并后的子区域信息与静态剖分保存在一起,建立新的并行剖分,将其加入到并行剖分链表中,最后释放所有未加入到并行剖分 链表中的动态剖分和静态剖分的内存空间;步骤1‑8:分量模式A和分量模式B根据并行路由配置和合并后的并行剖分初始化并行路由,在并行路由配置中描述了分量模式A和分量模式B需要建立进程间的通信映射关系,根据不同类型的并行剖分建立相应的并行路由,具体操作为:首先,分量模式A的进程与分量模式B的进程两两握手,交换基于网格A的并行剖分,每个进程将自身基于网格A的并行剖分与通过交换得到的对方完整的并行剖分进行求交,确定进程所负责网格单元在对方分量模式的哪个进程上,建立起通信映射关系;步骤1‑9:初始化剖分后网格:根据合并后的并行剖分的网格单元索引号从剖分前网格中获取并行剖分所包含的网格单元信息,申请内存空间保存这部分网格单元信息,建立剖分后网格,最后释放保存剖分前网格的内存空间;步骤1‑10:初始化数据缓冲区:根据耦合物理量基本信息初始化耦合物理量命名空间,根据合并后的并行剖分的网格单元数来申请相应大小的内存空间用于管理耦合物理量数据的数据缓冲区;基于子区域映射的耦合运行阶段,具体包括以下步骤:步骤2‑1:首先,两个分量模式执行并行通信,分量模式A的进程根据并行路由将耦合物理量数据从数据缓冲区中取出并打包,发送给分量模式B,分量模式B的进程接收分量模式A发送的数据包;步骤2‑2:然后分量模式B的进程根据并行路由进行解包,将数据复制到数据缓冲区的对应位置上;步骤2‑3:完成并行通信后,分量模式B的进程直接进行插值计算,不再执行MPI通信来收集数据;耦合结束阶段,分量模式通过调用耦合器提供的结束接口函数去释放耦合相关的内存空间,结束MPI通信等收尾工作;2)设分量模式A和分量模式B进行耦合,分量模式A基于网格A,分量模式B基于网格B;耦合物理量数据从分量模式B流向分量模式A,分量模式B执行并行插值计算,将网格B上的耦合物理量数据插值到网格A上,网格B为源网格,网格A为目标网格,然后分量模式B发送耦合物理量数据,分量模式A接收耦合物理量数据。基于子区域映射关系的耦合初始阶段,具体包括以下步骤:步骤1‑1:从namelist文件中读取namelist信息,包含了耦合相关的运行参数及数据文件信息,这部分信息由用户给定;步骤1‑2:根据通信配置中的通信信息初始化MPI通信域,包括地球系统模式的全局通信域和分量模式A和B的局部通信域,通信配置信息由用户给定;步骤1‑3:初始化静态剖分:根据剖分配置中的并行剖分配置信息初始化静态剖分,其中分量模式A基于网格A和分量模式B基于网格B的并行剖分由分量模式自身提供,通过调用耦合器提供的初始化接口函数进行参数导入,分量模式B基于网格A的并行剖分由 用户在剖分配置中给定剖分方式,在剖分初始化过程中调用相应的剖分算法生成,该步骤中的并行剖分为静态剖分;步骤1‑4:初始化剖分前网格:分量模式的进程从网格配置中包含的网格数据文件中读取完整的网格信息,该网格信息为剖分前网格;步骤1‑5:初始化插值算法:分量模式B的进程将基于网格B的静态剖分作为源网格单元集合搜索插值配置中包含的插值系数文件,获取对应的插值权重系数,构成插值权重矩阵;步骤1‑6:生成动态剖分:分量模式B的进程将基于网格B的静态剖分作为源网格单元集合搜索相应的插值权重矩阵,得到网格A的网格单元集合,然后根据基于网格A的静态剖分,求出不在该进程上的网格单元集合作为子区域信息,将子区域信息和基于网格A的静态剖分保存在一起,建立新的并行剖分,该并行剖分为动态剖分,采用该操作流程生成的动态剖分记为同一种剖分类型;步骤1‑7:将动态剖分和静态剖分进行合并,统一为并行剖分:首先建立一个并行剖分链表,然后在并行剖分对象中搜索相同网格名的静态剖分和动态剖分,再在结果中搜索相同剖分类型的动态剖分对象,最终的搜索结果存在三种情况:情况一,如果仅包含一个静态剖分,则将其加入到并行剖分链表中;情况二,如果包含一个静态剖分和一个动态剖分,则将动态剖分加入到并行剖分链表中;情况三,如果包含一个静态剖分和两个以上的动态剖分,则首先合并动态剖分的子区域信息,将合并后的子区域信息与静态剖分保存在一起,建立新的并行剖分,将其加入到并行剖分链表中,最后释放所有未加入到并行剖分链表中的动态剖分和静态剖分的内存空间;步骤1‑8:分量模式A和分量模式B根据并行路由配置和合并后的并行剖分初始化并行路由,在并行路由配置中描述了分量模式A和分量模式B需要建立进程间的通信映射关系,根据不同类型的并行剖分建立相应的并行路由,具体操作为:首先,分量模式A的进程与分量模式B的进程两两握手,交换基于网格A的并行剖分,每个进程将自身基于网格A的并行剖分与通过交换得到的对方完整的并行剖分进行求交,确定进程所负责网格单元在对方分量模式的哪个进程上,建立起通信映射关系;步骤1‑9:初始化剖分后网格:根据合并后的并行剖分的网格单元索引号从剖分前网格中获取并行剖分所包含的网格单元信息,申请内存空间保存这部分网格单元信息,建立剖分后网格,最后释放保存剖分前网格的内存空间;步骤1‑10:初始化数据缓冲区:根据耦合物理量基本信息初始化耦合物理量命名空间,根据合并后的并行剖分的网格单元数来申请相应大小的内存空间用于管理耦合物理量数据的数据缓冲区;基于子区域映射的耦合运行阶段,具体包括以下步骤:步骤2‑1:首先,分量模式B的进程直接进行并行插值计算,不再执行MPI通信来收集数据,将插值计算结果存放到数据缓冲区中。由于没有执行通信,部分源网格单元上的 耦合物理量数据在其它进程上进行了计算,所以这里插值计算所得为不完全结果;步骤2‑2:两个分量模式执行并行通信,分量模式B的进程根据并行路由将耦合物理量数据从数据缓冲区中取出并打包,发送给分量模式A,分量模式A的进程接收分量模式B发送的数据包;步骤2‑3:分量模式A的进程根据并行路由进行解包,由于插值计算所得为部分计算结果,需要将分量模式B的不同进程发送来的相同网格单元上的耦合物理量数据进行合并,分量模式A的进程首先将保存这部分耦合物理量数据的数据缓冲区置0,然后根据并行路由将耦合物理量数据加到数据缓冲区对应的位置上;耦合结束阶段,分量模式通过调用耦合器提供的结束接口函数去释放耦合相关的内存空间,结束MPI通信等收尾工作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201210152947.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top