CN116187118B - 基于多gpu并行的多目标区域精细化海啸传播计算方法 - Google Patents
基于多gpu并行的多目标区域精细化海啸传播计算方法 Download PDFInfo
- Publication number
- CN116187118B CN116187118B CN202211494615.5A CN202211494615A CN116187118B CN 116187118 B CN116187118 B CN 116187118B CN 202211494615 A CN202211494615 A CN 202211494615A CN 116187118 B CN116187118 B CN 116187118B
- Authority
- CN
- China
- Prior art keywords
- grid
- layer
- tsunami
- area
- gpu
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 146
- 238000012545 processing Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 33
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 7
- 230000010354 integration Effects 0.000 claims description 4
- 230000005855 radiation Effects 0.000 claims description 3
- 230000000750 progressive effect Effects 0.000 abstract 1
- 239000010410 layer Substances 0.000 description 142
- 230000008878 coupling Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 239000002356 single layer Substances 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 239000013535 sea water Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Geophysics And Detection Of Objects (AREA)
Abstract
本发明涉及一种基于多GPU并行的多目标区域精细化海啸传播计算方法,包括:基于球坐标系统的多目标区域的多层网格嵌套信息及相关信息,CPU和GPU初始化相关参数及变量,每一GPU按照由外向内的顺序依次计算每一层网格的海啸传播过程,在达到结束条件时,将计算结果发送CPU;针对待处理的至少一个目标区域的第N层网格,CPU读取第N层网格的相关参数及变量以传输至指定的GPU;每一GPU进行海啸传播计算,按照逐层递进方式执行,直至处于最内层的目标区域完成海啸计算。上述CPU协同控制所有目标区域的计算,每个GPU单独负责一个目标区域所有层级网格的计算流程;目标区域数量不大于GPU的数量,充分发挥多GPU的整体计算性能。
Description
技术领域
本发明涉及海啸数据处理技术,尤其涉及一种基于多GPU并行的多目标区域精细化海啸数值计算方法。
背景技术
精细化海啸数值计算是海啸预警和防灾减灾的核心技术手段。一般而言,精细化海啸数值计算需要通过在高性能计算机上求解浅水方程得以实现,求解过程需要海啸源附近初始海平面异常数据、计算区域网格方案和配套的数值求解算法以及目标区域高质量的水深和陆地高程资料。因为计算机内存和算力的限制,精细化海啸数值计算无法在大尺度全模拟区域条件下(超过1000km)实施。
通常的应对方法为针对目标区域进行加密计算,即目标区域采用高分辨率网格计算,其它区域采用一般分辨率网格计算。具体方案包括两种:1)利用多层嵌套的规则网格,逐层提高空间分辨率的方案实现目标区域的海啸计算;2)利用单层非结构三角形网格,逐步增加从大洋到目标区域空间分辨率的方案实现海啸计算。
在通用图形计算单元(GPU)出现之前,高性能计算方案采用堆砌CPU算力的方式得以实施,包括单个计算节点的Open-MP并行和多计算节点的MPI并行方案。但是,CPU的通用性决定了其内部构造的复杂性,不仅包含计算模块,还存在大量的逻辑分支和缓存模块,这种构造方式分散了计算模块的资源使用率。通用GPU的出现催生了高性能计算全新的实现方式,即GPU作为计算加速设备与CPU组成异构计算平台。GPU拥有更强的计算性能和更高的访存带宽,是一个天然并行的、数据间相互无依赖的纯净的计算环境。越来越多的算法被成功移植到GPU平台上,并取得了很好的加速效果。具体地,现有申请号为CN20181013017.7公开一种海啸数值计算模型基于GPU并行的快速执行方法,其属于利用GPU实现高性能计算的方法,其给出了在单层曲面网格上求解海啸传播过程的单GPU加速方案,非常适用于大洋尺度条件下1~3km空间分辨率的快速海啸计算。然而,GPU的硬件参数限制了单层网格条件下模型空间分辨率的进一步提升,无法做到大尺度全区域的精细化海啸计算。
发明内容
(一)要解决的技术问题
鉴于现有技术的上述缺点、不足,本发明提供一种基于多GPU并行的多目标区域精细化海啸传播计算方法。
(二)技术方案
为了达到上述目的,本发明采用的主要技术方案包括:
第一方面,本发明实施例提供一种基于多GPU并行的多目标区域精细化海啸传播计算方法,包括:
S01、计算设备接收到海啸传播计算的启动指令后,读取预先确定的多目标区域的网格嵌套信息、水深数据和海啸源信息,所述多目标区域的网格嵌套信息为球坐标系下针对每个目标区域逐层加密的网格信息和对应的多计算区域;所述计算区域为由目标区域逐层向外扩大并最终包含海啸源的多层地表空间曲面,每一计算区域均设置了不同层级的一套网格信息,最内层为目标区域;
S02、所述计算设备的CPU和GPU初始化海啸源信息对应的海啸传播计算所需参数和变量;GPU计算所有目标区域共享的第一层网格的海啸传播过程,在达到结束条件时,将计算结果发送CPU;针对待处理的至少一个目标区域的第N层网格区域,所述CPU读取第N层网格区域的网格信息、水深数据及第N层网格区域的边界信息;预处理后传输至指定的GPU;N为大于等于2的自然数,计算区域的最外层网格为第一层;
S03、每一GPU接收所述CPU传输的预处理信息,进行海啸传播计算,在达到结束条件时,将第N层网格区域的计算结果发送所述CPU,所述CPU根据第N层网格区域的计算结果提取第N+1层网格区域边界信息,并将第N+1层网格区域边界信息传输至GPU,按照由外向内的顺序独立执行,直至目标区域完成海啸传播计算,所述CPU将所有目标区域的结果进行输出。
可选地,每一计算区域内各层网格信息包括下述的一种或多种:
每一层网格区域的经纬度信息,每一层网格区域的边界条件、每一层网格区域的网格分辨率、积分时间步长。
可选地,S02包括:
针对待处理的至少一套网格区域的第N层网格区域,所述计算设备的CPU读取水深数据和网格信息,判断第N层网格区域相邻嵌套层之间的网格分辨率是否满足第一预设条件,若满足,则基于读取的水深数据对第N层网格区域内每一网格赋予网格点水深数据和高程数据;
以及,判断第N层网格区域积分时间步长是否满足该层所属区域水深条件下的计算稳定性,若满足;
将满足第一预设条件和计算稳定性的第N层网格区域的信息传输至指定GPU,第N层网格区域的信息包括:第N层网格区域内所有网格点水深数据和高程数据、网格分辨率、积分时间步长和经纬度区域信息、设定的波高条件和常参数;
所述第一预设条件为预先定义第N层和第N+1层网格区域的网格分辨率为1:4,或1:3。
可选地,S02中的GPU计算所有目标区域共享的第一层网格的海啸传播过程,在达到结束条件时,将计算结果发送CPU,包括:
GPU求解一个积分时间步长内的质量连续和动量方程,采用辐射边界条件处理边界;根据设定的波高条件,遍历网格点判断海啸是否已经到达并记录;在相邻内层网格的4个边界处,抽取与边界相邻两侧网格点的海啸变量并记录,变量包括海表面起伏Z,X方向平均流速U和Y方向平均流速V时间序列;更新相邻时刻的海啸变量,并进入下一个积分时间步长的计算;直至达到结束条件;
所述结束条件为:设定的计算时长。
可选地,S03中的每一GPU接收所述CPU传输的预处理信息,进行海啸传播计算,在达到结束条件时,将第N层网格区域的计算结果发送所述CPU,包括:
第N层网格区域为每一套网格区域的内层区域时,GPU求解一个积分时间步长内的质量连续和动量方程,采用相邻外层网格区域输出的该层网格区域边界处海啸变量;根据设定的波高条件,遍历网格点判断海啸是否已经到达并记录;在相邻内层网格的4个边界处,抽取与边界相邻两侧网格点的海啸变量并记录,变量包括海表面起伏Z,X方向平均流速U和Y方向平均流速V时间序列;更新相邻时刻的海啸变量,并进入下一个积分时间步长的计算;直至达到结束条件;
其中,采用相邻外层网格区域输出的该层网格区域边界处海啸变量为:第N-1层中与边界相邻的两条网格点的海啸变量。
可选地,S03中的CPU根据第N层网格区域的计算结果提取第N+1层网格区域边界信息,并将第N+1层网格区域边界信息传输至GPU;
提取待处理的网格区域的相邻外层网格边界处的海啸变量序列,并调整相邻外层嵌套网络的常参数和相邻外层网格边界数据;将常参数和相邻外层网格边界数据和待处理的内层的基本信息传输至GPU。
可选地,网格区域即计算区域包括:嵌套多层网格区域的计算覆盖区域;相邻网格区域为相邻嵌套网格对应区域;
每一GPU基于CPU分发的每一网格区域的边界信息获取海啸传播信息。
可选地,计算区域的最内层网格区域的空间分辨率至少达到100m,每一网格区域的网格均为球坐标系下的正交曲线形成的曲面网格。
第二方面,本发明实施例还提供一种计算设备,其包括:存储器、CPU、多个GPU和总线,所述CPU、多个GPU与所述存储器均通过所述总线连接;
所述存储器用于存储控制程序,所述CPU和GPU协调配合以运行控制程序,其中,所述控制程序运行时执行第一方面任一所述的基于多GPU并行的多目标区域精细化海啸传播计算方法。
(三)有益效果
本发明的目的是提供一种基于CPU+多GPU异构高性能计算环境的多目标区域精细化海啸传播计算方法,本发明中对每一目标区域划分不同层次网格,形成针对目标区域的网格嵌套信息,在计算最外层区域时,采用算法给定的边界条件,在计算内层区域时,采用外层网格区域为内层网格区域提供的驱动边界执行单向耦合方案,进而节省了现有技术中采用非结构三角形网格方案的编辑成本。
同时,在本发明实施例中,不同目标区域的网格嵌套信息均是相互独立的,且计算流程和计算过程相互不干扰,即每个GPU单独负责一个目标区域全套网格的海啸传播计算,充分发挥多GPU的整体计算性能。
与现有技术相比,本发明实施例能够借助CPU+多GPU异构的高性能计算环境,仅通过一个计算流程即可实现多目标区域精细化海啸数值计算,在海啸发生之后快速评估不同区域的海啸危险性。
特别地,上述的正交曲面网格嵌套和单向耦合方案允许多目标区域的嵌套网格之间可以灵活设计,互相独立、互不干扰;同时,正交曲面网格嵌套方案可共享最外层网格计算结果,形式上显得更加简洁,且容易实施,无需借助其他软件,节省了时间成本。
附图说明
图1为本发明一实施例提供的基于多GPU并行的多目标区域精细化海啸传播计算方法的流程示意图;
图2为本发明另一实施例提供的基于多GPU并行的多目标区域精细化海啸传播计算方法的过程示意图;
图3为本发明另一实施例提供的边界驱动的海啸传播计算原理示意图;
图4示出了网格嵌套方案中关于计算区域的示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更清楚、透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
现有技术中,利用正交曲面网格结合多层嵌套、逐层加密、双向耦合方案的计算流程为,划定包含海啸源和目标区域的计算空间,建立包含海啸源和目标区域的最外层网格;然后,按照一定的网格分辨率比例建立包含目标区域的内层网格作为外层网格的子网格;循环上述步骤,直至最内层网格分辨率满足精细化海啸数值计算的要求(至少应达到100m),将水深和高程资料插值至各层网格。具体计算过程为,在一个时间步长内,先求解海啸波在最外层网格的传播过程,当计算到嵌套网格区域时,由外层网格向内层网格提供边界条件,进而求解海啸波在内层网格的传播过程,此时的外层网格求解过程处于等待状态。待内层网格求解完成,将计算结果抽吸至外层网格,然后,进入下一个时间步长的方程求解过程。该方案只适用于单一目标区域的精细化海啸数值计算,对于多区域的海啸计算则需要重新分配资源。
现有技术中的双向耦合会扰乱多目标区域上一层网格重叠部分的计算结果,因此,只适用于单个目标区域精细化计算。
现有技术中还提供一种利用单层非结构三角形网格逐步加密方案的计算流程为:划定包含海啸源和目标区域的计算空间,然后,利用网格编辑器沿着海啸源至目标区域分辨率逐渐增加至计算要求的思路设计网格,将水深和高程资料插值至单层网格。因只有一层网格,计算过程相对简单,在一个时间步长内,顺次求解方程即可。该方法能够通过单层网格实现多目标区域的海啸精细化计算,缺点是计算资源使用量大,效率偏低,而且,每一个目标区域的精细化网格编辑工作需要大量的时间成本。
本发明提供一种基于多GPU并行的多目标区域精细化海啸数值计算方法,其通过采用正交曲面网格嵌套和单向耦合方案,实现了基于CPU+多GPU异构高性能计算环境的精细化海啸数值计算。
本发明的网格是球坐标系下的正交曲线网格。单向耦合方案,指的是外层网格为内层网格提供海啸变量作为内层网格的驱动边界。本发明中,对每一目标区域划分不同层次网格,形成目标区域的网格嵌套信息,进而在计算最外层区域时,采用算法给定的边界条件,在计算内层区域时,采用外层网格区域为内层网格区域提供的驱动边界执行单向耦合方案。
本发明方案中,在一个计算流程中,最外层网格区域为所有目标区域提供边界条件,每个GPU单独负责一个目标区域所有层级网格的计算流程,计算流程并发执行,充分发挥多GPU的整体计算性能,完成对多个目标区域的海啸危险性评估;而且,网格嵌套方案较为简单,满足一些必要条件即可,无需借助其他软件,编辑成本低,每个目标区域的网格方案相互独立,互不干扰。
实施例一
本发明实施例提供一种基于多GPU并行的多目标区域精细化海啸数值计算方法,本实施例的方法可包括下述的步骤:
S01、计算设备接收到海啸传播计算的启动指令后,读取预先确定的多目标区域的网格嵌套信息、水深数据和海啸源信息,所述多目标区域的网格嵌套信息为球坐标系下针对每个目标区域逐层加密的网格信息和对应的多计算区域;所述计算区域为由目标区域逐层向外扩大并最终包含海啸源的多层地表空间曲面,每一计算区域均设置了不同层级的一套网格信息,最内层为目标区域。
也就是说,本实施例中存在多套网格区域,每套网格区域最内层为目标区域,最外层为共享的第一层,且每套网格区域的第N层计算结果为第N+1层提供边界信息。
结合图2所示,包含区域1-4的浅色实线为共享的最外层区域,覆盖了海啸源和所有目标区域。
区域1的共有三层网格,分别是上述共享的最外层、第二层(包含区域1虚线),以及第三层(区域1阴影部分)即目标区域;
区域2的共有四层网格,分别是上述共享的最外层、第二层和第三层(包含区域2虚线的两层虚线),以及第四层(区域2阴影部分)即目标区域;
区域3的共有五层网格,分别是上述共享的最外层、第二至四层(包含区域3虚线的三层虚线),以及第五层(区域3阴影部分)即目标区域;
区域4与区域3情况类似。
通常,目标区域的数量和计算设备中GPU的数量对应,可以小于等于GPU的数量。图2中示出四个GPU,本实施例不对其限定,根据需要配置。
S02、计算设备的CPU和GPU初始化海啸源信息对应的海啸传播计算所需参数和变量;GPU计算所有目标区域共享的第一层网格的海啸传播过程,在达到结束条件时,将计算结果发送CPU;针对待处理的至少一个目标区域的第N层网格区域,所述CPU读取第N层网格区域的网格信息、水深数据及第N层网格区域的边界信息;预处理后传输至指定的GPU;N为大于等于2的自然数,计算区域的最外层网格为第一层。
如图3所示,图3示出了外层网格为内层网格提供边界条件的过程,图3的示意图对应图1中的步骤:提取所有目标区域相邻内层网格边界处的海啸变量序列。借助于图3示意的方式,实现每一个目标区域的相邻内层网格边界的计算,直至将目标区域计算完成。
S03、每一GPU接收所述CPU传输的预处理信息,进行独立海啸传播计算,在达到结束条件时,将第N层网格区域的计算结果发送所述CPU,所述CPU根据第N层网格区域的计算结果提取第N+1层网格区域边界信息,并将第N+1层网格区域边界信息传输至GPU,按照由外向内的顺序独立执行,直至最内层的海啸传播计算完成,所述CPU将所有目标区域的结果进行输出。
结合图1和图4所示,GPU0单独计算第一层如C’区域的海啸传播过程,待C’区域处理结果反馈CPU后,CPU基于C’区域处理结果提取B’区域边界信息,GPU0再根据CPU传输的边界信息计算第2层B’区域的海啸传播过程,待B’区域的处理结果反馈CPU之后,CPU基于B’区域处理结果提取a1和a2两个目标区域的边界信息,GPU0根据CPU传输的边界信息独立处理a1目标区域,GPU1根据CPU传输的边界信息独立处理a2目标区域,两者互不干扰,直至处理完成。
本实施例中,第N+1层网格区域的边界信息与第N层网格区域的计算结果关联。例如,同一套网格存在多层依次嵌套的网格,外层网格区域为内层网格区域提供网格区域计算的边界条件,即执行单向耦合方案;内层网格区域采用外层网格区域提供的边界信息驱动海啸传播计算方程。
上述方法采用正交曲面网格嵌套和单向耦合方案,相对于现有技术,节省了非结构三角形网格方案的编辑成本;而且,每个目标区域的网格方案相互独立,计算流程也互不干扰,每个GPU单独负责一套网格区域,充分发挥多GPU的整体计算性能。
为更好的理解正交曲面网格嵌套,如图4所示,假设地震发生在日本海沟,且引发了越洋海啸,可能对中国沿海造成灾害性影响。选择上海作为一个目标区域a1,选择浙江舟山群岛作为第二个目标区域a2,C’范围为最外层区域,网格分辨率2arc-min(弧分);B’范围为第二层区域,网格分辨率0.5arc-min(与外层网格分辨率比为1:4),第二层区域B’范围可以为上海和舟山群岛共用;如果目标区域选在广东沿海,比如广州,第二层区域B’范围可以不一样,也可以重合或者部分重合,计算流程不受影响。因为,只有最外层区域是共享结果的;两个小边框a1和a2分别为两个目标区域的第三层区域,分辨率为0.125arc-min(约为200米)。距离100米之内的分辨率要求,还需要再嵌套一层。
图4仅为举例说明,并不对其限定。
特别说明是,目标区域可视作最内层网格所包含的网格区域,为了得到目标区域的计算结果,本实施例采用了单向逐层网格嵌套的方式,逐步加密网格分辨率,直至满足要求。比如,为了得到上海市的海啸计算结果,本实施例中可做了四层嵌套网格,四层网格所覆盖的网格区域为逐层加密的网格区域,最内层即为目标区域。
进一步地,通常最外层网格区域对于所有目标区域而言都是一样的,如图4所示,即,所有目标区域的第一层计算网格区域是相同的,共享结果。图1中GPU0首先完成的计算流程就是共享的第一层网格区域的计算流程。
本发明实施例中,基于球坐标系统的多目标区域的多层网格单向嵌套信息、水深数据和海啸源信息,CPU和每一GPU初始化海啸传播计算所需参数和变量,GPU计算所有目标区域共享的最外层网格的海啸传播过程,在达到结束条件时,将计算结果发送CPU;针对待处理的至少一个目标区域的第N(N≥2)层网格区域,CPU读取第N层网格区域的网格信息、水深数据及第N层网格区域的边界信息,预处理后传输至指定的GPU;每一GPU进行独立海啸传播计算,在达到结束条件时,将第N层网格区域的计算结果发送CPU,按照由内向外的顺序独立计算,直至最内层目标区域的海啸传播计算完成。本发明实施例中,CPU协同控制所有目标区域的计算,每个目标区域第二层网格共享第一层网格的计算结果,第二及以上层级网格方案相互独立,计算流程也互不干扰,每个GPU单独负责一个目标区域所有层级网格的计算流程,计算流程并发执行,目标区域数量不大于GPU的数量,充分发挥多GPU的整体计算性能。
实施例二
结合图1至图4对实施例一的方法进行详细说明,图1是本发明技术方案的主流程图,图2是方案的整体结构的示意图。如图1所示,本发明提出的基于多GPU并行的多目标区域精细化海啸传播计算方法包括下列步骤:
步骤01:设计地球坐标系多目标区域网格嵌套方案,将网格嵌套方案以参数的形式逐层写入模型控制文件并保存,具体参数包括每层网格的东南西北4个边界以及网格分辨率和积分时间步长;赋予网格点水深和高程数据,数据来源包括公开获取的数据集和购买或实测的数据集,保存文件。
网格嵌套方案中各网格区域的网格均是基于地球坐标系的,每一个网格区域由网格点组成,每个网格点都对应一个地球上真实的地理位置,水深和高程数据是实际测量的或者通过算法计算的接近真实的数据。例如,每一套网格区域的最外层网格区域中网格点的水深和高程数据是实际测量的,该网格区域的内层网格区域网格点的水深和高程数据可以是通过算法计算得到的。
可理解的是,本实施例的提前准备水深和高程文件,可以通过公开渠道(互联网)获取大尺度的水深数据文件,如从互联网下载;目标区域的高精度水深和高程数据文件可以通过购买海图或者从地方海洋测绘部门等渠道获取。每一个设计的网格区域均对应需要一个水深和高程文件。将设计的网格嵌套参数以及水深和高程文件名写入每层区域的模型控制文件。
每一层网格区域的模型控制文件包括的重要参数可举例说明如下:模型运行时间、最小水深和海啸到达时间的波幅阈值等。通常,只有最外层区域或者说第一层需要初始海表面异常数据,其它网格区域均采用边界输入的方式驱动模型。
完成所有网格区域的模型控制文件之后,即可开始向CPU+GPU计算服务器即计算设备提交任务。每个任务承担一个目标区域的计算全流程,比如CPU+GPU负责最外层区域(见图4的C’边框区域)的海啸传播计算,并输出所有目标区域的第二层网格区域(即图4的B’边框区域,此处,舟山群岛和上海公用第二层)边界处相邻的海啸特征值时间序列(Z(x,y,t),U(x,y,t),V(x,y,t),其中,x,y代表边界位置,t代表时间),保存结果,并开始第二层网格区域的海啸传播计算,后续流程依次为保存第三层边界处的第二层网格的海啸特征值时间序列,然后驱动第三层网格区域。可理解为图4中,B’边框区域模型为a1边框区域和a2边框区域提供边界驱动,重复上述流程至第四层或第五层网格区域。上述流程通过CPU+GPU0异构环境实现,具体实现方式为,通过编写pgfortran代码实现。CPU+GPU1负责第二个目标区域的上述流程,以此类推,CPU+GPUn负责第n+1个目标区域的上述流程。目标区域的数量上限由GPU的数量决定。整个计算过程,CPU负载很低,一颗8核及以上数量CPU即可胜任。特别说明,图1中的初始海啸文件可为可选项,在实际处理中,可以根据需要选择。初始海啸文件可以是模型计算得到的,也可以是预先提供的文件。
如图1和图2所示,每一网格区域中网格点上的水深和高程数据文件,后续由CPU读入内存,以备计算。海啸传播计算具体就是计算每一个网格内网格点上的海啸波高和平均流速。
网格嵌套方案应满足以下条件:
条件一:最外层网格区域的覆盖区域(可理解为指定区域)必须包含海啸源(引发海啸的空间位置)和所有目标区域;
条件二:最内层网格的覆盖区域均须包含目标区域;
举例来说,日本发生海啸,对中国有影响,可重点关注比如浙江沿海海啸高风险区,舟山群岛、杭州湾、上海,这些地方可以作为目标区域。每个目标区域对应一套网格,网格层数不限,达到分辨率即可。目标区域的设定数量不能超过GPU卡的数量。
条件三:相邻嵌套网格之间的空间分辨率比例建议保持在[1:4~1:3];
条件四:最内层区域的每一网格的空间分辨率至少应达到100m。
步骤02:启动网格区域最外层区域的海啸传播计算,利用线性\非线性方程计算一段时间(NT)内海啸在最外层区域的传播过程。以数值求解二维浅水方程为例简述计算过程,具体包括以下步骤:
2.1)分别在CPU和GPU端完成海啸计算相关参数和变量的初始化(例如,在CPU和GPU上声明变量,分配内存,并赋予初值);
2.2)利用CPU读取模型控制文件,该文件内含海啸生成和传播计算所必须的参数和文件名。具体包括计算海啸源附近的初始海表面起伏文件或者用于计算初始海表面起伏的地震震源参数,最外层区域的范围、网格的分辨率、积分时间步长和水深数据文件。根据海表明起伏相应调整每个网格点的静态水深数据,然后,将数据传输至GPU;
例如,海底地震引发海底抬升,抬升量在模型中直接处理为海水的抬升,如此,便导致该网格点的原始静态水深(海平面到海底的距离)绝对值变小了。
2.3)判断给定的积分时间步长和网格分辨率是否满足当前水深条件下的计算稳定性条件,如不满足,对时间步长进行相应调整;
海啸传播时间步长可以理解为,用上一时刻海啸波高计算下一时刻的结果,两个时刻之间的时间差即为时间步长。
2.4)求解一个时间步长内的质量连续和动量方程,采用辐射边界条件处理边界;
2.5)根据设定的波高条件,遍历网格点判断海啸是否已经到达并记录;例如,在控制文件中设定,控制文件中包含了其他参数。
2.6)在相邻两层网格区域之间网格的4个边界处,抽取与边界相邻两侧网格点的海啸变量并记录,变量包括海表面起伏Z,X方向平均流速U和Y方向平均流速V时间序列;
边界的定义就是模拟各网格区域最外层,包括东西南北四个方向(或者说上下左右)。内层网格区域的边界位于外层网格区域的内部。参考图3,从内到外的第二虚线是内层网格的边界最内层虚线就是内层边界最近的外层网格边界,每个内层边界都对应两条相邻的内外网格边界,分别位于其两侧,外层实线为外层边界。
2.7)更新相邻时刻的海啸变量,准备进入下一个时间点的计算;
2.8)重复2.4)~2.7)直至完成设定的计算时长。
步骤03:将2.6)抽取的NT时间段内1个或多个相邻内层区域4个边界处的海啸变量传输至CPU端,保存文件。
启动内层网格区域海啸传播计算(参见图3),利用非线性方程计算一段时间(NT)内海啸在内层网格区域的传播过程。计算步骤与(2)基本一致,唯一不同的是,步骤2.2)控制文件中的“初始海表面起伏文件或者用于计算初始海表面起伏的地震震源参数”改为“相邻外层网格区域输出的该层网格区域边界处海啸变量文件”;
重复步骤02和步骤03,直至完成最内层目标区域的海啸传播计算。
将海啸传播计算结果从GPU端传输至CPU端,保存文件。
其中,步骤02在1个GPU上完成,可根据目标区域的数量在多个GPU上同时展开,GPU之间没有数据通信和交换,各自独立完成对应目标区域的精细化海啸计算工作。CPU作为指挥官,仅参与数据读取、输出以及与GPU通信工作,不参与数值求解海啸传播方程。
实施例三
根据本发明实施例的另一方面,本发明实施例还利用一种计算设备执行上述实施例一和实施例二所述的方法,该计算设备可包括:存储器、处理器和总线,所述处理器与所述存储器通过所述总线连接;处理器包括多个GPU和CPU;
所述存储器用于存储控制程序,所述处理器用于运行控制程序,其中,所述控制程序运行时执行上述任意实施例所述方法的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。
Claims (7)
1.基于多GPU并行的多目标区域精细化海啸传播计算方法,其特征在于,包括:
S01、计算设备接收到海啸传播计算的启动指令后,读取预先确定的多目标区域的网格嵌套信息、水深数据和海啸源信息,所述多目标区域的网格嵌套信息为球坐标系下针对每个目标区域逐层加密的网格信息和对应的多计算区域;所述计算区域为由目标区域逐层向外扩大并最终包含海啸源的多层地表空间曲面,每一计算区域均设置了不同层级的一套网格信息,最内层为目标区域;
S02、所述计算设备的CPU和GPU初始化海啸源信息对应的海啸传播计算所需参数和变量;GPU计算所有目标区域共享的第一层网格的海啸传播过程,在达到结束条件时,将计算结果发送CPU;针对待处理的至少一个目标区域的第N层网格区域,所述CPU读取第N层网格区域的网格信息、水深数据及第N层网格区域的边界信息;预处理后传输至指定的GPU;N为大于等于2的自然数,计算区域的最外层网格为第一层;
S03、每一GPU接收所述CPU传输的预处理信息,进行海啸传播计算,在达到结束条件时,将第N层网格区域的计算结果发送所述CPU,所述CPU根据第N层网格区域的计算结果提取第N+1层网格区域边界信息,并将第N+1层网格区域边界信息传输至GPU,按照由外向内的顺序独立执行,直至目标区域完成海啸传播计算,所述CPU将所有目标区域的结果进行输出;
其中,S02包括:
针对待处理的至少一套网格区域的第N层网格区域,所述计算设备的CPU读取水深数据和网格信息,判断第N层网格区域相邻嵌套层之间的网格分辨率是否满足第一预设条件,若满足,则基于读取的水深数据对第N层网格区域内每一网格赋予网格点水深数据和高程数据;
以及,判断第N层网格区域积分时间步长是否满足该层所属区域水深条件下的计算稳定性,若满足;
将满足第一预设条件和计算稳定性的第N层网格区域的信息传输至指定GPU,第N层网格区域的信息包括:第N层网格区域内所有网格点水深数据和高程数据、网格分辨率、积分时间步长和经纬度区域信息、设定的波高条件和常参数;
所述第一预设条件为预先定义第N层和第N+1层网格区域的网格分辨率为1:4,或1:3;
S02中的GPU计算所有目标区域共享的第一层网格的海啸传播过程,在达到结束条件时,将计算结果发送CPU,包括:
GPU求解一个积分时间步长内的质量连续和动量方程,采用辐射边界条件处理边界;根据设定的波高条件,遍历网格点判断海啸是否已经到达并记录;在相邻内层网格的4个边界处,抽取与边界相邻两侧网格点的海啸变量并记录,变量包括海表面起伏Z,X方向平均流速U和Y方向平均流速V时间序列;更新相邻时刻的海啸变量,并进入下一个积分时间步长的计算;直至达到结束条件;
所述结束条件为:设定的计算时长。
2.根据权利要求1所述的多目标区域精细化海啸传播计算方法,其特征在于,每一计算区域内各层网格信息包括下述的一种或多种:
每一层网格区域的经纬度信息,每一层网格区域的边界条件、每一层网格区域的网格分辨率、积分时间步长。
3.根据权利要求1所述的多目标区域精细化海啸传播计算方法,其特征在于,S03中的每一GPU接收所述CPU传输的预处理信息,进行海啸传播计算,在达到结束条件时,将第N层网格区域的计算结果发送所述CPU,包括:
第N层网格区域为每一套网格的内层区域时,GPU求解一个积分时间步长内的质量连续和动量方程,采用相邻外层网格区域输出的该层网格区域边界处海啸变量;根据设定的波高条件,遍历网格点判断海啸是否已经到达并记录;在相邻内层网格的4个边界处,抽取与边界相邻两侧网格点的海啸变量并记录,变量包括海表面起伏Z,X方向平均流速U和Y方向平均流速V时间序列;更新相邻时刻的海啸变量,并进入下一个积分时间步长的计算;直至达到结束条件;
其中,采用相邻外层网格区域输出的该层网格区域边界处海啸变量为:第N-1层中与边界相邻所有网格点的海啸变量。
4.根据权利要求1所述的多目标区域精细化海啸传播计算方法,其特征在于,S03中的CPU根据第N层网格区域的计算结果提取第N+1层网格区域边界信息,并将第N+1层网格区域边界信息传输至GPU;
提取待处理的网格区域的相邻外层网格边界处的海啸变量序列,并调整相邻外层嵌套网络的常参数和相邻外层网格边界数据;将常参数和相邻外层网格边界数据和待处理的内层的基本信息传输至GPU。
5.根据权利要求1所述的多目标区域精细化海啸传播计算方法,其特征在于,
网格区域包括:嵌套多层网格的计算覆盖区域;
相邻网格区域为相邻嵌套网格对应区域;
每一GPU基于CPU分发的每一网格区域的边界信息获取海啸传播信息。
6.根据权利要求1所述的多目标区域精细化海啸传播计算方法,其特征在于,
最内层网格区域的空间分辨率至少达到100m,每一网格区域的网格均为球坐标系下的正交曲线形成的曲面网格。
7.一种计算设备,其特征在于,包括:存储器、CPU、多个GPU和总线,所述CPU、多个GPU与所述存储器均通过所述总线连接;
所述存储器用于存储控制程序和数据,所述CPU和GPU协调配合以运行控制程序,其中,所述控制程序运行时执行权利要求1至6任一所述的基于多GPU并行的多目标区域精细化海啸传播计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211494615.5A CN116187118B (zh) | 2022-11-25 | 2022-11-25 | 基于多gpu并行的多目标区域精细化海啸传播计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211494615.5A CN116187118B (zh) | 2022-11-25 | 2022-11-25 | 基于多gpu并行的多目标区域精细化海啸传播计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116187118A CN116187118A (zh) | 2023-05-30 |
CN116187118B true CN116187118B (zh) | 2024-06-25 |
Family
ID=86437141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211494615.5A Active CN116187118B (zh) | 2022-11-25 | 2022-11-25 | 基于多gpu并行的多目标区域精细化海啸传播计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116187118B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460195A (zh) * | 2018-02-08 | 2018-08-28 | 国家海洋环境预报中心 | 海啸数值计算模型基于gpu并行的快速执行方法 |
CN112153576A (zh) * | 2019-06-28 | 2020-12-29 | 英特尔公司 | 高可靠性信息中心网络中的任务关键型推送通知 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788683B (zh) * | 2009-12-29 | 2012-05-23 | 华东师范大学 | 一种基于多层次互动的海啸运动预测方法 |
JP6671064B2 (ja) * | 2016-03-03 | 2020-03-25 | 国立研究開発法人海洋研究開発機構 | 粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム |
JP6362178B2 (ja) * | 2016-06-21 | 2018-07-25 | 国立大学法人東北大学 | 津波浸水予測システム、制御装置、並列計算機システムの制御方法及びプログラム |
-
2022
- 2022-11-25 CN CN202211494615.5A patent/CN116187118B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460195A (zh) * | 2018-02-08 | 2018-08-28 | 国家海洋环境预报中心 | 海啸数值计算模型基于gpu并行的快速执行方法 |
CN112153576A (zh) * | 2019-06-28 | 2020-12-29 | 英特尔公司 | 高可靠性信息中心网络中的任务关键型推送通知 |
Also Published As
Publication number | Publication date |
---|---|
CN116187118A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109003322B (zh) | 一种动力定位船舶海上作业的三维海浪仿真优化方法 | |
Kobayashi et al. | Load balancing strategies for a parallel ray-tracing system based on constant subdivision | |
CN101976468B (zh) | 一种多分辨率动态地形可视化方法及系统 | |
CN109874146A (zh) | 一种预测路损的方法及装置 | |
CN116774292B (zh) | 一种地震波走时确定方法、系统、电子设备及存储介质 | |
CN104811957A (zh) | 基于射线追踪的城市环境场强预测方法及系统 | |
US20060080072A1 (en) | Optimized rendering of dynamic moving bodies | |
CN106251400A (zh) | 一种基于多四边形网格构建地形图的方法及装置 | |
Frost et al. | A model to map levelised cost of energy for wave energy projects | |
CN116187118B (zh) | 基于多gpu并行的多目标区域精细化海啸传播计算方法 | |
CN113706706B (zh) | 数据的处理方法、装置及电子设备 | |
Plaza et al. | A 3D refinement/derefinement algorithm for solving evolution problems | |
CN112379413B (zh) | 基于能量谱等效的非规则震源表征方法和装置 | |
CN111833395B (zh) | 一种基于神经网络模型的测向体制单目标定位方法和装置 | |
Hachiya et al. | Position-dependent partial convolutions for supervised spatial interpolation | |
CN116992793A (zh) | 一种海上风能资源仿真模拟方法、装置、设备及介质 | |
Giannakidis et al. | 3D photorealistic scientific visualization of tsunami waves and sea level rise | |
CN109754449B (zh) | 一种二维网格图形的三角化确定方法 | |
CN111046542A (zh) | 一种评估二十面体的le网格计算特性方法及离散方法 | |
CN116051782B (zh) | 基于正交网格曲线插值的数据处理及重构建模方法、设备和存储介质 | |
Fu et al. | Development and Application of Marine Environment Data Visualization Technology | |
CN117875089B (zh) | 透水结构防护深海养殖场内波高分布的计算方法及系统 | |
CN113051825B (zh) | 一种海底趋势面的动态ls-svm构建方法 | |
Arif et al. | Tidal wave height estimation on the southern coast of Java Island using Fuzzy Kalman Filter | |
CN112684499B (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 |