CN109753362B - 一种分布式水文模型的汇流并行调度方法 - Google Patents
一种分布式水文模型的汇流并行调度方法 Download PDFInfo
- Publication number
- CN109753362B CN109753362B CN201910031090.3A CN201910031090A CN109753362B CN 109753362 B CN109753362 B CN 109753362B CN 201910031090 A CN201910031090 A CN 201910031090A CN 109753362 B CN109753362 B CN 109753362B
- Authority
- CN
- China
- Prior art keywords
- sub
- river
- task
- processor
- domain block
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种分布式水文模型的汇流并行调度方法,涉及水资源调度技术领域。该方法,首先通过对河网进行二叉树编码,将河网中的多个子流域划分为多个子流域块,并通过主处理器采用贪婪多处理器调度算法将多个子流域块分配到多个从处理器中,从处理器分别处理之后再由主处理器进行数据融合。所以,本发明有效的解决了分布式水文模型汇流模块由于依赖关系复杂无法并行化计算的问题;本发明提出了贪婪多处理器调度算法用来处理汇流子流域块的任务调度,解决了并行计算时多处理器负载不均衡问题。通过使用主处理器和从处理器对汇流模块进行并行化改造,提高了分布式水文模型汇流过程的计算效率。
Description
技术领域
本发明涉及水资源调度技术领域,尤其涉及一种分布式水文模型的汇流并行调度方法。
背景技术
分布式水文模型是探索和认识复杂水文循环过程和机理的有效手段,也是解决许多水文实际问题的有效工具,已经在气候变化、LUCC、缺资料地区、生态水文学、水资源管理等领域的研究中发挥了重要作用。分布式水文模型具有计算密集的特点,主要体现在:(1)流域水文模拟高度复杂,包括不同下垫面的产流过程模拟以及坡面和河道汇流等,计算过程中存在许多中间变量,具有数据传输密集;(2)分布式水文模型涉及大量的栅格或者子流域数据。随着遥感技术和地理信息系统的发展,分布式水文模型能够获取到的信息越来越多,模拟的范围越来越大,同时划分的单元也越来越精细,模拟单元计算密集;(3)流域水文过程计算要求较高的时间动态性,时间步长往往为小时或分钟尺度,具有时间密集的特点。分布式水文模型对高性能计算提出了很高的要求,传统的串行计算难以满足其要求,需要并行计算技术为模型提供高速率运算。
随着并行计算软硬件技术的发展,不论从CPU、GPU等硬件的提升,还是从OpenMP、MPI、CUDA等并行编程标准的发展,并行计算的门槛不断降低。同时,分布式水文模型的模拟范围越来越广、分辨率越来越高、数据量也越来越多。在此基础上,分布式水文模型的并行计算得到了良好的发展。
不过,由于分布式水文模型汇流过程不同于其他蒸发蒸腾、入渗等模拟过程在其所在的子流域即可独立完成计算,不需要其他子流域的相关信息。汇流模块模拟当前子流域时需要上游依赖子流域的计算结果作为输入,由于其特有的依赖关系导致并行计算设计过后存在处理器任务分配不均衡的问题,负载过大的处理器在执行计算而负载过小的处理器发生空闲。因此,针对汇流过程子流域之间的依赖关系设计合理的并行任务调度方法在计算效率提升上尤为重要。
发明内容
本发明的目的在于提供一种分布式水文模型的汇流并行调度方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种分布式水文模型的汇流并行调度方法,包括如下步骤:
S1,针对河网构建二叉树结构,二叉树中的一个节点代表河网中的一个子流域,每个子流域节点均用二维编码(V,L)表示,V表示该子流域节点在对应层内的序号,L表示该子流域距离流域出口的距离所在的层数,其中,河网主河段中的子流域的二维编码中的V等于0;
S2,将V等于0的河网主河段中的子流域及其上游所有依赖子流域划分成为一个子流域块,针对河网划分为多个子流域块,形成分布式水文模型汇流模块中的多个子流域块任务;
S3,主处理器采用贪婪多处理器调度算法将所有的子流域块任务分配给多台从处理器,使子流域任务块处理时间之和最大的从处理器上的负载最小化;
S4,每台从处理器分别进行任务处理,并将处理结果发送至主处理器;
S5,主处理器对处理结果进行统计融合,生成汇流输出文件,完成汇流并行调度。
优选地,S3包括如下步骤:
S301,在主处理器中,按照子流域块处理时间的升序或者降序对所有的子流域块任务进行排序,形成任务列表;
S302,在任务列表中,从第一个子流域块任务到最后一个子流域块任务进行循环,将当前子流域块任务分配到当前负载最少的从处理器中,从处理器接收当前任务并更新其负载,直至子流域块循环结束,即任务分配完毕。
优选地,S4中,所述每台从处理器分别进行任务处理,具体为,每台从处理器均按照汇流从上游到下游的顺序,对包含的每个子流域块任务分别进行处理。
优选地,S5中,所述主处理器对处理结果进行统计融合,具体为,按照汇流从上游到下游的顺序,对主河段上的子流域进行汇流处理。
本发明的有益效果是:本发明提供的分布式水文模型的汇流并行调度方法,首先通过对河网进行二叉树编码,将河网中的多个子流域划分为多个子流域块,并通过主处理器采用贪婪多处理器调度算法将多个子流域块分配到多个从处理器中,从处理器分别处理之后再由主处理器进行数据融合。所以,本发明有效的解决了分布式水文模型汇流模块由于依赖关系复杂无法并行化计算的问题;本发明提出了贪婪多处理器调度算法用来处理汇流子流域块的任务调度,解决了并行计算时多处理器负载不均衡问题。通过使用主处理器和从处理器对汇流模块进行并行化改造,提高了分布式水文模型汇流过程的计算效率。
附图说明
图1是本发明提供的分布式水文模型的汇流并行调度方法流程示意图;
图2是具体实施例的二叉树编码结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供了一种分布式水文模型的汇流并行调度方法,包括如下步骤:
S1,针对河网构建二叉树结构,二叉树中的一个节点代表河网中的一个子流域,每个子流域节点均用二维编码(V,L)表示,V表示该子流域节点在对应层内的序号,L表示该子流域距离流域出口的距离所在的层数,其中,河网主河段中的子流域的二维编码中的V等于0;
S2,将V等于0的河网主河段中的子流域及其上游所有依赖子流域划分成为一个子流域块,针对河网划分为多个子流域块,形成分布式水文模型汇流模块中的多个子流域块任务;
S3,主处理器采用贪婪多处理器调度算法将所有的子流域块任务分配给多台从处理器,使子流域任务块处理时间之和最大的从处理器上的负载最小化;
S4,每台从处理器分别进行任务处理,并将处理结果发送至主处理器;
S5,主处理器对处理结果进行统计融合,生成汇流输出文件,完成汇流并行调度。
上述方法中,通过采用贪婪多处理器调度算法来处理汇流子流域块的任务调度,目标是使处理器当中的最大负载最小化,最后的运行时间取决于最大负载的从处理器,解决了并行计算时多处理器负载不均衡问题。
本发明通过贪婪多处理器调度算法以及二叉树方法对流域进行分块,有效的解决了分布式水文模型汇流模块由于依赖关系复杂无法并行化计算的问题,同时解决分配过程中负载不均衡造成的处理器资源浪费,耗费计算时间的问题。
本发明中,通过使用多个从处理器并行处理子流域块任务,提高了分布式水文模型汇流过程的计算效率。
其中,S3包括如下步骤:
S301,在主处理器中,按照子流域块处理时间升序或者降序对所有的子流域块任务进行排序,形成任务列表;
S302,在任务列表中,从第一个子流域块任务到最后一个子流域块任务进行循环,将当前子流域块任务分配到当前负载最少的从处理器中,从处理器接收当前任务并更新其负载,直至子流域块循环结束,即任务分配完毕。
详细说明如下,在S302中,如果从处理器的数量与子流域块任务的数量相同,则在分配时,会将子流域块任务按照处理时间的顺序依次分配到每个从处理器中,即每个从处理器中都会有一个子流域块任务负载。如果从处理器的数量少于子流域块任务的数量,则首先将排序靠前的子流域块任务分配到每个从处理器中,然后,再将剩余的子流域块任务依次分配到当前负载最小的从处理器中,每个从处理器接收了分配的子流域块任务后,就会进行负载更新,并按照更新后的负载进行分配。
流域汇流过程中,采用上述调度方法能够有效实现对不同处理器任务的分配,将原本在单个处理器上计算的任务分给多台处理器进行计算,大大提升了分布式水文模型的汇流速率。同时,该调度方法可以解决多台处理器的负载不均衡问题,使处理器当中最大负载最小化,减少不必要的时间消耗。
在本发明的一个优选实施例中,S4中,所述每台从处理器分别进行任务处理,具体为,每台从处理器均按照汇流从上游到下游的顺序,对包含的每个子流域块任务进行处理。
S5中,所述主处理器对处理结果进行统计融合,具体为,按照汇流从上游到下游的计算顺序,对主河段上的子流域进行汇流处理。
具体实施例
采用本发明提供的方法,每个子流域都可以用二维编码(V,L)表示,其中V表示该节点在对应层内序号,L表示此流域距离流域出口的距离所在的层数。对某河网的汇流进行模拟,该河网的主河段包括5个子流域,如图2所示,该5个子流域分别编码为(0,1),(0,2)(0,3),(0,4),(0,5)。子流域(0,1)在二叉树的第一层,由其分出来的上游流域为第二层L=2,如果该子流域在主河段上,在该层的序号V=0编号为(0,2),若子流域不在主河段上,序号依次增加编号为(1,2)。子流域(0,2)的上游流域为第三层L=3,在主河段的子流域V=0编号为(0,3),未在主河段的子流域为(1,3),(2,3)以此类推。
根据上述二叉树编码结构,将河网划分为5个子流域块,其中,(0,1),(1,2),(3,3),(4,3)为一个子流域块,(0,2),(1,3),(2,3)为一个子流域块,(0,3),(1,4),(2,4),(3,5),(4,5),(5,5),(6,5)为一个子流域块,(0,4),(1,5),(2,5)为一个子流域块,(0,5)为一个子流域块。
将子流域块按照处理时间的升序或者降序对任务列表进行排序(本说明中以降序为例)。可将图2中的子流域分为5块n=5,按照降序排列的顺序为:第一块包括:(0,3),(1,4),(2,4),(3,5),(4,5),(5,5),(6,5),第二块包括:(0,1),(1,2),(3,3),(4,3),第三块包括:(0,2),(1,3),(2,3),第四块包括:(0,4),(1,5),(2,5),第五块包括:(0,5)。
本实施例中采用四个处理器进行处理,一个主处理器,三个从处理器,分配开始时,首先按照列表顺序将第一块、第二块、第三块依次分配给三个从处理器,并更新三个从处理器分配任务后的负载大小。第四块分给当前负载最小的处理器,即第三块所在的处理器,并更新当前处理器的负载,同理,第五块分给第二块所在的处理器。所有子流域块都分配给处理器后循环结束。
将所有的子流域块都分配到从处理器之后,每台从处理器均按照汇流的串行顺序,对包含的每个子流域块任务进行处理。本发明实施例中,以第二块所在的处理器为例说明其处理方法,该处理器包括第二块、第五块子流域块,第二块子流域块中包含(0,1),(1,2),(3,3),(4,3)四个子流域,从上游到下游的顺序进行计算。先得到(3,3),(4,3)子流域的汇流结果,然后计算(1,2)子流域,最后计算(0,1)子流域的值。同理,得到第五块子流域的汇流结果。
从处理器将其所有子流域块任务计算完毕后,将计算结果传给主处理器。主处理器进行干流汇流处理,包括(0,5),(0,4),(0,3),(0,2),(0,1)五条子流域按照上游到下游进行汇流计算。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明提供的分布式水文模型的汇流并行调度方法,首先通过对河网进行二叉树编码,将河网中的多个子流域划分为多个子流域块,并通过主处理器采用贪婪多处理器调度算法将多个子流域块分配到多个从处理器中,从处理器分别处理之后再由主处理器进行数据融合。所以,本发明有效的解决了分布式水文模型汇流模块由于依赖关系复杂无法并行化计算的问题;本发明提出了贪婪多处理器调度算法用来处理汇流子流域块的任务调度,解决了并行计算时多处理器负载不均衡问题。通过使用主处理器和从处理器对汇流模块进行并行化改造,提高了分布式水文模型汇流过程的计算效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (3)
1.一种分布式水文模型的汇流并行调度方法,其特征在于,包括如下步骤:
S1,针对河网构建二叉树结构,二叉树中的一个节点代表河网中的一个子流域,每个子流域节点均用二维编码(V,L)表示,V表示该子流域节点在对应层内的序号,L表示该子流域距离流域出口的距离所在的层数,其中,河网主河段中的子流域的二维编码中的V等于0;
S2,将V等于0的河网主河段中的子流域及其上游所有依赖子流域划分成为一个子流域块,针对河网划分为多个子流域块,形成分布式水文模型汇流模块中的多个子流域块任务;
S3,主处理器采用贪婪多处理器调度算法将所有的子流域块任务分配给多台从处理器,使子流域任务块处理时间之和最大的从处理器上的负载最小化;
S4,每台从处理器分别进行任务处理,并将处理结果发送至主处理器;
S5,主处理器对处理结果进行统计融合,生成汇流输出文件,完成汇流并行调度;
S3包括如下步骤:
S301,在主处理器中,按照子流域块处理时间的升序或者降序对所有的子流域块任务进行排序,形成任务列表;
S302,在任务列表中,从第一个子流域块任务到最后一个子流域块任务进行循环,将当前子流域块任务分配到当前负载最少的从处理器中,从处理器接收当前任务并更新其负载,直至子流域块循环结束,即任务分配完毕。
2.根据权利要求1所述的分布式水文模型的汇流并行调度方法,其特征在于,S4中,所述每台从处理器分别进行任务处理,具体为,每台从处理器均按照汇流从上游到下游的顺序,对包含的每个子流域块任务分别进行处理。
3.根据权利要求1所述的分布式水文模型的汇流并行调度方法,其特征在于,S5中,所述主处理器对处理结果进行统计融合,具体为,按照汇流从上游到下游的顺序,对主河段上的子流域进行汇流处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910031090.3A CN109753362B (zh) | 2019-01-14 | 2019-01-14 | 一种分布式水文模型的汇流并行调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910031090.3A CN109753362B (zh) | 2019-01-14 | 2019-01-14 | 一种分布式水文模型的汇流并行调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753362A CN109753362A (zh) | 2019-05-14 |
CN109753362B true CN109753362B (zh) | 2020-03-24 |
Family
ID=66405690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910031090.3A Active CN109753362B (zh) | 2019-01-14 | 2019-01-14 | 一种分布式水文模型的汇流并行调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753362B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447394A (zh) * | 2020-03-05 | 2020-07-24 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法、电子设备和存储介质 |
CN113449404B (zh) * | 2021-06-29 | 2024-06-07 | 中国水利水电科学研究院 | 基于逐层叶片单元识别的河网汇流与分水并行计算方法 |
CN114707325B (zh) * | 2022-03-30 | 2023-05-12 | 洛阳师范学院 | 一种基于物理模型的水文过程串并耦合动态模拟方法 |
CN115041842B (zh) * | 2022-06-28 | 2023-03-07 | 广东工业大学 | 一种芯片群孔的激光打孔路径优化方法和系统 |
CN117873686A (zh) * | 2024-01-23 | 2024-04-12 | 中国水利水电科学研究院 | 基于分层负载均衡的分布式水文模型汇流并行调度算法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040104007A (ko) * | 2003-06-02 | 2004-12-10 | 학교법인 인하학원 | 지리정보시스템(지아이에스)을 기반으로 하는 수문모델링방법 |
CN102710779A (zh) * | 2012-06-06 | 2012-10-03 | 合肥工业大学 | 一种基于云计算环境下的服务资源分配的负载均衡策略 |
CN103092572A (zh) * | 2013-01-11 | 2013-05-08 | 中国科学院地理科学与资源研究所 | 一种集群环境下分布式水文模拟的并行化方法 |
CN103164190A (zh) * | 2013-03-02 | 2013-06-19 | 中国科学院对地观测与数字地球科学中心 | 一种全分布式流域生态水文模型的快速并行化方法 |
CN104142812A (zh) * | 2014-07-30 | 2014-11-12 | 中国水利水电科学研究院 | 一种分布式水文模型并行运算方法 |
CN107133398A (zh) * | 2017-04-28 | 2017-09-05 | 河海大学 | 一种基于复杂网络的河流径流量预测方法 |
CN108647900A (zh) * | 2018-05-18 | 2018-10-12 | 北京科技大学 | 一种应用于水文模拟领域的区域划分方法 |
-
2019
- 2019-01-14 CN CN201910031090.3A patent/CN109753362B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040104007A (ko) * | 2003-06-02 | 2004-12-10 | 학교법인 인하학원 | 지리정보시스템(지아이에스)을 기반으로 하는 수문모델링방법 |
CN102710779A (zh) * | 2012-06-06 | 2012-10-03 | 合肥工业大学 | 一种基于云计算环境下的服务资源分配的负载均衡策略 |
CN103092572A (zh) * | 2013-01-11 | 2013-05-08 | 中国科学院地理科学与资源研究所 | 一种集群环境下分布式水文模拟的并行化方法 |
CN103164190A (zh) * | 2013-03-02 | 2013-06-19 | 中国科学院对地观测与数字地球科学中心 | 一种全分布式流域生态水文模型的快速并行化方法 |
CN104142812A (zh) * | 2014-07-30 | 2014-11-12 | 中国水利水电科学研究院 | 一种分布式水文模型并行运算方法 |
CN107133398A (zh) * | 2017-04-28 | 2017-09-05 | 河海大学 | 一种基于复杂网络的河流径流量预测方法 |
CN108647900A (zh) * | 2018-05-18 | 2018-10-12 | 北京科技大学 | 一种应用于水文模拟领域的区域划分方法 |
Non-Patent Citations (4)
Title |
---|
A note on a greedy heuristic for flow-shop makespan minimization with no machine idle-time;Daniel Baraz等;《European Journal of Operational Research》;20070116;第810-813页 * |
Greedy Algorithm Solution of Flexible Flow Shop Scheduling Problem;Xiaofeng Li等;《International Journal of Computer Science and Network Security》;20091105;第9卷(第11期);第177-180页 * |
分布式水文模型的并行计算研究进展;刘军志等;《地理科学进展》;20130415;第32卷(第4期);第538-547页 * |
集群计算在数字流域模型中的应用;李铁键等;《水科学进展》;20061130;第17卷(第6期);第841-846页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109753362A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753362B (zh) | 一种分布式水文模型的汇流并行调度方法 | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
CN106339351B (zh) | 一种sgd算法优化系统及方法 | |
Wang et al. | A common parallel computing framework for modeling hydrological processes of river basins | |
CN106201718A (zh) | 一种基于负载预测的云计算资源动态伸缩方法 | |
CN112654968A (zh) | 用于机器学习加速的架构的方法、装置和系统 | |
Djidjev et al. | All-Pairs Shortest Path algorithms for planar graph for GPU-accelerated clusters | |
Leung et al. | Energy-aware synthesis of networks-on-chip implemented with voltage islands | |
CN103488537A (zh) | 一种数据抽取、转换和加载etl的执行方法及装置 | |
CN109032769B (zh) | 一种基于容器的持续集成ci任务处理方法及装置 | |
CN112948123B (zh) | 一种基于Spark的网格水文模型分布式计算方法 | |
CN105373517A (zh) | 基于Spark的分布式稠密矩阵求逆并行化运算方法 | |
Nouiri | Multi-objective tool to optimize the water resources management using genetic algorithm and the Pareto optimality concept | |
Maroosi et al. | Parallel and distributed computing models on a graphics processing unit to accelerate simulation of membrane systems | |
CN108958852A (zh) | 一种基于fpga异构平台的系统优化方法 | |
Hu et al. | An efficient power-aware optimization for task scheduling on noc-based many-core system | |
Wang et al. | Maximum speedup ratio curve (MSC) in parallel computing of the binary-tree-based drainage network | |
Penna et al. | A comprehensive performance evaluation of the BinLPT workload‐aware loop scheduler | |
CN109902366B (zh) | 一种分布式水文模型汇流并行方法 | |
CN105225016A (zh) | 一种在可再生供能的云计算系统中基于合作博弈的能量分配方法 | |
CN105046382A (zh) | 异构系统并行随机森林优化方法和系统 | |
CN109918740B (zh) | 一种适用于大规模分布式水文模拟的并行方法 | |
Pekny et al. | An exact parallel algorithm for the resource constrained traveling salesman problem with application to scheduling with an aggregate deadline | |
CN104933110A (zh) | 一种基于MapReduce的数据预取方法 | |
CN116303219A (zh) | 一种网格文件的获取方法、装置及电子设备 |
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 |