CN109918741A - 一种适用于大规模水文模拟参数率定方法及率定装置 - Google Patents
一种适用于大规模水文模拟参数率定方法及率定装置 Download PDFInfo
- Publication number
- CN109918741A CN109918741A CN201910116385.0A CN201910116385A CN109918741A CN 109918741 A CN109918741 A CN 109918741A CN 201910116385 A CN201910116385 A CN 201910116385A CN 109918741 A CN109918741 A CN 109918741A
- Authority
- CN
- China
- Prior art keywords
- calibration
- block
- parallel
- basin
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种适用于大规模水文模拟参数率定方法及率定装置,能够提高寻优速度。所述方法包括:根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图,其中,每个块中含有且仅含有一个有观测结果数据的子流域;根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行。本发明涉及水文模拟领域。
Description
技术领域
本发明涉及水文模拟领域,特别是指一种适用于大规模水文模拟参数率定方法及率定装置。
背景技术
水文模拟作为水资源开发利用、防洪减灾、水库管理、道路修建、城市规划、点源污染评价、人类活动的流域响应等领域的支柱,与人类的生存息息相关。而参数率定作为直接影响水文模拟结果准确度的重要环节,如何提高其在大空间尺度、长时间尺度、细网格划分、高维参数水文模拟背景下的率定速度和精度,一直是水文领域研究的热点问题。参数率定的目标是尽可能快地为待研究流域中的各个子流域寻找一套“最优”的模型参数组,使得使用该参数组进行水文模拟后的模拟结果和观测结果的差异最小。
假设某待研究流域被划分为了N个子流域,每个子流域使用的水文模型参数个数是p,每个参数在一定范围内的取值都有a种可能,同时每个子流域进行一个时间步的水循环模拟过程耗时为t,率定期间每次迭代每个子流域都需要模拟S个时间步。在此种假设下,若采用水文领域最原始的参数寻优策略:每次迭代均为待研究流域中的每个子流域根据相应算法构建一套模型参数,并使用该套参数在整个流域上进行水循环模拟计算,再根据某个或者某些子流域的模拟结果和观测结果的差异大小来判断率定过程是可以结束还是需要进行下一次的迭代寻优。该策略由于每次迭代均会在整个待研究流域上进行水循环模拟计算,故其进行每一次迭代将耗时N×t×S,而确保该策略一定能寻得“最优”参数组所需要的迭代次数最少为aN×p,故而确保该策略一定能寻得“最优”参数组所需要的最少时间Tmin将为aN×p×(N×t×S)。而在实际大规模水文模拟应用中,子流域个数N往往至少在百的数量级,模型参数个数p往往也在十几到几十的数量级,而每个参数取值的可能性a也需要保证在百的数量级以上,模拟的时间步个数S也往往在百的数量级以上,即使单子流域单时间步上的水循环模拟计算的耗时t仅在毫秒级别,在单核处理器上直接使用该策略进行参数率定并且确保一定能寻得“最优”参数组的耗时Tmin将高达100100×10×(100×0.001×100)秒,即10×102000秒,约为1.16×101996天,这样的寻优速度是令人难以忍受的。
为了加快该策略在大规模水文模拟参数率定的寻优速度,部分学者提出了一种“从上至下一次率定一个子流域”的改进策略:根据上下游子流域的汇流关系,在待研究流域中从上到下一个子流域接着一个子流域去进行率定,该策略由于每次只需要率定一个子流域,所以该策略每次迭代将只耗时t×S,且每率定一个子流域需要的最大迭代次数为ap,则率定完整个流域中的所有子流域故并确保一定能寻得“最优”参数组所需要的最少时间Tmin仅为N×ap×(t×S),大大减少了参数率定所花费的时间。但是该策略要求每个子流域上都有实测数据作对比,而在实际中该条件却难以满足,因为往往只有部分子流域所在区域才会建有观测站点,从而实际应用该策略时一般采用的方法是人工根据一定规则来在无观测值子流域上生成观测数据,但是该方法会影响最终寻得的参数组的精度。
另一方面,虽然“从上至下一次率定一个子流域”的参数率定策略减少了参数率定所花费的时间,但是其采用的是串行计算技术,在大规模复杂模型下的串行执行参数率定速度较慢。
发明内容
本发明要解决的技术问题是提供一种适用于大规模水文模拟参数率定方法及率定装置,以解决现有技术所存在的“从上至下一次率定一个子流域”的参数率定策略中对每个子流域观测数据的依赖问题及串行执行参数率定速度较慢的问题。
为解决上述技术问题,本发明实施例提供一种适用于大规模水文模拟参数率定方法,包括:
根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图,其中,每个块中含有且仅含有一个有观测结果数据的子流域;
根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,一个处理器核同一时刻只能执行一个进程,多个进程可以并发在一个处理器核上交替执行。
进一步地,所述根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图包括:
主进程根据子流域间上下游汇流关系和子流域是否有观测结果数据,将块与块间以有观测结果数据的子流域为边界,对待研究流域进行分块,使得每个块中含有且仅含有一个有观测结果数据的子流域而其它子流域无观测结果数据,得到待研究流域的块区域关系图。
进一步地,所述根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行包括:
主进程根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,利用从上至下分块多级并行率定策略,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,所述从上至下分块多级并行率定策略是由一个外层并行通信域和多个内层并行通信域组成的多级并行执行模式;所述外层并行通信域采用主从模式,由主进程根据当前所有待率定且可率定的区域块的个数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套参数平均分配给第一内层并行通信域中的所有进程的步骤。
进一步地,所述保存该差异值所对应的该区域块中各个子流域的参数值,结束本次参数率定任务包括:
第一个进程通过进程间通信通知第一内层并行通信域中的所有进程,该区域块的参数率定任务已经完成并将该区域块的状态置为已率定,同时通知外层主进程有新率定完成的区域块;
第一内层并行通信域中的所有进程结束本次参数率定任务,同时将第一内层并行通信域中的所有进程的状态置为空闲态,等待外层主进程的重新调度。
本发明实施例还提供一种适用于大规模水文模拟参数率定装置,包括:
分块模块,用于根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图,其中,每个块中含有且仅含有一个有观测结果数据的子流域;
率定模块,用于根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,一个处理器核同一时刻只能执行一个进程,多个进程可以并发在一个处理器核上交替执行。
本发明的上述技术方案的有益效果如下:
上述方案中,根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图;根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;这样,利用“从上至下分块率定”的水文模拟参数率定策略,在仅有部分子流域有观测数据的待研究流域进行快速的参数率定过程而不影响最终可能获得的参数组的精度,从而解决现有的“从上至下一次率定一个子流域”的参数率定策略中对每个子流域观测数据的依赖问题,并在进行参数率定的每次迭代时,可使用多个处理器核并行地执行参数率定任务,能够大幅度提高参数率定的执行速度和执行结果的准确度。
附图说明
图1为本发明实施例提供的适用于大规模水文模拟参数率定方法的流程示意图;
图2为本发明实施例提供的流域分块示意图;
图3为本发明实施例提供的外层并行通信域的执行流程示意图;
图4为本发明实施例提供的内层并行通信域并行率定单个区域块的执行流程示意图;
图5为本发明实施例提供的适用于大规模水文模拟参数率定装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的“从上至下一次率定一个子流域”的参数率定策略中对每个子流域观测数据的依赖的问题及串行执行参数率定速度较慢的问题,提供一种适用于大规模水文模拟参数率定方法及率定装置。
实施例一
如图1所示,本发明实施例提供的适用于大规模水文模拟参数率定方法,包括:
S101,根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图,其中,每个块中含有且仅含有一个有观测结果数据的子流域;
S102,根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,一个处理器核同一时刻只能执行一个进程,多个进程可以并发在一个处理器核上交替执行。
本发明实施例所述的适用于大规模水文模拟参数率定方法,根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图;根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;这样,利用“从上至下分块率定”的水文模拟参数率定策略,在仅有部分子流域有观测数据的待研究流域进行快速的参数率定过程而不影响最终可能获得的参数组的精度,从而解决现有的“从上至下一次率定一个子流域”的参数率定策略中对每个子流域观测数据的依赖问题,并在进行参数率定的每次迭代时,可使用多个处理器核并行地执行参数率定任务,能够大幅度提高参数率定的执行速度和执行结果的准确度。
为了更好地理解本发明实施例,对单处理器核、多处理器核、多核处理器和单核处理器进行简要说明:
单处理器核是单个处理器核的简称,多处理器核是多个处理器核的简称。进程依赖于处理器核的计算资源,一个处理器核(不含超线程技术)同一时刻只能执行一个进程,但是多个进程可以并发在一个处理器核上交替执行(并发是多个进程交替占用处理器核,同一时刻还是只有一个任务在跑;并行是多个进程同时执行)。
处理器分为多核处理器和单核处理器,多核处理器中含有多个处理器核,单核处理器只含有一个处理器核;所以,单处理器核指的是处理器中的一个处理器核,而单核处理器则是只含有一个核的处理器。多处理器核指的是多个处理器核(这些核可能在不同处理器上),而多核处理器指的是一个含有多个核的处理器。
本实施例中,所述参数指的是进行水循环过程模拟所使用的水文模型的描述参数,水文模型就是由一系列参数组成的方程,这些方程根据输入数据进行计算可以得到模拟结果,假设方程是很简单的y=kx+b,其中,k,b就是参数,x就是输入数据,y就是模拟结果。
本实施例中,参数率定就是根据x和y以及y的实测值,来寻找使得y和y的实测值的差异最小的最优参数值的过程。当然实际进行水循环过程模拟使用的水文模型很多,实际应用中的水文模型也比较复杂,以新安江模型为例,该模型有流域蒸发折算系数KC、深层蒸散发折算系数C等13个参数,参数率定的目的就是为每个子流域都找到“最优”的13个参数值,提高后续使用这些“最优”参数进行水文模拟的结果精度。
本实施例中,率定后得到的参数的优劣,直接决定了使用这些参数进行水文模拟过程的结果的精度。参数率定是正式应用水文模拟的必要前提,使用参数率定所得到的“最优”参数进行水文模拟后的模拟结果才有参考意义。更快地率定得到更优的参数,可以使得水文模拟在水资源开发利用、防洪减灾、水库管理、道路修建、城市规划、点源污染评价、人类活动的流域响应等方面的应用周期缩减、应用精度提高。
假设某待研究流域被划分为了N个子流域,每个子流域使用的水文模型参数个数是p,每个参数在一定范围内的取值都有a种可能,同时每个子流域进行一个时间步的水循环模拟过程耗时为t,率定期间每次迭代每个子流域都需要模拟S个时间步,该N个子流域分块后平均每个块中含有q(1<=q<=N)个子流域,在“从上至下分块率定”的水文模拟参数率定策略中,每次迭代时由于需要在q个子流域上进行水文模拟的过程,使得该策略每次迭代耗时q×t×S,而率定完成该q个子流域需要的最大迭代次数为aq×p,同时该待研究流域一共N÷q个这样的块需要进行率定,则使用该策略率定完整个流域中的所有子流域并确保一定能寻得“最优”参数组所需要的最少时间Tmin为(N÷q)×aq×p×(q×t×S),能够提高寻优速度。
本实施例中,主进程P0根据子流域间上下游汇流关系(如图2左半部分)和子流域是否有观测结果数据,将块与块间以有观测结果数据的子流域为边界,对待研究流域进行分块,使得每个块中含有且仅含有一个有观测结果数据的子流域而其它子流域无观测结果数据,得到待研究流域的块区域关系图。分块过程示意图如图2所示,图2中将左边含有9个子流域的待研究流域经上述原则划分为了4个块,得到了右边的块区域关系图。
本实施例中,图2中左半部分是抽象出来的待研究流域中各个子流域的汇流关系图,该汇流关系图中,每个实体圆圈代表一个子流域,实体圆圈中第一行数字代表该子流域的编号,第二行数字代表该子流域是否有观测结果数据(0代表没有,1代表有),实线圆圈间的有向线段代表子流域间的上下游汇流关系(箭头的方向即为水的流向);图2中右半部分则是按本发明实施例提出的分块原则把左边的待研究区域进行分块后的块区域关系图,其中一个虚线椭圆则代表一个块,虚线椭圆间的有向线段则代表块与块在进行参数率定时的依赖关系(有向线段的终点所连接的块依赖于起点所连接的块)。
本实施例中,在流域分块后,在分块的基础上引入并行计算,提出“从上至下分块多级并行”率定策略,来进一步加速参数寻优过程,
本实施例中,所述“从上至下分块多级并行”率定策略是由一个外层并行通信域和多个内层并行通信域组成的多级并行执行模式。
图3是外层并行通信域的执行流程示意图。图3左侧是多级并行中外层并行通信域中的主进程P0的执行流程示意图,P0进程按照图3执行流程来进行区域块参数率定任务的分配和进程资源的调度;图3右侧则是多个区域块被同时率定的示意图,同时每个区域块的参数率定任务由多个进程组成的内层并行通信域并行执行,单个区域块的并行率定流程示意图如图4所示。
本实施例中,所述外层并行通信域采用主从并行模式,由主进程P0根据当前所有待率定且可率定的区域块的个数bs,将当前空闲进程均分为bs个内层并行通信域,并将该bs个区域块的参数率定任务均分到该bs个内层并行通信域上并行执行;其执行流程示意图如图3所示,具体可以包括以下步骤:
A11,主进程P0获得从进程个数s和区域块个数b:获取初始化时指定的用于执行区域块参数率定任务的从进程的个数s,以及块区域关系图中待率定区域块的个数b,其中,所述主进程P0称为外层主进程。
A12,主进程P0初始化该s个从进程的状态为空闲态,该b个区域块的状态为待率定态。
本实施例中,从进程的状态分为空闲态和忙碌态;其中,空闲态说明该从进程等待被重新调度用于参与某个区域块的参数率定任务的执行,忙碌态则说明该从进程正在参与某个区域块的参数率定任务的执行。
本实施例中,区域块的状态包括:已率定、率定中、待率定和可率定这四种;其中,已率定说明该区域块中的各个子流域上的参数已率定完毕,而待率定则指的是该区域块上的参数率定任务还未开始执行,率定中则代表该区域块上的参数率定任务正在被执行,可率定是对处于待率定状态的区域块的进一步划分,当某个待率定的块在块区域关系图中无上游区域块或者其所依赖的上游区域块的率定任务均已完成时,该区域块才会处于可率定状态,同时只有处于可率定态的区域块上的参数率定任务才能被调度执行。
A13,主进程P0获取当前所有处于空闲态的进程ss,并令ss_l等于ss中的进程个数,准备调度该ss_l个空闲从进程执行区域块的参数率定任务。
A14,主进程P0遍历区域块关系图,获得当前所有待率定且可率定的块bs,并令bs_l等于bs中的块个数,准备开始使用步骤A13中获得的ss_l个从进程来并行执行该ss_l个区域块的参数率定任务。
A15,主进程P0将该ss_l个进程划分为bs_l个内层并行通信域,用于同时执行该bs_l个区域块上的参数率定任务,并将该ss_l个进程的状态置为忙碌态:单个内层并行通信域由多个从进程组成,该些从进程会被从0开始依次递增编号,作为其在该内层并行通信域中的标识。
A16,该bs_l个内层并行通信域分别开始并行率定该bs_l个区域块上的参数:该bs_l个内层并行通信域依次接收该bs_l个区域块的参数率定任务,单个内层并行通信域中的所有进程并行率定单个区域块的过程将按照图4所示的流程进行。
A17,主进程P0循环等待,当某个内层并行通信域完成某个区域块的参数率定任务,才停止本次循环,继续往下执行,否则,继续执行步骤A17。
A18,主进程P0遍历判断待率定流域上的所有区域块是否均已率定完毕,若率定完毕则通知所有从进程结束执行,反之则跳转到步骤A13继续率定其它待率定的区域块。
A19,主进程P0结束整个率定过程。
本实施例中,图4是内层并行通信域并行率定单个区域块的执行流程示意图。图4展示了使用由Pi0,Pj1,…,Pmn这n个进程组成的内层并行通信域,并行化执行单个区域块的参数率定任务的执行流程;其中,Pkl是进程标识:第一个下标k是该进程在的所有进程(包括外层主进程在内)中的唯一编号,第二个下标l则是该进程在本内层并行通信域中的编号,图4中区域块a泛指待研究流域中的任一区域块。
本实施例中,被主进程P0划分到同一内层并行通信域中的所有进程将采用对等并行模式,来并行执行单个区域块的参数率定任务,其中,内层并行通信域中的所有进程为从进程,其执行流程示意图如图4所示,具体可以包括以下步骤:
B11,某内层并行通信域中的所有进程接收到外层主进程P0分配过来的某区域块的参数率定任务,同时将接收到任务的进程的状态置为忙碌态,准备开始并行执行。
B12,该内层并行通信域中的所有进程都读取区域块中的所有子流域的输入数据,用于进行水循环过程的模拟计算。
本实施例中,所述输入数据指的是水循环过程模拟计算时需要的一些外界输入数据,例如:降雨,气温,土壤状态等数据;模拟计算结果指的是使用这些输入数据进行水循环过程模拟计算所得到的结果;观测结果数据指的是这些模拟计算结果的实际测量值,即模拟结果的真实值,如河道的观测流量数据等。
B13,该内层并行通信域中的Pi0进程(i为该进程在包括外层主进程在内的所有进程中的唯一编号,0是该进程在本内层并行通信域中的编号)为该区域块中的所有子流域生成N×n套参数,其中,n是本内层并行通信域中所有进程的个数,N是Pi0进程和本内存并行通信域中各个进程进行一次进程间通信后分配到各个进程上的参数的套数。
B14,该内层并行通信域中的Pi0进程通过进程间通信的方式,将新生成的N×n套参数数据平均分配给本通信域中的所有进程,每个进程分配得到N套参数。
B15,该内层并行通信域中的所有进程使用通过进程间通信分配得到的N套参数,同时在该区域块的多个子流域上进行N次水循环模拟过程,,每个进程各得到N个模拟结果。
B16,该内层并行通信域中的Pi0进程通过和本通信域中所有进程进行进程间通信将所有进程上的模拟结果汇总到Pi0进程上后得到N×n个模拟结果。
B17,该内层并行通信域中的Pi0进程计算该N×n个模拟结果和观测结果的差异大小,得到N×n个差异值。
B18,该内层并行通信域中的Pi0判断该N×n个差异值中是否有一个差异值满足参数率定的预定精度要求,若满足,则保存该差异值所对应的该区域块中各个子流域的参数值并继续往下执行步骤B19,反之则重新为该区域块上的子流域生成N×n套参数并跳转到步骤B14继续执行。
B19,该内层并行通信域中的Pi0通过进程间通信通知本内存并行通信域中的所有进程,该区域块的参数率定任务已经完成并将该区域块的状态置为已率定,同时通知外层主进程有新率定完成的区域块;本内层并行通信域中的所有进程结束本次参数率定任务,同时将本内层并行通信域中的所有进程的状态置为空闲态,等待外层主进程P0的重新调度。
本发明与现有的“从上至下一次率定一个子流域”的参数率定策略相比,优势在于:
1)可拓展性强,适用范围广:可在仅有部分子流域有观测数据的待研究流域进行快速的参数率定过程而不影响最终可能获得的参数组的精度。
2)减少参数寻优迭代次数,寻优速度快:一次参数率定过程只需要率定部分子流域,减少了参数维度。
3)可并行性强,分级并行充分利用了处理器资源:流域分块后,在分块的基础上引入并行计算,提出“从上至下分块多级并行”率定策略,来进一步加速参数寻优过程,这样,无依赖关系的多个块的参数率定任务可同时进行,单个块内无依赖关系的多个子流域的水循环模拟过程也可并行执行。
实施例二
本发明还提供一种适用于大规模水文模拟参数率定装置的具体实施方式,由于本发明提供的适用于大规模水文模拟参数率定装置与前述适用于大规模水文模拟参数率定方法的具体实施方式相对应,该适用于大规模水文模拟参数率定装置可以通过执行上述方法具体实施方式中的流程步骤来实现本发明的目的,因此上述适用于大规模水文模拟参数率定方法具体实施方式中的解释说明,也适用于本发明提供的适用于大规模水文模拟参数率定装置的具体实施方式,在本发明以下的具体实施方式中将不再赘述。
如图5所示,本发明实施例还提供一种适用于大规模水文模拟参数率定装置,包括:
分块模块11,用于根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图,其中,每个块中含有且仅含有一个有观测结果数据的子流域;
率定模块12,用于根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,一个处理器核同一时刻只能执行一个进程,多个进程可以并发在一个处理器核上交替执行。
本发明实施例所述的适用于大规模水文模拟参数率定装置,根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图;根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;这样,利用“从上至下分块率定”的水文模拟参数率定策略,在仅有部分子流域有观测数据的待研究流域进行快速的参数率定过程而不影响最终可能获得的参数组的精度,从而解决现有的“从上至下一次率定一个子流域”的参数率定策略中对每个子流域观测数据的依赖问题,并在进行参数率定的每次迭代时,可使用多个处理器核并行地执行参数率定任务,能够大幅度提高参数率定的执行速度和执行结果的准确度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种适用于大规模水文模拟参数率定方法,其特征在于,包括:
根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图,其中,每个块中含有且仅含有一个有观测结果数据的子流域;
根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,一个处理器核同一时刻只能执行一个进程,多个进程可以并发在一个处理器核上交替执行。
2.根据权利要求1所述的适用于大规模水文模拟参数率定方法,其特征在于,所述根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图包括:
主进程根据子流域间上下游汇流关系和子流域是否有观测结果数据,将块与块间以有观测结果数据的子流域为边界,对待研究流域进行分块,使得每个块中含有且仅含有一个有观测结果数据的子流域而其它子流域无观测结果数据,得到待研究流域的块区域关系图。
3.根据权利要求1所述的适用于大规模水文模拟参数率定方法,其特征在于,所述根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行包括:
主进程根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,利用从上至下分块多级并行率定策略,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,所述从上至下分块多级并行率定策略是由一个外层并行通信域和多个内层并行通信域组成的多级并行执行模式;所述外层并行通信域采用主从模式,由主进程根据当前所有待率定且可率定的区域块的个数bs,将当前空闲进程均分为bs个内层并行通信域,并将该bs个区域块的参数率定任务均分到该bs个内层并行通信域上并行执行。
4.根据权利要求3所述的适用于大规模水文模拟参数率定方法,其特征在于,所述外层并行通信域的执行过程包括:
主进程获得用于执行区域块参数率定任务的从进程的个数s和块区域关系图中待率定区域块的个数b,其中,所述主进程称为外层主进程;
初始化该s个从进程的状态为空闲态,b个区域块的状态为待率定态;
获取当前所有处于空闲态的进程ss,并令ss_l等于ss中的进程个数;
遍历区域块关系图,获得当前所有待率定且可率定的区域块bs,并令bs_l等于bs中的块个数;
将该ss_l个从进程划分为bs_l个内层并行通信域,并将该ss_l个从进程的状态置为忙碌态,其中,单个内层并行通信域由多个从进程组成;
利用所述bs_l个内层并行通信域分别并行率定所述bs_l个区域块块上的参数;
循环等待,当某个内层并行通信域完成某个区域块的参数率定任务,停止本次循环;
遍历判断待研究流域上的所有区域块是否均已率定完毕,若率定完毕则通知所有从进程结束执行,否则,则返回执行获取当前所有处于空闲态的进程ss的步骤。
5.根据权利要求4所述的适用于大规模水文模拟参数率定方法,其特征在于,从进程的状态分为空闲态和忙碌态;
其中,空闲态说明该从进程等待被重新调度用于参与某个区域块的参数率定任务的执行;
忙碌态则说明该从进程正在参与某个区域块的参数率定任务的执行。
6.根据权利要求4所述的适用于大规模水文模拟参数率定方法,其特征在于,区域块的状态包括:已率定、率定中、待率定和可率定;
其中,已率定说明该区域块中的各个子流域上的参数已率定完毕;
待率定则说明该区域块上的参数率定任务还未开始执行;
率定中则说明该区域块上的参数率定任务正在被执行;
可率定是对处于待率定状态的区域块的进一步划分,当某个待率定的块在块区域关系图中无上游区域块或者其所依赖的上游区域块的率定任务均已完成时,该区域块才会处于可率定状态,同时只有处于可率定态的区域块上的参数率定任务才能被调度执行。
7.根据权利要求4所述的适用于大规模水文模拟参数率定方法,其特征在于,每个内层并行通信域中的所有进程采用对等并行模式,并行地执行单个区域块的参数率定过程,其中,内层并行通信域中的所有进程为从进程。
8.根据权利要求7所述的适用于大规模水文模拟参数率定方法,其特征在于,所述每个内层并行通信域中的所有进程采用对等并行模式,并行地执行单个区域块的参数率定过程包括:
第一内层并行通信域中的所有进程接收到外层主进程分配过来的某区域块的参数率定任务,同时将接收到任务的进程的状态置为忙碌态,其中,所述第一内层并行通信域为任一内层并行通信域;
第一内层并行通信域中的所有进程都读取区域块中的所有子流域的输入数据,进行水循环过程的模拟计算;
第一内层并行通信域中的第一个进程为该区域块中的所有子流域生成N×n套参数,其中n是第一内层并行通信域中所有进程的个数,N是第一个进程和第一内层并行通信域中各个进程进行一次进程间通信后分配到各个进程上的参数的套数;
第一个进程通过进程间通信的方式,将新生成的N×n套参数平均分配给第一内层并行通信域中的所有进程,每个进程分配得到N套参数;
每个进程使用分配得到的N套参数在该区域块的多个子流域上进行N次水循环模拟过程,每个进程各得到N个模拟结果;
第一个进程通过和第一内层并行通信域中所有进程进行进程间通信将所有进程上的模拟结果汇总到第一个进程上后得到N×n个模拟结果;
第一个进程计算该N×n个模拟结果和观测结果的差异大小,得到N×n个差异值;
第一个进程判断该N×n个差异值中是否有一个差异值满足参数率定的预定精度要求,若满足,则保存该差异值所对应的该区域块中各个子流域的参数值,结束本次参数率定任务;否则,则重新为该区域块上的子流域生成N×n套参数并返回执行将新生成的N×n套参数平均分配给第一内层并行通信域中的所有进程的步骤。
9.根据权利要求8所述的适用于大规模水文模拟参数率定方法,其特征在于,所述保存该差异值所对应的该区域块中各个子流域的参数值,结束本次参数率定任务包括:
第一个进程通过进程间通信通知第一内层并行通信域中的所有进程,该区域块的参数率定任务已经完成并将该区域块的状态置为已率定,同时通知外层主进程有新率定完成的区域块;
第一内层并行通信域中的所有进程结束本次参数率定任务,同时将第一内层并行通信域中的所有进程的状态置为空闲态,等待外层主进程的重新调度。
10.一种适用于大规模水文模拟参数率定装置,其特征在于,包括:
分块模块,用于根据子流域间上下游汇流关系和子流域是否有观测结果数据,对待研究流域进行分块,得到待研究流域的块区域关系图,其中,每个块中含有且仅含有一个有观测结果数据的子流域;
率定模块,用于根据块区域关系图中块与块间依赖关系,按从上游块到下游块的顺序,基于并行计算技术,以块为单位进行多级并行参数率定,外层并行将无上下游依赖关系的多个块的参数率定任务分配到多个处理器核上并行执行,内层并行则将单个块的参数率定任务进行任务分解后使用多个处理器核来并行执行;
其中,一个处理器核同一时刻只能执行一个进程,多个进程可以并发在一个处理器核上交替执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910116385.0A CN109918741B (zh) | 2019-02-13 | 2019-02-13 | 一种适用于大规模水文模拟的参数率定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910116385.0A CN109918741B (zh) | 2019-02-13 | 2019-02-13 | 一种适用于大规模水文模拟的参数率定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918741A true CN109918741A (zh) | 2019-06-21 |
CN109918741B CN109918741B (zh) | 2020-11-27 |
Family
ID=66961629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910116385.0A Active CN109918741B (zh) | 2019-02-13 | 2019-02-13 | 一种适用于大规模水文模拟的参数率定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918741B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502347A (zh) * | 2019-08-28 | 2019-11-26 | 中国银行股份有限公司 | 任务负载调度方法及装置 |
CN110516795A (zh) * | 2019-08-28 | 2019-11-29 | 北京达佳互联信息技术有限公司 | 一种为模型变量分配处理器的方法、装置及电子设备 |
CN112507554A (zh) * | 2020-12-11 | 2021-03-16 | 泉州师范学院 | 一种基于图计算的水文模型并行率定方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092572A (zh) * | 2013-01-11 | 2013-05-08 | 中国科学院地理科学与资源研究所 | 一种集群环境下分布式水文模拟的并行化方法 |
CN104142812A (zh) * | 2014-07-30 | 2014-11-12 | 中国水利水电科学研究院 | 一种分布式水文模型并行运算方法 |
CN105160121A (zh) * | 2015-09-17 | 2015-12-16 | 天津市水文水资源勘测管理中心 | 一种有限元控制的分布式水文模型的建模方法 |
US9727071B2 (en) * | 2012-05-04 | 2017-08-08 | Viridity Energy Solutions, Inc. | Facilitating revenue generation from wholesale electricity markets based on a self-tuning energy asset model |
CN108399309A (zh) * | 2018-03-16 | 2018-08-14 | 中国水利水电科学研究院 | 一种大尺度复杂地形区分布式水文模型的子流域划分方法 |
CN108765190A (zh) * | 2018-05-18 | 2018-11-06 | 北京科技大学 | 一种面向大规模并行且适合河网多级嵌套的河网数据表达方法 |
-
2019
- 2019-02-13 CN CN201910116385.0A patent/CN109918741B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9727071B2 (en) * | 2012-05-04 | 2017-08-08 | Viridity Energy Solutions, Inc. | Facilitating revenue generation from wholesale electricity markets based on a self-tuning energy asset model |
CN103092572A (zh) * | 2013-01-11 | 2013-05-08 | 中国科学院地理科学与资源研究所 | 一种集群环境下分布式水文模拟的并行化方法 |
CN104142812A (zh) * | 2014-07-30 | 2014-11-12 | 中国水利水电科学研究院 | 一种分布式水文模型并行运算方法 |
CN105160121A (zh) * | 2015-09-17 | 2015-12-16 | 天津市水文水资源勘测管理中心 | 一种有限元控制的分布式水文模型的建模方法 |
CN108399309A (zh) * | 2018-03-16 | 2018-08-14 | 中国水利水电科学研究院 | 一种大尺度复杂地形区分布式水文模型的子流域划分方法 |
CN108765190A (zh) * | 2018-05-18 | 2018-11-06 | 北京科技大学 | 一种面向大规模并行且适合河网多级嵌套的河网数据表达方法 |
Non-Patent Citations (3)
Title |
---|
李铁键 等: "集群计算在数字流域模型中的应用", 《水科学进展》 * |
王皓 等: "时空域双重离散下的流域并行特性", 《中国科技论文在线》 * |
申蒙蒙 等: "水文模拟中并行参数优化算法", 《计算机工程与设计》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502347A (zh) * | 2019-08-28 | 2019-11-26 | 中国银行股份有限公司 | 任务负载调度方法及装置 |
CN110516795A (zh) * | 2019-08-28 | 2019-11-29 | 北京达佳互联信息技术有限公司 | 一种为模型变量分配处理器的方法、装置及电子设备 |
CN110516795B (zh) * | 2019-08-28 | 2022-05-10 | 北京达佳互联信息技术有限公司 | 一种为模型变量分配处理器的方法、装置及电子设备 |
CN110502347B (zh) * | 2019-08-28 | 2022-05-27 | 中国银行股份有限公司 | 任务负载调度方法及装置 |
CN112507554A (zh) * | 2020-12-11 | 2021-03-16 | 泉州师范学院 | 一种基于图计算的水文模型并行率定方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109918741B (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | An effective modified migrating birds optimization for hybrid flowshop scheduling problem with lot streaming | |
Qin et al. | An improved iterated greedy algorithm for the energy-efficient blocking hybrid flow shop scheduling problem | |
Gao et al. | Pareto-based grouping discrete harmony search algorithm for multi-objective flexible job shop scheduling | |
CN109918741A (zh) | 一种适用于大规模水文模拟参数率定方法及率定装置 | |
CN108804220A (zh) | 一种基于并行计算的卫星任务规划算法研究的方法 | |
He et al. | Probability density forecasting of wind power based on multi-core parallel quantile regression neural network | |
CN109918199A (zh) | 基于gpu的分布式图处理系统 | |
CN104765589B (zh) | 基于mpi的网格并行预处理方法 | |
CN105893319A (zh) | 一种多车道/多核系统和方法 | |
Huo et al. | An improved multi-cores parallel artificial Bee colony optimization algorithm for parameters calibration of hydrological model | |
CN101464965B (zh) | 一种基于tbb的多核并行蚁群设计方法 | |
Schnell et al. | On the generalization of constraint programming and boolean satisfiability solving techniques to schedule a resource-constrained project consisting of multi-mode jobs | |
CN112948123B (zh) | 一种基于Spark的网格水文模型分布式计算方法 | |
CN104158182A (zh) | 一种大规模电网潮流修正方程并行求解方法 | |
Lu et al. | A resource investment problem based on project splitting with time windows for aircraft moving assembly line | |
CN106599585A (zh) | 基于并行蜂群算法的水文模型参数优化方法及装置 | |
Busch et al. | Dynamic scheduling in distributed transactional memory | |
CN110399124A (zh) | 一种代码生成方法、装置、设备及可读存储介质 | |
Yu et al. | Acceleration-based artificial bee colony optimizer for a distributed permutation flowshop scheduling problem with sequence-dependent setup times | |
Arenas et al. | GPU computation in bioinspired algorithms: a review | |
Kumar et al. | Massively parallel simulations for disordered systems | |
Ruchkin et al. | Parallelism in embedded microprocessor systems based on clustering | |
Zeng et al. | MP-DPS: adaptive distributed training for deep learning based on node merging and path prediction | |
Nishioka et al. | Scalable task-parallel SGD on matrix factorization in multicore architectures | |
Liu et al. | APapo: An asynchronous parallel optimization method for DNN models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |