一种针对海洋模式ROMS众核优化的方法技术

技术编号:32753094 阅读:18 留言:0更新日期:2022-03-23 18:48
本发明专利技术公开一种针对海洋模式ROMS众核优化的方法,包括以下步骤:S1、查找、确认并分析海洋模式中的热点函数,找出热点函数的特点;S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及数据相关性、但存在跨步访存问题的函数;S3、对S2中获得的热点函数的计算部分,利用循环段程序重构,将跨步访存变为连续访存;S4、利用编译指示语句对循环段进行众核优化,将循环段计算任务分发到不用的众核上;S5、对编译指示语句进行调优,通过多轮对比测试,作为最终的优化版本,可供模式其他算例使用。本发明专利技术在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。还可以达到众核加速的效果。还可以达到众核加速的效果。

【技术实现步骤摘要】
一种针对海洋模式ROMS众核优化的方法


[0001]本专利技术涉及一种针对海洋模式ROMS众核优化的方法,属于众核优化


技术介绍

[0002]ROMS(Regional Ocean Modeling System)是一个开源的三维区域海洋模型,由Rutgers大学海洋与海岸科学研究所与UCLA两校共同研究开发,功能强大,被广泛应用于海洋及河口地区的水动力及水环境模拟,可以模拟不同尺度的运动,如全球尺度的环流运动、中尺度的水位与流场变化,也可以计算小尺度内波、混合等过程。
[0003]ROMS模式是在垂向静压近似和Boussinesq假设下,按照有限差分近似求自由表面Reynolds(雷诺数)平均的原始Navier

Stokes方程。模型在水平方向使用正交曲线网格,垂向采用地形拟合的可伸缩坐标系统(S坐标系),并针对不同应用提供多种垂向转换函数和拉伸函数。
[0004]作为开源软件,ROMS的并行只在MPI层实现,在更高精度前提下,仅仅依靠MPI不能满足时效性的要求,需要发挥异构众核的强大计算能力来满足对性能的提升需求。
[0005]气象类课题都面临时效性的问题,ROMS海洋模式也不例外。随着网格分辨率的提升,计算量呈指数倍地增加,为了在更短的时间内,获得更多的结果数据,单纯依靠增大进程规模已经不能满足课题的实际需求,需要在众核层面进行进一步的优化来满足实际需要。

技术实现思路

[0006]本专利技术的目的是提供一种针对海洋模式ROMS众核优化的方法,其在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。
[0007]为达到上述目的,本专利技术采用的技术方案是:提供一种针对海洋模式ROMS众核优化的方法,包括以下步骤:S1、利用热点函数工具和手动插装相结合的方法查找、确认并分析海洋模式中的热点函数,找出热点函数的特点,包括:计算密集型或者通信密集型,访存是否连续,I/O特点和大小,是否涉及数据相关性;S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及数据相关性、但存在跨步访存问题的函数;S3、对S2中获得的热点函数的计算部分,利用循环段程序重构,将跨步访存变为连续访存;S4、利用编译指示语句对循环段进行众核优化,将循环段计算任务分发到不用的众核上;S5、对编译指示语句进行调优,通过多轮对比测试,确定加速效果最好的语句组合,作为最终的优化版本,可供模式其他算例使用。
[0008]由于上述技术方案的运用,本专利技术与现有技术相比具有下列优点:
本专利技术一种针对海洋模式ROMS众核优化的方法,通过对热点函数中循环段的程序重构,在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。
附图说明
[0009]附图1为本专利技术一种针对海洋模式ROMS众核优化的方法的流程示意图。
具体实施方式
[0010]实施例:本专利技术提供一种针对海洋模式ROMS众核优化的方法,具体包括以下步骤:S1、利用热点函数工具和手动插装相结合的方法查找、确认并分析海洋模式中的热点函数,找出热点函数的特点,包括:计算密集型或者通信密集型,访存是否连续,I/O特点和大小,是否涉及数据相关性;S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及数据相关性、但存在跨步访存问题的函数;S3、对S2中获得的热点函数的计算部分,主要为三重循环,利用循环段程序重构,将跨步访存变为连续访存;此步骤是针对主核进行优化;S4、利用编译指示语句对循环段进行众核优化,将循环段计算任务分发到不用的众核上,充分发挥众核的高效计算能力;此步骤针对从核,实现从核化;从核的优势在于强大的计算能力,将循环段计算任务分发到从核上就是为了充分利用从核强大的计算能力,提高计算效率;S5、对编译指示语句进行调优,通过多轮对比测试,从多组统计实验数据中选取加速效果最好的语句组合,作为最终的优化版本,可供模式其他算例使用;此步骤是在上一步实现众核化的基础上进行的调优,目的是尽可能大地提高计算效率。
[0011]对上述实施例的进一步解释如下:通过对热点函数中循环段的程序重构,程序重构后,主核访存cache命中率更高,且在提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作;然后利用openACC的指示语句进行多种组合调优,达到众核加速的效果,最终得到加速性能良好的组合版本;鉴于课题所用环境为国产平台,在对程序核心段采用优化重构的基础上,本专利技术选用国产化的众核加速软件openACC对课题进行众核加速,解决运行时间过长的问题。
[0012]本专利在实现中主要解决以下问题:(1)、跨步访存问题对于主核部分,由于热点函数中存在跨步访存,会导致访存性能低,因此对函数中存在跨步访存的循环段进行程序重构,变跨步访存为连续访存,如下所示:
(2)、核心段最外层循环变量较小,不利于分块问题对于该问题,利用指示语句collapse将最外层和次外层进行循环合并,解决分块问题。
[0013](3)、循环变量为一维数组变量,编译器无法自动识别和优化问题针对上述问题,新声明一个标量,将数组变量赋值给标量后,用标量替换循环中的数组变量后,编译器可以对该标量进行自动识别和优化,如下所示:(4)、分块大小选取问题由于从核加速空间有限,从核分块大小过大会导致程序运行报错,过小会影响计算性能,利用tile子句反复试验后确定分块大小。
[0014]采用上述一种针对海洋模式ROMS众核优化的方法时,其提升主核访存性能的同时,也有利于从核进行灵活的分块和合并等操作,还可以达到众核加速的效果。
[0015]为了便于更好的理解本专利技术,下面将对本文中使用的术语进行简要的解释:S坐标系:即可伸缩地形跟随坐标,能够适当地描述流场受到地形的影响,而且在垂直方向上采用非等比例分层等方式,相对采用水深等比例分层的经典模式来说,其温跃层和底边界层等让人更感兴趣的层面上有更高的解析度。
[0016]程序重构:为了提高访存性能,针对不同情况,对原有循环段进行顺序调整、循环段展开、循环段合并等操作,使得访存性能有较大提升。
[0017]上述实施例只为说明本专利技术的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本专利技术的内容并据以实施,并不能以此限制本专利技术的保护范围。凡根据本专利技术精神实质所作的等效变化或修饰,都应涵盖在本专利技术的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对海洋模式ROMS众核优化的方法,其特征在于,包括以下步骤:S1、利用热点函数工具和手动插装相结合的方法查找、确认并分析海洋模式中的热点函数,找出热点函数的特点,包括:计算密集型或者通信密集型,访存是否连续,I/O特点和大小,是否涉及数据相关性;S2、根据S1中的分析结果,找出排名前三的热点函数都是属于计算密集型、不涉及...

【专利技术属性】
技术研发人员:徐占陈德训孙唯哲李芳刘鑫徐金秀郭恒陈鑫赵朋朋杨雨灵韩笑颖
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

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

1