System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于CUDA的网格新安江模型并行计算方法技术_技高网
当前位置: 首页 > 专利查询>河海大学专利>正文

一种基于CUDA的网格新安江模型并行计算方法技术

技术编号:41709825 阅读:35 留言:0更新日期:2024-06-19 12:39
本发明专利技术公开一种基于CUDA(Compute Unified Device Architecture)的网格新安江模型并行计算方法,包括依据流域网格流向信息提取网格演算次序表,实现了数据降维与GPU全局内存的合并访问;从空间离散化角度实现了网格新安江模型蒸散发模块、产流分水源模块、坡地汇流模块、河道汇流模块在英伟达GPU上的并行计算;本发明专利技术方法利用英伟达GPU实现了网格新安江模型的并行计算,显著提升了网格新安江模型的计算效率。

【技术实现步骤摘要】

本专利技术涉及一种基于cuda的网格新安江模型并行计算方法,属于分布式水文模型并行计算领域。


技术介绍

1、近年来,因气候异常所导致的洪水灾害频发,给社会和人民带来了巨大的生命财产损失,这使得对水文预报的需求日益增加。而分布式水文模型因充分考虑了流域内降雨量时空间分布不均匀以及流域内物理参数差异的影响,从而表现了较高的水文预报精度。而网格新安江模型作为典型的分布式水文模型,通过将流域下垫面划分为大小相同的高精度网格单元进行水文模拟计算,从而实现了高精度水文预报。

2、目前分布式水文模型并行计算研究主要围绕流域单元的空间离散化进行,分布式水文模型空间离散化并行算法主要依据模型计算过程的特点,将模型划分成并行性程度不同的计算过程,依据不同计算过程的并行性特点实现相应的并行算法。目前应用较广泛的分布式水文模型并行计算技术主要有基于共享内存的open-mp(open multi-processing)并行技术以及基于消息传递的mpi(message passing interface)并行技术。然而目前针对网格新安江模型gpu并行化的研究仍然较少,网格新安江模型在水文模拟过程中多采用传统的串行计算方式,所以在流域面积较大、模拟时间较长的情况下进行水文预报时,网格新安江模型的计算效率偏低,无法满足快速洪水预报的需求。如何提升网格新安江模型计算效率,减少模型计算时间,对于流域快速洪水预报以及防洪减灾有着重要的意义。

3、因此,本专利技术提出了一种基于cuda的网格新安江模型并行计算方法,利用英伟达gpu实现了网格新安江模型的并行计算。


技术实现思路

1、专利技术目的:本专利技术的目的在于提高网格新安江模型的计算效率,利用gpu适用于大规模并行计算任务的特性,基于英伟达(nvidia)公司的cuda编程模型(compute unifieddevice architecture),提出一种基于cuda的网格新安江模型并行计算方法,在英伟达gpu上实现了网格新安江模型的并行计算。

2、技术方案:本专利技术为一种基于cuda的网格新安江模型并行计算方法,包括以下步骤:

3、步骤s1、依据流域网格单元流向信息提取网格演算次序表。

4、步骤s2、为并行计算时用到的中间变量、流域物理参数场等变量数据在gpu端的全局内存上开辟内存空间,并将流域物理参数场等数据从主机端传输到gpu端,完成变量数据的初始化。

5、步骤s3、将当前时段的降雨场与蒸发场数据从主机端传输到gpu端,在gpu端进行当前时段蒸散发模块的并行计算。

6、步骤s4、在gpu端进行当前时段产流分水源模块的并行计算。

7、步骤s5、在gpu端进行当前时段坡地汇流模块的并行计算。

8、步骤s6、在gpu端与主机端进行当前时段河道汇流模块的并行计算。

9、步骤s7、判断最后一个时段的河道汇流模块并行计算是否完成,若未完成,则将计算时段加1并跳转到步骤s3;否则,完成网格新安江模型的并行计算。

10、进一步地,所述步骤s1的具体实现过程如下:

11、步骤s1.1、依据流域网格流向信息确定流域内所有网格单元的上游网格。

12、步骤s1.2、依据上下游汇流依赖关系逐网格汇流演算至流域出口,演算过程中将经过的所有网格单元的汇水量均增加1,从而得到流域的累计汇水矩阵。并通过设立汇流量阈值得到流域的水系矩阵。

13、步骤s1.3、从流域出口网格向上推演,对网格单元的上下游汇流依赖关系进行分解,由低到高逐层划分流域网格单元演算次序,得到流域网格演算次序矩阵。

14、步骤s1.4、按照演算次序由低到高的顺序,从流域网格演算次序矩阵中将流域所有网格单元提取出来,构建网格演算次序表。

15、步骤s1.5、在网格演算次序表中添加每个网格单元在流域网格演算次序矩阵中的索引信息与对应汇入的目标网格在网格演算次序表中的索引,将所有输入数据按照网格演算次序表中的网格顺序以一维矩阵的形式保存在主机端。

16、进一步地,所述步骤s3的实现过程如下:

17、步骤s3.1、将当前时段流域的蒸发场、降雨场数据从主机端传输到gpu端的全局内存中。

18、步骤s3.2、主机端调用gpu端的蒸散发模块内核函数进行蒸散发模块并行计算。

19、步骤s3.3、获取当前线程在线程网格中的全局索引,线程通过全局索引定位需要处理的网格单元,调用设备函数计算当前网格单元的蒸散发量与总径流深。

20、步骤s3.4、更新当前网格单元的张力水含量,将总径流深结果保存到位于全局内存的中间变量中,作为同时段产流分水源模块的计算输入。

21、进一步地,所述步骤s4的实现过程如下:

22、步骤s4.1、主机端调用gpu端的产流分水源模块内核函数进行产流分水源模块并行计算。

23、步骤s4.2、获取当前线程在线程网格中的全局索引,线程通过全局索引定位需要处理的网格单元,调用设备函数将当前网格单元总径流深划分为地表径流深、壤中流径流深、地下径流深,并得到自由水含量。

24、步骤s4.3、更新当前网格单元的自由水含量,并将水源划分结果保存到中间变量中,作为同时段坡地汇流模块的计算输入。

25、进一步地,所述步骤s5的实现过程如下:

26、步骤s5.1、主机端调用gpu端的坡地汇流模块内核函数进行坡地汇流模块并行计算。

27、步骤s5.2、获取当前线程在线程网格中的全局索引,线程通过全局索引定位需要处理的网格单元,调用设备函数计算当前网格单元地表径流量、壤中流流量、地下径流量。

28、步骤s5.3、更新当前网格单元的地表径流量、壤中流流量、地下径流量,并将计算结果存入中间变量中,作为同时段河道汇流模块的计算输入。

29、进一步地,所述步骤s6的实现过程如下:

30、步骤s6.1、主机端调用gpu端的河道汇流模块内核函数进行河道汇流模块并行计算。

31、步骤s6.2、获取当前线程在线程网格中的全局索引,线程通过全局索引选取演算次序符合当前设定演算次序的流域网格。

32、步骤s6.3、调用设备函数计算当前网格单元的汇流量。

33、步骤s6.4、从演算次序表中获取当前网格汇入的目标网格索引,采用原子操作将汇流量汇入到目标网格。

34、步骤s6.5、判断当前演算次序是否满足设定的网格演算次序阈值,若不满足则将当前网格演算次序值加1,并跳转到步骤s6.1,否则将中间计算结果传输到主机端,并在主机端异步调用河道汇流函数对剩余演算次序的流域网格单元进行河道汇流演算,直到演算至流域出口网格单元。

35、有益效果:本专利技术利用了gpu在大规模并行计算任务上的优势,提出了基于cuda的网格新安江模型并行计算方法,实现了网格新安江模型的并行计算,提高了网格新安江模型在流域面积较本文档来自技高网...

【技术保护点】

1.一种基于CUDA的网格新安江模型并行计算方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的基于CUDA的网格新安江模型并行计算方法,其特征在于:所述步骤S1中依据流域网格单元流向信息提取网格演算次序表的具体过程为:

3.根据权利要求1所述的基于CUDA的网格新安江模型并行计算方法,其特征在于:所述步骤S3将当前时段的降雨场与蒸发场数据从主机端传输到GPU端,在GPU端进行当前时段蒸散发模块并行计算的具体过程为:

4.根据权利要求1所述的基于CUDA的网格新安江模型并行计算方法,其特征在于:所述步骤S4在GPU端进行当前时段产流分水源模块并行计算的具体过程为:

5.根据权利要求1所述的基于CUDA的网格新安江模型并行计算方法,其特征在于:所述步骤S5在GPU端进行当前时段坡地汇流模块并行计算的具体过程为:

6.根据权利要求1所述的基于CUDA的网格新安江模型并行计算方法,其特征在于:所述步骤S6在GPU端与主机端进行当前时段河道汇流模块并行计算的具体过程为:

【技术特征摘要】

1.一种基于cuda的网格新安江模型并行计算方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的基于cuda的网格新安江模型并行计算方法,其特征在于:所述步骤s1中依据流域网格单元流向信息提取网格演算次序表的具体过程为:

3.根据权利要求1所述的基于cuda的网格新安江模型并行计算方法,其特征在于:所述步骤s3将当前时段的降雨场与蒸发场数据从主机端传输到gpu端,在gpu端进行当前时段蒸散发模块并行计算的具体过程为:

4.根...

【专利技术属性】
技术研发人员:刘乾余宇峰万定生
申请(专利权)人:河海大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1