CN114218736A - 一种针对海洋模式roms众核优化的方法 - Google Patents
一种针对海洋模式roms众核优化的方法 Download PDFInfo
- Publication number
- CN114218736A CN114218736A CN202110453194.0A CN202110453194A CN114218736A CN 114218736 A CN114218736 A CN 114218736A CN 202110453194 A CN202110453194 A CN 202110453194A CN 114218736 A CN114218736 A CN 114218736A
- Authority
- CN
- China
- Prior art keywords
- core
- many
- hot spot
- access
- loop segment
- 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.)
- Pending
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/08—Thermal analysis or thermal optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种针对海洋模式ROMS众核优化的方法,包括以下步骤:S1、查找、确认并分析海洋模式中的热点函数,找出热点函数的特点;S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及数据相关性、但存在跨步访存问题的函数;S3、对S2中获得的热点函数的计算部分,利用循环段程序重构,将跨步访存变为连续访存;S4、利用编译指示语句对循环段进行众核优化,将循环段计算任务分发到不用的众核上;S5、对编译指示语句进行调优,通过多轮对比测试,作为最终的优化版本,可供模式其他算例使用。本发明在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。
Description
技术领域
本发明涉及一种针对海洋模式ROMS众核优化的方法,属于众核优化技术领域。
背景技术
ROMS(Regional Ocean Modeling System)是一个开源的三维区域海洋模型,由Rutgers大学海洋与海岸科学研究所与UCLA两校共同研究开发,功能强大,被广泛应用于海洋及河口地区的水动力及水环境模拟,可以模拟不同尺度的运动,如全球尺度的环流运动、中尺度的水位与流场变化,也可以计算小尺度内波、混合等过程。
ROMS模式是在垂向静压近似和Boussinesq假设下,按照有限差分近似求自由表面Reynolds(雷诺数)平均的原始Navier-Stokes方程。模型在水平方向使用正交曲线网格,垂向采用地形拟合的可伸缩坐标系统(S坐标系),并针对不同应用提供多种垂向转换函数和拉伸函数。
作为开源软件,ROMS的并行只在MPI层实现,在更高精度前提下,仅仅依靠MPI不能满足时效性的要求,需要发挥异构众核的强大计算能力来满足对性能的提升需求。
气象类课题都面临时效性的问题,ROMS海洋模式也不例外。随着网格分辨率的提升,计算量呈指数倍地增加,为了在更短的时间内,获得更多的结果数据,单纯依靠增大进程规模已经不能满足课题的实际需求,需要在众核层面进行进一步的优化来满足实际需要。
发明内容
本发明的目的是提供一种针对海洋模式ROMS众核优化的方法,其在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。
为达到上述目的,本发明采用的技术方案是:提供一种针对海洋模式ROMS众核优化的方法,包括以下步骤:
S1、利用热点函数工具和手动插装相结合的方法查找、确认并分析海洋模式中的热点函数,找出热点函数的特点,包括:计算密集型或者通信密集型,访存是否连续,I/O特点和大小,是否涉及数据相关性;
S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及数据相关性、但存在跨步访存问题的函数;
S3、对S2中获得的热点函数的计算部分,利用循环段程序重构,将跨步访存变为连续访存;
S4、利用编译指示语句对循环段进行众核优化,将循环段计算任务分发到不用的众核上;
S5、对编译指示语句进行调优,通过多轮对比测试,确定加速效果最好的语句组合,作为最终的优化版本,可供模式其他算例使用。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明一种针对海洋模式ROMS众核优化的方法,通过对热点函数中循环段的程序重构,在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。
附图说明
附图1为本发明一种针对海洋模式ROMS众核优化的方法的流程示意图。
具体实施方式
实施例:本发明提供一种针对海洋模式ROMS众核优化的方法,具体包括以下步骤:
S1、利用热点函数工具和手动插装相结合的方法查找、确认并分析海洋模式中的热点函数,找出热点函数的特点,包括:计算密集型或者通信密集型,访存是否连续,I/O特点和大小,是否涉及数据相关性;
S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及数据相关性、但存在跨步访存问题的函数;
S3、对S2中获得的热点函数的计算部分,主要为三重循环,利用循环段程序重构,将跨步访存变为连续访存;
此步骤是针对主核进行优化;
S4、利用编译指示语句对循环段进行众核优化,将循环段计算任务分发到不用的众核上,充分发挥众核的高效计算能力;
此步骤针对从核,实现从核化;从核的优势在于强大的计算能力,将循环段计算任务分发到从核上就是为了充分利用从核强大的计算能力,提高计算效率;
S5、对编译指示语句进行调优,通过多轮对比测试,从多组统计实验数据中选取加速效果最好的语句组合,作为最终的优化版本,可供模式其他算例使用;
此步骤是在上一步实现众核化的基础上进行的调优,目的是尽可能大地提高计算效率。
对上述实施例的进一步解释如下:
通过对热点函数中循环段的程序重构,程序重构后,主核访存cache命中率更高,且在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作;然后利用openACC的指示语句进行多种组合调优,达到众核加速的效果,最终得到加速性能良好的组合版本;
鉴于课题所用环境为国产平台,在对程序核心段采用优化重构的基础上,本发明选用国产化的众核加速软件openACC对课题进行众核加速,解决运行时间过长的问题。
本专利在实现中主要解决以下问题:
(1)、跨步访存问题
对于主核部分,由于热点函数中存在跨步访存,会导致访存性能低,因此对函数中存在跨步访存的循环段进行程序重构,变跨步访存为连续访存,如下所示:
(2)、核心段最外层循环变量较小,不利于分块问题
对于该问题,利用指示语句collapse将最外层和次外层进行循环合并,解决分块问题。
(3)、循环变量为一维数组变量,编译器无法自动识别和优化问题
针对上述问题,新声明一个标量,将数组变量赋值给标量后,用标量替换循环中的数组变量后,编译器可以对该标量进行自动识别和优化,如下所示:
(4)、分块大小选取问题
由于从核加速空间有限,从核分块大小过大会导致程序运行报错,过小会影响计算性能,利用tile子句反复试验后确定分块大小。
采用上述一种针对海洋模式ROMS众核优化的方法时,其提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
S坐标系:即可伸缩地形跟随坐标,能够适当地描述流场受到地形的影响,而且在垂直方向上采用非等比例分层等方式,相对采用水深等比例分层的经典模式来说,其温跃层和底边界层等让人更感兴趣的层面上有更高的解析度。
程序重构:为了提高访存性能,针对不同情况,对原有循环段进行顺序调整、循环段展开、循环段合并等操作,使得访存性能有较大提升。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种针对海洋模式ROMS众核优化的方法,其特征在于,包括以下步骤:
S1、利用热点函数工具和手动插装相结合的方法查找、确认并分析海洋模式中的热点函数,找出热点函数的特点,包括:计算密集型或者通信密集型,访存是否连续,I/O特点和大小,是否涉及数据相关性;
S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及数据相关性、但存在跨步访存问题的函数;
S3、对S2中获得的热点函数的计算部分,利用循环段程序重构,将跨步访存变为连续访存;
S4、利用编译指示语句对循环段进行众核优化,将循环段计算任务分发到不用的众核上;
S5、对编译指示语句进行调优,通过多轮对比测试,确定加速效果最好的语句组合,作为最终的优化版本,可供模式其他算例使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453194.0A CN114218736A (zh) | 2021-04-26 | 2021-04-26 | 一种针对海洋模式roms众核优化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453194.0A CN114218736A (zh) | 2021-04-26 | 2021-04-26 | 一种针对海洋模式roms众核优化的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114218736A true CN114218736A (zh) | 2022-03-22 |
Family
ID=80695832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110453194.0A Pending CN114218736A (zh) | 2021-04-26 | 2021-04-26 | 一种针对海洋模式roms众核优化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114218736A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114970294A (zh) * | 2022-08-02 | 2022-08-30 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 |
CN115391069A (zh) * | 2022-10-27 | 2022-11-25 | 山东省计算中心(国家超级计算济南中心) | 基于海洋模式roms的并行通讯方法及系统 |
CN118245117A (zh) * | 2024-05-29 | 2024-06-25 | 山东省计算中心(国家超级计算济南中心) | 基于新一代申威众核处理器多分支自动分析并行优化方法 |
-
2021
- 2021-04-26 CN CN202110453194.0A patent/CN114218736A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114970294A (zh) * | 2022-08-02 | 2022-08-30 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 |
CN114970294B (zh) * | 2022-08-02 | 2022-10-25 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 |
CN115391069A (zh) * | 2022-10-27 | 2022-11-25 | 山东省计算中心(国家超级计算济南中心) | 基于海洋模式roms的并行通讯方法及系统 |
CN115391069B (zh) * | 2022-10-27 | 2023-02-03 | 山东省计算中心(国家超级计算济南中心) | 基于海洋模式roms的并行通讯方法及系统 |
CN118245117A (zh) * | 2024-05-29 | 2024-06-25 | 山东省计算中心(国家超级计算济南中心) | 基于新一代申威众核处理器多分支自动分析并行优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114218736A (zh) | 一种针对海洋模式roms众核优化的方法 | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN103226487A (zh) | 面向异构众核多级存储结构的数据分布与局部性优化方法 | |
CN110084363B (zh) | 一种基于fpga平台的深度学习模型加速方法 | |
Sakagami et al. | 14.9 TFLOPS three-dimensional fluid simulation for fusion science with HPF on the Earth Simulator | |
CN104572295A (zh) | 匹配于高性能计算机体系结构的结构网格数据管理方法 | |
CN112947870B (zh) | 一种3D打印模型的G-code并行生成方法 | |
CN102902590B (zh) | 面向并行数字地形分析海量dem部署与调度方法 | |
CN105528243A (zh) | 一种利用数据拓扑信息的优先级分组调度方法及系统 | |
Ye et al. | swNEMO_v4. 0: an ocean model NEMO for the next generation Sunway supercomputer | |
CN110648768B (zh) | 一种pom海洋模式优化方法及装置 | |
Sawdey et al. | The design, implementation, and performance of a parallel ocean circulation model | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
CN112346873B (zh) | 适应现代超级计算机硬件架构的特征线法多级并行方法 | |
CN110543711B (zh) | 一种数值堆热工水力子通道模拟的并行实现与优化方法 | |
Meredith et al. | A distributed data-parallel framework for analysis and visualization algorithm development | |
Huang et al. | A general novel parallel framework for SPH-centric algorithms | |
Lettich et al. | Processing streams of spatial k-NN queries and position updates on manycore GPUs | |
Gao et al. | A multi-level parallel tie-dye algorithm for auto-CFD | |
Yin et al. | Heterogeneous Big Data Parallel Computing Optimization Model using MPI/OpenMP Hybrid and Sensor Networks | |
Tsugane et al. | Hybrid-view programming of nuclear fusion simulation code in the PGAS parallel programming language XcalableMP | |
CN109597619A (zh) | 一种面向异构多核架构的自适应编译框架 | |
Qiao et al. | swNEMO_v4. 0: an ocean model based on NEMO4 for the new-generation Sunway supercomputer | |
Wu et al. | A parallel flood inundation algorithm for massive dem data | |
Lei et al. | MIC-THPCM: MIC-based heterogeneous parallel optimization for axial compressor rotor |
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 |