System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种网格化声场计算的MPI+OpenMP混合并行加速方法技术_技高网

一种网格化声场计算的MPI+OpenMP混合并行加速方法技术

技术编号:41923132 阅读:7 留言:0更新日期:2024-07-05 14:22
本发明专利技术属于海洋声学与高性能计算技术领域,尤其是涉及一种网格化声场计算的MPI+OpenMP混合并行加速方法,其主要功能基于MPI实现算例级层次的并行,并通过动态调度算法实现不同节点之间的负载平衡,基于OpenMP实现射线级的并行,并通过编译指导语句实现不同线程之间的负载平衡。本发明专利技术可以有效压缩并行计算的时间,提高生产效率,相较于原有水声传播射线模型算法,本发明专利技术通过调整算法框架,增加算例循环,克服了原模型只能计算单个算例的缺陷;保证了不同节点间,不同线程间的负载平衡,节点与线程的双重局部负载平衡确保了全局的负载平衡。本发明专利技术适用范围广,用户可根据计算需求设定节点数与线程数,自行选择将该发明专利技术用于超级计算机系统或个人计算机。

【技术实现步骤摘要】

本专利技术属于海洋声学与高性能计算,尤其是涉及一种网格化声场计算的mpi+openmp混合并行加速方法。


技术介绍

1、人们常利用射线模型模拟声波在实际海洋环境中的传播,为了模拟大范围区域内的海洋水体中的声波传播过程,网格化声场计算逐渐走向应用。小范围区域声波传播模拟依赖于输入的海洋环境文件,海洋环境文件的构建主要依据实地的观测数据或基于模式的海洋再分析数据,实地观测数据是声速剖面的“标准解”,但在时空分布上难以做到连续,而基于模式的海洋再分析数据可以克服这一缺陷。同时,随着基于模式的海洋再分析数据分辨率日渐提升,可生成的海洋环境文件随分辨率线性增长,网格化海洋声场模拟的精细化程度极大提升,然而声场网格精度的加密必然导致计算开销的增加,巨大的时间开销成为了限制声场信息在海洋工程中应用的主要因素之一。并行计算作为一种可以同时利用多种计算资源解决计算问题的有效方法,成为当前提高声场计算效率的一种有效方式。然而,虽然前人已经对水声传播射线模型的并行加速进行了多方面的研究,但这些并行优化均是在射线级这一层次,无法实现多个算例的并行优化。然而,在实际海洋工程的网格化声场计算中,声场计算任务远不止单个,如果无法实现算例级层次的并行优化,水声传播模型的应用仍然受到限制。


技术实现思路

1、本专利技术的目的在于,为实现算例级和射线级两个层次上的水声传播射线模型的优化加速,基于mpi实现算例级层次的并行,并通过动态调度算法实现不同节点之间的负载平衡,基于openmp实现射线级的并行,并通过编译指导语句实现不同线程之间的负载平衡。

2、为实现上述目的,本专利技术提供了一种基于水声传播射线模型的网格化声场计算并行加速方法,所述方法具体包括如下步骤:

3、一种网格化声场计算的mpi+openmp混合并行加速方法,包括如下步骤:

4、步骤1,选定目标范围与目标时间,划分目标区域网格点,通过海洋模式获取目标时间节点目标区域内的垂直温盐深水文要素,利用海水声速经验公式得到网格点的声速剖面,基于水深地形数据对声速剖面进行截断,并结合声速剖面、水深地形数据组成声场环境文件;

5、步骤2,调整水声传播射线模型bellhop的算法结构,在原有算法框架最外层增加一层新的循环,调整后的射线模型由三层循环增加至四层循环,由外至内,依次为算例循环、声源循环、射线追踪循环、射线步进循环;

6、步骤3,基于mpi分布存储式编程模式,设计算例级层次的动态调度算法,以0号节点为主节点,其余节点为子节点,主节点负责算例的分配与声场计算结果的收集,子节点负责完成算例的声场计算;

7、步骤4,对串行水声传播射线模型bellhop进行计算热点分析和可并行性分析,确定并行优化目标,基于openmp共享存储式编程模式,增加编译指导语句将不同的射线动态分配到不同的线程中进行计算,每个线程中保存各自所计算射线的声压矩阵,最后通过规约函数将声压矩阵相加到主线程中。

8、对前述网格化声场计算的mpi+openmp混合并行加速方法的进一步完善或者具体实施方式,所述步骤1具体包括:

9、步骤1.1,基于海洋模式结果选定目标范围与目标时间的海洋再分析数据;

10、步骤1.2,基于海洋模式获取目标时间与区域的垂直温盐深水文要素,利用海水声速经验公式得到对应网格点的海水声速剖面,具体公式如式所示:

11、c=1449.22+δct+δcs+δcp+δcstp  (1)

12、其中,

13、δct=4.6233t-5.458510-2t2+2.82210-4t3+5.0710-7t4  (2)

14、δcp=1.6051810-1p+1.027910-5p2+3.45110-9p3-3.50310-12p4  (3)

15、δcs=1.391(s-35)-3.810-2(s-35)2  (4)

16、

17、其中,c代表海水中的声速值,t代表海水中的温度,p代表海水中的压强,s代表海水中的盐度,δct代表由温度单项引起的海水声速变化,δcp代表由压强单项引起的海水声速变化,δcs代表由压强单项引起的海水声速变化,δcstp代表由温度、压强、盐度三项耦合引起的海水声速变化;

18、步骤1.3,结合水深地形数据寻找声速剖面对应经纬度的海底深度,对步骤1.2中获得的声速剖面数据在海底处进行截断,并将水深地形数据和截断后的声速剖面组成声场环境文件,且一个声场环境文件对应一个算例。

19、对前述网格化声场计算的mpi+openmp混合并行加速方法的进一步完善或者具体实施方式,所述步骤2调整后的水声传播射线模型bellhop的算法结构包括如下循环步骤:

20、s1、输入声场算例环境配置文件,确定声场环境参数,进入任务级循环;

21、s2、基于s1输入的声场环境配置文件,确定声源位置,进入声源级循环;

22、s3、基于s2确定的声源位置,确定声线的初始位置和掠射角,进入射线级循环;

23、s4、执行射线步进,计算射线的轨迹、幅度及相位;每前进一步,判断是否接触海底或海面,若接触海底或海面,则射线方向反向;

24、s5、判断是否达到最大步数,若未到达最大步数,则返回执行步骤s4;

25、s6、判断是否遍历所有射线,若未遍历所有射线,则返回执行步骤s3;

26、s7、判断是否遍历所有声源位置,若未遍历所有声源位置,则返回执行步骤s2;

27、s8、判断是否遍历所有算例文件,若未遍历所有算例文件,则返回执行步骤s1。

28、对前述网格化声场计算的mpi+openmp混合并行加速方法的进一步完善或者具体实施方式,所述步骤3具体包括:

29、步骤3.1,根据计算需求,向计算中心申请n个计算节点,对不同的计算节点进行编号,0号节点负责算例的分配与声场计算结果的收集,而号节点负责完成算例的声场计算;

30、步骤3.2,主节点中初始化变量j=0和变量nrecv=0,其中,变量j代表已经分配的算例个数,变量nrecv代表已经完成计算并收集的算例个数;

31、步骤3.3,子节点使用mpi_recv函数,使自身保持信息接收状态,主节点通过mpi_send函数将变量j发送给子节点,主节点每发送一次信息,变量j更新为j=j+1,子节点接收到变量j后,完成第j个算例的计算,计算完成后使用mpi_send函数将自身节点编号发送给主进程,主节点使用mpi_recv函数接收到消息后将变量nrecv更新为nrecv=nrecv+1,而后再次发送变量j给对应子节点;

32、步骤3.4,循环进行步骤3.3,直至主进程中变量j和nrecv均大于需要计算的算例个数,主节点再次使用mpi_send函数将变量j发送给子节点,而后主节点退出动态调度过程,子节点使用mpi_recv函数接收变量j,并对变量本文档来自技高网...

【技术保护点】

1.一种网格化声场计算的MPI+OpenMP混合并行加速方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的网格化声场计算的MPI+OpenMP混合并行加速方法,其特征在于,所述步骤1具体包括:

3.根据权利要求1所述的网格化声场计算的MPI+OpenMP混合并行加速方法,其特征在于,所述步骤2调整后的水声传播射线模型Bellhop的算法结构包括如下循环步骤:

4.根据权利要求1所述的网格化声场计算的MPI+OpenMP混合并行加速方法,其特征在于,所述步骤3具体包括:

5.根据权利要求1所述的网格化声场计算的MPI+OpenMP混合并行加速方法,其特征在于,所述步骤4具体包括:

【技术特征摘要】

1.一种网格化声场计算的mpi+openmp混合并行加速方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的网格化声场计算的mpi+openmp混合并行加速方法,其特征在于,所述步骤1具体包括:

3.根据权利要求1所述的网格化声场计算的mpi+openmp混合并行加速方法,其特征在于,所述...

【专利技术属性】
技术研发人员:廖思远王勇献辜思宇肖汶斌
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

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

1