潜艇使用自航式声诱饵防御鱼雷模型并行计算方法研究*

2021-01-06 00:54迟利华
计算机工程与科学 2020年12期
关键词:诱饵鱼雷进程

李 雯,迟利华,张 会,张 哲,刘 杰

(1.国防科技大学并行与分布处理重点实验室,湖南 长沙 410073;2.国防科技大学复杂系统软件工程湖南省重点实验室,湖南 长沙 410073;3.湖南大学信息科学与工程学院,湖南 长沙 410082;4.海军潜艇学院,山东 青岛 266199)

1 引言

随着现代鱼雷综合性能的不断提高,潜艇受到鱼雷攻击的威胁日趋严重,水声对抗成为电子对抗的重要组成部分。水声对抗问题就是研究当潜艇发现鱼雷袭击时,采用何种方式规避以及如何发射诱饵(或其他对抗器材)才能最有效地避开鱼雷的袭击以保存自己的防御策略问题[1]。目前常用的水声对抗器材有自航式声诱饵、噪声干扰器和气幕弹等[2]。其中自航式声诱饵是一种带有动力的能自航行的目标信号模拟器,不仅能模拟潜艇的辐射噪声特性和声反射特性,还能模拟潜艇的运动特性,对鱼雷具有很大的欺骗性,结合潜艇自身规避机动,鱼雷命中概率会大大降低,因此使用自航式声诱饵防御声自导鱼雷已成为潜艇水下防御的主要手段之一[3]。

在确定防御方案的传统方法中,使用较多的是基于Monte-Carlo仿真。这种方法根据各种影响因素的分布范围,以防御成功概率为指标进行统计,优化并确定防御方案参数,需要穷举所有可能的防御方案,计算复杂性较高[3]。为了解决这种传统穷举统计方法中决策参数增多,计算量急剧增加的问题,遗传算法、线性规划等方法得到了作战指挥研究人员的关注。Liang等人[4]将进化算法应用到潜艇反鱼雷对抗过程中的对抗器材优化配置中,取得了较好的效果。彭会斌[5]提出的基于遗传算法的潜艇组合使用声诱饵防御鱼雷技术,采用定性和定量分析相结合的方法计算和优化组合参数。林平等人[6]运用运筹学优化原理,将舰艇远离鱼雷的机动规避航向问题归结为有约束的目标函数优化问题,利用求解非线性规划的方法得到了舰艇的最佳机动规避范围。

近年来,高性能计算蓬勃发展,不断提升的计算能力为气候模拟、生物工程、能源研究和数据分析等领域带来了长足的发展。结合超级计算机海量的计算资源,对现有程序进行并行升级和优化,可以大规模提高计算性能。目前在高性能计算机系统中,国内外最广泛使用的并行编程环境是消息传递接口MPI(Message-Passing Interface),它已成为国际上的一种并行程序标准,具有功能复杂、可移植性好、效率高等多种优点[7]。OpenMP是一个针对共享内存并行编程的API[8],采用Fork-Join的执行模式。使用MPI作为多处理器间粗粒度通信的消息传递接口,OpenMP实现轻量级多线程并行,从而形成的MPI+OpenMP混合编程模型具有潜在的可扩展性优势[9],已被应用到很多科学应用中[10]。

针对使用诱饵防御鱼雷的方案选取,文献[11]根据时间推演潜艇、鱼雷和诱饵之间的位置和状态变化,判定诱饵是否受到鱼雷追击,在一定范围内枚举可能的防御方案,根据效能指标作出最优决策。该模型考虑了4个决策参数,随着枚举范围的增加,计算量增大,无法满足实时性要求。本文在不改变该模型求解策略的基础上,利用MPI和OpenMP并行技术进行优化改进,解决模型运行时间过长的问题。测试结果表明,并行模型决策结果与实际作战情况偏差小,相较于串行模型性能提升明显,是传统水声对抗技术与高性能计算技术的结合,对反鱼雷作战决策具有一定的指导意义。

2 防御方案模型

2.1 问题描述

潜艇使用诱饵防御鱼雷的对抗仿真过程涉及潜艇、诱饵和鱼雷3个实体的不同运动控制逻辑。设初始时刻本艇发现来袭鱼雷的潜艇舷角为X,潜艇与鱼雷距离为Y,此时潜艇立即发射诱饵进行水声对抗并转向角度αm规避。仿真过程中考虑的诱饵弹道参数有诱饵的一次转角αy1、一次直航时间ty1和二次转角αy2。其中诱饵在一次直航时间内航行的目的是进入鱼雷的搜索范围,二次转向后的目的是尽快拉大鱼雷和潜艇之间的距离,最大可能地保证潜艇规避鱼雷成功[12]。

防御方案用4元组(αm,αy1,ty1,αy2)表示,鱼雷报警后的防御过程描述为:潜艇发射诱饵并转向角度αm;诱饵出水后首先转向αy1,直线航行ty1,然后再转向αy2,最终直航至航程终了,整个过程设定诱饵航行速度不变[11]。

2.2 效能指标

为适当简化仿真过程,将鱼雷、潜艇和诱饵设为同一深度,在二维视图上研究潜艇对声自导鱼雷的防御问题。将鱼雷对潜艇和诱饵的搜索范围简化为扇面,将潜艇和诱饵的转向机动视作匀速圆周运动。使用安全余量作为方案效能指标,定义为潜艇到鱼雷搜索扇面的距离。安全余量分为瞬间安全余量Ds和过程安全余量D,其中过程安全余量为所有瞬间安全余量的最小值,瞬间安全余量Ds的定义如式(1)所示。

(1)

其中,M表示潜艇位置,C表示鱼雷搜索扇面,d(M,C)为潜艇到鱼雷搜索扇面的距离。防御方案过程安全余量值越大,防御效果越好。

2.3 仿真流程

根据多实体有限状态机的防御方案模型,潜艇使用声诱饵防御声自导鱼雷仿真过程可以概括为:

(1)输入当前鱼雷报警环境态势参数,潜艇速度、鱼雷速度和诱饵速度等初始计算参数,防御方案4个决策参数变化范围,令最佳方案效能指标初值D=0;

(2)确定4元组(αm,αy1,ty1,αy2)参数值,生成防御方案,计算该防御方案安全余量D′;

(3)比较D′与D,若D′>D,则当前方案效能指标更高,防御效果更好,保留当前防御方案,并令D=D′;

(4)修改方案4元组参数以生成新的防御方案,计算D′,重复(3);

(5)重复(4),直到遍历完决策参数变化范围内的所有防御方案。

可以看到,该模型考虑潜艇规避角度和诱饵弹道参数等4个决策参数,在每个参数可能的范围内,按照一定步长取值,对每个方案进行防御过程仿真,计算安全余量D,根据方案之间的安全余量值进行比较,采用贪婪策略每次保留当前最优防御方案,最终得到最优解。

为充分考虑水下对抗的复杂情况,保证所得最优方案与实际理想方案充分接近,决策参数变化范围要尽可能充分,方案覆盖率要尽可能高,这就导致模型计算量大,无法满足实时决策需要。

3 并行化策略

几乎在所有的科学工程计算中,循环都占据了很大的比重,消耗了大量的计算时间。并行化循环可以减少循环体的循环次数,减少分支执行的时间,是一种重要且通用的并行优化方法。循环并行化最基本的方法是将循环变量分成几个部分,每个处理器处理其中的一个部分,独立地进行相应计算。计算完成后,将各个处理器上的计算结果按照一定的方式收集汇总。如第2节所述,“过程仿真+方案搜索”的模型涉及4个决策参数,是一个4层嵌套循环的执行过程,每次循环为一个独立方案的过程仿真和安全余量计算,很适合采用并行化循环的方式来减少决策时间,提高求解效率。

一方面,将与第1个决策参数相关的最外层循环划分至不同的进程,各进程在各自的参数取值范围内,并行地完成防御方案的过程仿真计算过程,在进程内部“贪心”地保存局部最优方案。计算过程中各进程间不需要进行额外的数据交换,计算完成后将每个进程计算结果收集起来,做出全局最优决策(如算法1所示)。

算法1基于MPI的多进程并行防御方案搜索

输入:决策参数搜索范围ns,鱼雷最大直航时间T,防御方案效能指标D,其他必要的环境参数,进程数comm_sz。

输出:最优防御方案P。

1.初始化:D←0;

2.获取进程号my_rank;

//计算进程局部循环区间[local_A,local_B]

3.ifmy_rank

4.local_A←my_rank×(ns/comm_sz+1)+1;local_B←local_A+(ns/comm_sz+1)-1;

5.elselocal_A←my_rank×(ns/comm_sz)+1+(ns%comm_sz);local_B←local_A+(ns/comm_sz)-1;

6.endif

7.fori1=local_A,local_A+1,…,local_Bdo

9.fori2= 1,2,…,nsdo

11.fori3= 1,2,…,nsdo

13.fori4= 1,2,…,nsdo

15. 对防御方案(αm,αy1,ty1,αy2)进行仿真,计算其效能指标D′;

16.ifD′>Dthen

17.D←D′;保留当前防御方案P;

18.endif

19.endfor

20.endfor

21.endfor

22.endfor

23.根据进程局部最优方案效能D,在总通信域中确定最优防御方案效能D_MAX;

24.ifD=D_MAXthen

25. 该局部最优方案即为全局最优方案,返回并保存最终结果P;

26.endif

27.returnP

另一方面,在嵌套循环中,每次循环体的执行是一个独立防御方案的计算过程,循环与循环之间不存在特别的数据依赖,将与第4个决策参数相关的最内层循环利用OpenMP指导语句,派生出多线程进行计算。基于OpenMP的线程并行策略如算法2所示。

算法2基于OpenMP的多线程并行防御方案搜索

输入:决策参数搜索范围ns,鱼雷最大直航时间T,防御方案效能指标D,其他必要的环境参数。

输出:最优防御方案P。

1.初始化:D←0;

2.fori1= 1,2,…,nsdo

4.fori2= 1,2,…,nsdo

6.fori3= 1,2,…,nsdo

8. #pragma omp parallel for

9.fori4= 1,2,…,nsdo

11. 对防御方案(αm,αy1,ty1,αy2)进行仿真,计算其效能指标D′;

12.ifD′>Dthen

13.D←D′,保留当前防御方案P;

14.endif

15.endfor

16.endfor

17.endfor

18.endfor

19.returnP

为了提高并行效率,引入2级并行策略。在每个进程中利用多线程技术计算出局部最优方案后,使用MPI_Allreduce()函数,根据进程间局部最大安全余量值D进行一次数据通信,本地效能指标值最高的进程生成的防御方案就是最终决策结果。图1给出了2级并行之后的鱼雷防御模型流程图。

Figure 1 Parallel flow chart of defense scheme search图1 防御方案搜索并行流程

4 结果分析与讨论

文献[11]利用Matlab平台实现了潜艇使用自航式诱饵防御鱼雷方案搜索串行模型,该模型不能在短时间内作出精准决策,无法直接并行化。使用C语言重写模型之后,决策参数搜索范围设置为25时,Matlab版本模型运行时间为32 s,C版本模型运行时间为16 s,整体性能提升了2倍。

防御方案决策过程遵循枚举→计算→比较的逻辑,程序运行时间严格依赖于决策参数搜索范围ns的大小设置。ns设置小,决策时间短,可以在合理的时间内给出方案结果,但仿真方案覆盖率小,决策结果与实际理想方案偏差较大;相反,ns越大,决策结果与实际最优方案越接近,模型计算时间越长,不能实现实时决策。

为了评估并行模型的性能提升,首先将ns赋值为40进行测试。表1给出了在该值下仅采用MPI并行、仅采用OpenMP并行和采用MPI+OpenMP混合并行的运行时间。可以看出,串行模型的运行时间为144.65 s,采用64个线程运行时间可缩短至52.60 s,MPI并行时64个进程可以把时间缩短到接近5.84 s,MPI+OpenMP混合并行可以进一步将时间缩短到1.19 s。

Table 1 MPI,OpenMP,MPI+OpenMP runtime表1 MPI、OpenMP、MPI+OpenMP运行时间 s

图2给出了仅使用MPI、仅使用OpenMP和使用混合并行策略3者对应的加速比对比结果,混合并行的加速比明显好于仅使用MPI或者OpenMP的加速比,随着进程数的增加,它们之间的加速比差异也越来越大。

Figure 2 Speedup of different parallel strategies图2 不同并行策略的加速比

对于混合并行决策模型的可扩展性,进一步改变计算规模进行实验,分别设置决策参数搜索范围ns为20,60,100和140,得到对应的加速比,如图3所示。使用同样的进程数,随着计算量的增加,加速比会更高。在混合并行的决策模型中,无论计算量如何改变,进程之间只有一次全局通信的过程,当计算量增加,通信时间占比减少,并行效果也越来越好。

Figure 3 Speedup under different calculation scales图3 不同计算规模下的加速比

图4给出了搜索范围为160时进程数目对决策模型计算时间的影响。串行模型需要40 min才能作出决策,采用混合并行策略之后可以大大缩短时间,128个进程并行决策时间减少到了50 s内。

Figure 4 Calculation time of defense scheme when ns = 160图4 ns=160时的防御方案计算时间

5 结束语

自航式声诱饵防御鱼雷的使用策略设计是一个很复杂的问题,在综合考虑潜艇规避角度、诱饵1次转角、1次直航时间和2次转角4个决策参数的情形下,当参数变化范围增大,生成方案数增多时,仿真计算时间将无法满足水声对抗决策需求。

随着高性能计算技术的发展,大规模并行计算已成为研究科学与工程技术的一种崭新的手段和方式。本文基于潜艇使用自航式声诱饵防御声自导鱼雷,设计了MPI和OpenMP混合的防御决策并行模型,将决策参数变化带来的防御方案更迭仿真的循环过程划分至不同的进程和线程,在进程作出局部最优决策之后,通过集合通信确定全局最优方案。实验结果表明,并行模型可以在满足临场决策时间的要求下,作出与实际作战情况相似的决策方案。相较于原串行模型,在404个方案仿真的计算量下,运行时间从144.65 s缩短至1.2 s,当方案数增加至1604时,时间从40 min缩短至50 s内。

本文用并行计算的思想解决传统水声对抗计算量过大的难题,对潜艇使用声诱饵防御声自导鱼雷具有一定的指导意义,当计算量不再是作战决策的瓶颈时,潜艇防御鱼雷能力的影响因素可以进一步细化到更多参数和更复杂情况。

猜你喜欢
诱饵鱼雷进程
险恶之人
雪花诱饵
军事岛 鱼雷人
鱼雷也疯狂
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
一种基于Radon-Wigner变换的拖曳式诱饵辨识方法
诱饵
社会进程中的新闻学探寻
小鱼雷也有大作用