[发明专利]海啸数值计算模型基于GPU并行的快速执行方法有效
申请号: | 201810130177.1 | 申请日: | 2018-02-08 |
公开(公告)号: | CN108460195B | 公开(公告)日: | 2019-06-14 |
发明(设计)人: | 王宗辰;原野;于福江 | 申请(专利权)人: | 国家海洋环境预报中心 |
主分类号: | G06F17/50 | 分类号: | G06F17/50;G06F9/50;G06F9/38;G06F9/302 |
代理公司: | 北京易捷胜知识产权代理事务所(普通合伙) 11613 | 代理人: | 齐胜杰 |
地址: | 100081*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种海啸数值计算模型基于GPU并行的快速执行方法,方法包括:CPU接收海啸数值计算模型的启动指令后,获取与所述海啸数值计算模型相关的参数信息,并获取初始海表面形变信息;CPU读取到数据传输指令时,CPU将参数信息和初始海表面形变信息传输至GPU;GPU通过内核函数执行所述海啸数值计算模型的海啸传播计算过程,获取最终的计算结果;GPU读取到数据回传指令时,GPU将海啸计算结果传输至CPU;CPU根据输出指令,对计算结果进行格式化处理并输出。上述方法将计算量小的过程交由CPU执行,计算量大的过程通过内核函数实现在GPU端并行处理,进而可显著提高海啸数值计算模型的执行效率,提高了海啸快速预警能力。 | ||
搜索关键词: | 海啸 数值计算模型 读取 表面形变 参数信息 内核函数 计算量 并行 计算结果传输 数据传输指令 格式化处理 并行处理 海啸传播 计算过程 启动指令 输出指令 数据回传 信息传输 预警能力 指令 输出 | ||
【主权项】:
1.一种海啸数值计算模型基于GPU并行的快速执行方法,其特征在于,包括:CPU接收海啸数值计算模型的启动指令后,获取与所述海啸数值计算模型相关的参数信息,并获取初始海表面形变信息;所述CPU读取到数据传输指令时,所述CPU将所述参数信息、初始海表面形变信息通过PCI‑E3.0接口一次性传输至GPU的显存;所述GPU接收所述参数信息、初始海表面形变信息后,执行所述海啸数值计算模型的海啸从深海传播至近岸计算过程,其中,所述海啸数值计算模型采用有限差分方法求解球坐标系下二维线性方程和非线性方程,获取海啸的计算结果;所述非线性方程考虑底摩擦效应;所述GPU读取到数据回传指令时,所述GPU将所述海啸的计算结果传输至所述CPU;所述CPU根据输出指令,将所述海啸的计算结果进行格式化处理并输出;其中,用于海啸数值计算的GPU作为CPU的协处理器对海啸传播计算模块进行加速;所述GPU接收所述参数信息、初始海表面形变信息后,执行所述海啸数值计算模型的海啸传播计算过程,获取海啸的计算结果的步骤,包括:所述CPU在确定需要获取至少一个时间节点的海啸计算结果时,所述CPU向所述GPU发送至少一个时间节点的海啸中间计算结果获取指令;所述GPU根据所述至少一个时间节点的海啸中间计算结果获取指令,将计算过程中符合所述时间节点的海啸中间计算结果传输至所述CPU;具体地,第一、根据地震发生位置和潜在海啸影响区域确定海啸数值计算模型计算区域,设定海啸计算空间范围、空间分辨率Δx、时间分辨率Δt以及计算时长;根据空间范围和空间分辨率采用公式(10)计算生成球坐标系下正交曲线网格以及相应的网格参数,即读取原始地形水深文件,插值得到地形水深网格数据;计算Courant系数;其中,g表示重力加速度,hmax为计算范围内的最大水深;即利用Fortran语言编程,在CPU端声明所有变量并赋初值,编写子程序读入一个固定格式的模型参数文件,根据计算区域和空间分辨率计算正交曲面网格每一点的经纬度并插值水深;编写子程序对Courant系数是否满足稳定性条件进行判断,若不满足,对时间步长进行调整;第二、获取海底断层破裂引起的海底形变信息,即初始海表面形变量;即利用Fortran语言编程,根据Okada断层模型,结合读入的地震和断层参数计算初始海表面形变;或者直接读入文件格式的初始海表面形变量和动量通量信息;第三、将海啸传播计算模块需要的变量和参数通过PCI‑3.0接口传递至GPU显存;即利用CUDA_C语言的cudaMalloc命令,在GPU端声明变量、分配显存,然后再用cudaMemcpy(*,cudaMemcpyHostToDevice)命令,实现从CPU向GPU传递所有参与海啸传播计算的变量和参数,包括海平面初始垂向位移、沿经度和纬度动量通量;第四、海啸波在大洋深水区的传播计算,即数值求解线性浅水方程,包括质量连续方程、经向和纬向动量方程和定解边界条件;即利用CUDA_C语言编写在设备端执行的内核函数__global__void**_kernel(…),包括离散化的质量连续方程、经向和纬向动量方程和海啸波吸收边界算法;采用交错式显性蛙越方案求解方程,网格中心点是海啸波高和水深,上下及相邻四边为沿经向和纬向的动量通量;时间上,GPU执行逐时间步长迭代计算;空间上,GPU执行沿经度和纬度两个方向求解;当执行至网格边界时,采用吸收边界算法滤波;同一时间步长,GPU必须遍历所有网格点,然后才能进入下一个时间步长计算,循环往复直至设定的计算时长;方程的解包括海啸波高和两个方向的海啸动量通量;第五、海啸波在浅水区域的传播计算,即数值求解非线性浅水方程,包括质量连续方程、经向和纬向动量方程和吸收边界算发;动量方程中增加了底摩擦项和非线性对流项;第六、输出保存海啸计算结果,采用NetCDF格式对结果进行输出保存。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家海洋环境预报中心,未经国家海洋环境预报中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810130177.1/,转载请声明来源钻瓜专利网。