【技术实现步骤摘要】
一种基于多GPU的污染物对流扩散方程高性能数值求解方法
本专利技术属于针对数值方程的高性能数值求解计算
,涉及一种基于多GPU的污染物对流扩散方程高性能数值求解方法。
技术介绍
城市地表水环境污染已经影响到了人们生活用水安全及社会经济的发展,故对污染物的对流扩散的变化过程的研究很关键,为评估污染物变化情况及预警提供有力的参考依据。在国家提出海绵城市建设过程中,点源和面源污染事件会造成地下水污染,而探讨污染物的对流扩散过程的变化规律对帮助解决这些城市污染问题很重要。污染物的对流扩散过程可通过求解对流扩散方程描述整个演变过程,如何能在保证精确的数值结果的基础上,可快速地实现污染物对流扩散过程的评估更重要,为快速制定防止污染物快速扩散提供决策服务。目前很多学者已经开展了污染物对流扩散过程的求解方法研究,主要是集中在计算精度方面,采用的一些求解方法均得到了较高精度的数值解,但是随着方程的计算量增大,从而也增加了计算机的存储量,会导致整体计算效率低。虽然有一些学者采用自适应网格技术或者单GPU方法在保证模型模拟精度高的条 ...
【技术保护点】
1.一种基于多GPU的污染物对流扩散方程高性能数值求解方法,其特征在于,具体按照以下步骤实施:/n步骤1,定义研究区域边界、污染物对流扩散速度初始值、污染物浓度的初始值等;/n步骤2,采用CUDA语言进行编写,读取整个研究区域计算单元,将研究区域的计算单元进行上下两等分划分。/n步骤3,在步骤2完成的计算单元两等分划分后,为确保边界区域的计算单元也参与数值计算,采用填充数据方式将边界部分的数据分别填充一行数据到上部区域和下部区域,作为上、部计算区域的外边界;/n步骤4,对所有的变量在两个GPU上进行显存存储空间分配,包括边界区域的两行计算单元的变量值也需要进行显存存储空间分 ...
【技术特征摘要】
1.一种基于多GPU的污染物对流扩散方程高性能数值求解方法,其特征在于,具体按照以下步骤实施:
步骤1,定义研究区域边界、污染物对流扩散速度初始值、污染物浓度的初始值等;
步骤2,采用CUDA语言进行编写,读取整个研究区域计算单元,将研究区域的计算单元进行上下两等分划分。
步骤3,在步骤2完成的计算单元两等分划分后,为确保边界区域的计算单元也参与数值计算,采用填充数据方式将边界部分的数据分别填充一行数据到上部区域和下部区域,作为上、部计算区域的外边界;
步骤4,对所有的变量在两个GPU上进行显存存储空间分配,包括边界区域的两行计算单元的变量值也需要进行显存存储空间分配,并将这些变量值分别存储到对应的GPU中;
步骤5,将重新构成的上部区域和下部区域的计算任务进行数据分解,将多个小型任务平均分配到对应的GPU中进行批量计算;
步骤6,采用有限差分法离散方程,在两个GPU上计算不同方向的通量值,再进一步计算得到不同时刻的污染物浓度值;
步骤7,第一次循环计算完成后,将两个GPU中边界区域的结果数据写入到内存中备用,下一次迭代开始,再将内存中备用的边界区域的数据复制到两个GPU上进行数据填充,再按照步骤6依次进行计算,直到循环迭代计算结束;
步骤8,将每一次循环后GPU上计算的结果数据写入到内存中,输出每个时刻的污染物对流扩散变化结果图。
2.一种基于多GPU的污染物对流扩散方程高性能数值求解方法,其特征在于,所述步骤1的具体方法如下:
步骤1.1,首先定义研究区域边界,包括上下左右四个方向的边界;
步骤1.2,进一步对污染物对流扩散速度的初始值、污染物浓度的初始值进行定义。
3.一种基于多GPU的污染物对流扩散方程高性能数值求解方法,其特征在于,所述步骤2的具体方法如下:采用CUDA语言进行编写,读取整个研究区域计算单元M行×N列,将研究区域的计算单元写入内存中,再对整个计算的网格单元划分为上下两等分,每一部分的计算单元大小为M/2行×N列。
4.一种基于多GPU的污染物对流扩散方程高性能数值求解方法,其特征在于,所述步骤3的具体方法如下:
步骤3.1,在步骤2完成的计算单元两等分划分后,选择边界处区域的两行计算单元区域单独存储,第一行为上部计算区域的下边界,第二行为下部计算区域的的上边界;
步骤3.2,将边界区域的第一行复制到下部区域边界的最外层,将边界区域的第二行复制到上部区域边界的最外层,得到两块M/2+1行×N...
【专利技术属性】
技术研发人员:韩浩,侯精明,龚佳辉,白岗岗,同玉,王峰,王添,杨少雄,马利平,马勇勇,李轩,王兴桦,石宝山,张兆安,杨露,王俊珲,
申请(专利权)人:西安理工大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。