一种两级混合并行网络仿真方法与流程

摘要: 本说明书涉及网络仿真,例如涉及一种两级混合并行网络仿真方法。背景技术:1、网络仿真是进行网络拓扑验证、通信协议测试与组网性能评估的技术手段。在空天地一体化网络、...
一种两级混合并行网络仿真方法与流程

本说明书涉及网络仿真,例如涉及一种两级混合并行网络仿真方法。

背景技术:

1、网络仿真是进行网络拓扑验证、通信协议测试与组网性能评估的技术手段。在空天地一体化网络、车载组网、机动集群等仿真平台数量众多、平台位置持续变化的仿真场景中,网络协议与数据包事件按离散事件方式推进,事件之间存在因果顺序约束,串行执行时的仿真承载规模与推进速度受单一执行体处理能力的限制,因而通常采用并行方式执行仿真任务。

2、并行执行时,全部平台的网络仿真被拆分为多个并行执行的仿真任务,各仿真任务分别承担其中一部分平台的网络仿真;当某一仿真任务产生的网络事件以另一仿真任务所承担的平台为目的平台时,该网络事件需传递至承担该目的平台的仿真任务。现有并行方式按其所采用的层级,大致分为三类。

3、其一,线程级并行,即在单个进程内以多个线程共享内存的方式执行仿真任务。该方式的同步逻辑复杂,易出现事件处理乱序与数据不一致。

4、其二,单机多进程并行,即在单个计算机内以多个进程执行仿真任务,进程之间经该计算机内的共享内存或本机通信机制交换仿真数据。该方式的仿真规模受限于单个计算机的处理器与内存资源,难以随平台数量的增加而横向扩展。

5、其三,跨节点分布式并行,即将仿真任务划分至多个物理节点,由各物理节点分别承担其中一部分仿真任务,节点之间经网络通道交换仿真过程中产生的网络事件。该方式中全部网络事件统一经节点之间的网络通道传输,即使网络事件的目的平台与产生该网络事件的仿真任务由同一物理节点承担,该网络事件仍需经序列化、内核协议栈处理与网络链路传输,由此引入额外的传输时延与处理开销。

6、上述三类方式的共同之处在于,在同一仿真系统中仅设置单一层级的事件传输路径:未依据网络事件的目的平台所归属的仿真任务范围对事件的传输路径加以区分,缺少在节点内传输路径与跨节点传输路径之间进行选择的机制,因而难以在具备多节点扩展能力的同时降低节点内事件传输的开销。

技术实现思路

1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。

2、第一方面,本说明书实施例提供一种两级混合并行网络仿真方法,所述方法应用于包括多个物理节点的网络仿真系统,各所述物理节点分别对应一个仿真分区并对所对应的仿真分区内的平台进行网络仿真,各所述物理节点内运行有多个网络仿真进程且设置有供所述多个网络仿真进程访问的共享内存,各所述网络仿真进程分别对所对应的平台进行网络仿真,所述多个物理节点之间设置有跨节点消息传递通道;所述方法包括:

3、建立平台标识与分区标识之间的映射关系;

4、在所述多个物理节点中的第一物理节点内的第一网络仿真进程产生以目的平台为对象的网络事件的情况下,根据所述映射关系确定所述目的平台所属的目标仿真分区;

5、在所述目标仿真分区为所述第一物理节点对应的仿真分区的情况下,将所述网络事件经所述第一物理节点的共享内存传递至所述第一物理节点内对所述目的平台进行网络仿真的第二网络仿真进程;

6、在所述目标仿真分区为所述多个物理节点中的第二物理节点对应的仿真分区的情况下,将所述网络事件经所述跨节点消息传递通道传递至所述第二物理节点。

7、本说明书实施例提供的两级混合并行网络仿真方法,可以实现以下技术效果:

8、通过建立平台标识与分区标识之间的映射关系,并在网络事件产生时即根据该映射关系确定目的平台所属的目标仿真分区,使网络事件在进入任何传输环节之前完成归属判定,进而按判定结果分流至两条独立的传输路径:目的平台所属的仿真分区为本物理节点对应的仿真分区时,该网络事件经映射至相关网络仿真进程各自地址空间的同一共享内存段传递,不再经历序列化、内核协议栈处理与网络链路传输;目的平台所属的仿真分区为其他物理节点对应的仿真分区时,该网络事件经跨节点消息传递通道传递,承担跨越物理节点所必需的开销。由此,节点内事件不因仿真系统具备跨节点扩展能力而被迫承担跨节点传输所引入的开销,从而在保留多物理节点横向扩展能力的同时,降低节点内事件传递的时延与处理开销。在一个具体实施例中,节点内事件传输时延由约10μs降至约1μs,网络事件处理效率提升40%;同时,通过3个物理节点的分布式部署,仿真承载规模由96个平台提升至288个平台。

9、进一步地,各网络仿真进程分别对所对应的平台进行网络仿真,各网络仿真进程之间在模型加载与事件处理上相互独立,使多个网络仿真进程能够在同一物理节点内并行推进各自所负责的网络仿真;且跨节点事件到达目的物理节点后,仍能按平台归属抵达具体的网络仿真进程,两级分流在节点间与节点内保持一致。

10、进一步地,以哈希映射路由表承载平台标识与分区标识之间的映射关系时,查询时间不随平台数量的增加而增长,从而在平台数量众多的仿真场景中,归属判定本身不会成为事件传递路径上的新瓶颈。

11、进一步地,节点内事件经共享内存中的无锁环形队列写入与取出,事件自产生方进程写入至接收方进程取出的事件自产生方进程写入至接收方进程取出的过程在同一共享内存段内完成,无需经内核网络协议栈和跨节点网络链路传输,进而使节点内事件传递的时延降至共享内存访问的量级。

12、进一步地,共享内存中设置的多个无锁环形队列与本物理节点内的多个网络仿真进程一一对应时,各网络仿真进程分别从其所对应的队列中取出事件,不同接收进程的事件流互不干扰,写入方与取出方之间的竞争范围被限制在单个队列内,从而在同一物理节点内运行多个网络仿真进程时仍可维持较低的并发开销。

13、进一步地,跨节点事件消息中携带目的平台的平台标识时,接收该消息的物理节点无需再次查询映射关系,即可在本地完成向具体网络仿真进程的分发,减少了跨节点事件在接收侧的处理环节。

14、进一步地,运动状态的实际数据写入redis状态缓存服务,状态可用事实经发布订阅通道以通知形式送达,使体量较大的六自由度运动状态数据不经发布订阅通道传输,避免相应的序列化开销;同时使网络仿真进程无需为发现状态更新而反复轮询redis状态缓存服务,避免处理器空转。redis状态缓存服务可供多个物理节点访问,使网络仿真进程能够按需获取跨仿真分区的平台运动状态。

15、进一步地,各网络仿真进程将状态可用通知中的数据版本号与本地缓存的版本号相比较,并结合数据可用的仿真时间范围,仅在数据确有更新且待处理事件落入所述时间范围时才从redis状态缓存服务读取运动状态,使读取动作与实际需求相匹配,进一步减少不必要的缓存访问。

16、进一步地,各物理节点根据本仿真分区的当前仿真时间和前瞻量确定可安全推进至的时间窗上界,并将各仿真分区的时间窗上界中的最小值确定为全局安全推进界限,使各物理节点仅处理时间戳不大于该全局安全推进界限的事件,从而在不发生事件回滚的情况下维持跨仿真分区网络事件的时序一致。