[发明专利]一种分布式水文模型并行运算方法有效
申请号: | 201410371523.7 | 申请日: | 2014-07-30 |
公开(公告)号: | CN104142812B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 刘佳嘉;周祖昊;贾仰文;王浩;贾金生;龚家国 | 申请(专利权)人: | 中国水利水电科学研究院 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙)11350 | 代理人: | 汤东凤 |
地址: | 100038*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 水文 模型 并行 运算 方法 | ||
技术领域
本发明属于水文模型领域,尤其涉及一种分布式水文模型并行运算方法。
背景技术
随着分布式水文模型应用尺度的增大,基本计算单元个数越来越多,模型运算所需运行时间也越来越多。多线程并行运算成为提高模型运算速率的重要方法。就模型并行运算方面,许多学者进行了研究,并提出不同的并行运算方法,涉及静态/动态并行任务分配方案、时间/空间并行分配方案等。现有的并行运算方法假设每个子流域具有基本相同的运行时间,对不同子流域具有不同的运行时间情况的优化效率不高,在遇到变时间步长问题时,即不同的子流域之间以及在不同的模拟循环中都具有不同的模拟运行时间,动态分配效率低。
发明内容
本发明的目的在于提供一种分布式水文模型并行运算方法,旨在解决现有的并行运算动态分配技术只能处理同一个模型单个模拟循环中所有子流域以及同一子流域在不同模拟循环中都具有相同的模拟运算时间的情况。
本发明是这样实现的,一种分布式水文模型并行运算方法,包括以下步骤:
S1、确定循环时段初始状态,主要包括上游依赖子流域数目(初始值等于上游子流域数目)和各子流域至流域出口线路上所有子流域所需模拟时间的累积和;
S2、选择累积运行时间最长且上游依赖河段数等于0的河段,建立节点子进程进行并行模拟,即动态分配过程;
S3、通过节点模拟并行子进程完成整个子流域产汇流运算模拟,结束后将其直接下游子流域的上游依赖子流域数目减1,即节点模拟过程;
S4、循环执行动态分配过程和节点模拟过程,直到所有子流域均完成模拟,然后进入下一循环时段进行模拟。
相比于现有技术的缺点和不足,本发明具有以下有益效果:
(1)本发明能够适用于对子流域采用变时间步长模拟的分布式水文模型并行运算;本发明充分考虑了不同模拟循环中各子流域具有不同的模拟时间的情景进行动态分配,提高分布式水文模型并行效率。
(2)本发明根据不同模拟时段各子流域实际所需运行时间进行动态分配,能够确保累积消耗时间最长的子流域优先模拟。
附图说明
图1是本发明分布式水文模型并行运算方法的步骤流程图;
图2是本发明实施例中子流域示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一种分布式水文模型并行运算方法,如图1所示,包括以下步骤:
S1、确定循环时段初始状态,主要包括上游依赖子流域数目(初始值等于上游子流域数目)和各子流域至流域出口线路上所有子流域所需模拟时间的累积和
在步骤S1中,首先根据子流域内河网拓扑关系,获取子流域上下游拓扑关系信息,如图2和表1所示,其中,图2为子流域示意图,表1为子流域上下游拓扑信息(其中子流域编号0表示没有)。
表1子流域上下游拓扑信息
这部分信息属于基础信息,由外部工具提供,只需计算一次即可。该步骤主要是将上游依赖子流域数目信息进行初始化,初始值等于子流域上下游拓扑关系信息中的上游子流域数目。此外,根据当此模拟循环的具体情况(例如在日尺度模拟情况下,有的子流域按日模拟需要1个单位的基本时间,而有的子流域按小时模拟需要24个单位的基本时间),确定所有子流域所需的模拟时间后,根据子流域上下游拓扑关系计算各子流域所需的累积模拟时间,例如在图2中,1号子流域的累积模拟时间等于1号、5号、6号这三个子流域模拟时间之和。当计算出所有子流域累积模拟时间后,按值从大到小进行排列,即累积模拟时间越大的越靠前。至此,完成当前循环的初始化过程。
S2、选择累积运行时间最长且上游依赖河段数等于0的河段,建立节点子进程进行并行模拟,即动态分配过程
在步骤S2中,动态任务分配主线程采用循环的结构进行检测当前模拟循环过程是否所有子流域均已经完成,如果完成则进入步骤S4;否则检测是否有空闲节点进程,如果没有则继续循环检测;如果有空闲节点进程,则进行动态节点并行任务分配。根据排序后的子流域序列从累积模拟时间最大的子流域开始依次往下,找到第一个上游依赖河段数等于0的子流域节点编号,建立节点并行运算进程,然后主进程继续循环检测。
S3、通过节点模拟并行子进程完成整个子流域产汇流运算模拟,结束后将其直接下游子流域的上游依赖子流域数目减1,即节点模拟过程
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国水利水电科学研究院,未经中国水利水电科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410371523.7/2.html,转载请声明来源钻瓜专利网。