仿真过程中逻辑进程间数据包发送方法及相关设备与流程
本公开涉及计算机数据处理,尤其涉及一种仿真过程中逻辑进程间数据包发送方法及相关设备。
背景技术:
1、目前,pdes(parallel discrete event simulation,并行离散事件仿真)技术主要采用保守时间管理算法和乐观时间管理算法来解决并行仿真的因果约束问题。其中,保守时间管理算法的核心原则是绝对避免因果违例,只有在确保不会收到落后消息的前提下才处理下一事件。但各处理器需要频繁地互相发送空消息来协调时间推进。在大规模网络仿真中,处理器数量众多,空消息的发送频率和数量巨大,通信开销甚至超过实际数据包消息的传输开销;且保守算法通常在每个事件级别进行因果判定,同步粒度极细,会导致频繁的屏障同步和上下文切换。乐观时间管理算法允许处理器投机性地超前处理事件,当检测到事件乱序错误时采用回滚技术进行修复。网络仿真中每个节点维护大量协议状态,回滚意味着需要保存和恢复这些协议状态,内存开销极大;并且一个处理器的回滚可能引发其邻居处理器的级联回滚,在密集交互的网络仿真场景中,级联回滚可能导致整体性能甚至低于串行仿真。
2、综上,如何在大规模无线网络仿真场景中兼顾因果正确性的同时保证低通信开销和低内存开销是目前亟待解决的问题。
技术实现思路
1、本公开提出一种仿真过程中逻辑进程间数据包发送方法及相关设备,以解决或部分解决上述问题。
2、本公开第一方面提供了一种仿真过程中逻辑进程间数据包发送方法,应用于仿真实例,所述仿真实例包括多个逻辑进程lp,包括:在当前时隙的数据包交换期内,接收邻居lp发送的入站数据包,其中,仿真过程被预先划分为多个时隙,各时隙分为数据包交换期以及并行执行期,所述邻居lp发送的所述入站数据包是在所述入站数据包缓存至上一个时隙边界时发送的;将接收到的入站数据包插入本地事件队列;若确定在当前时隙的数据包交换期内接收到的所有数据包均已插入所述本地事件队列,触发全局屏障并进入阻塞等待状态,当所述仿真实例内全部lp均抵达所述全局屏障时,解除所述全局屏障进入并行执行期;在所述并行执行期对所述本地事件队列中的本地事件进行处理;将处理产生的本地新事件插入所述本地事件队列,将处理产生的跨lp数据包输出到输出消息缓冲区;在到达当前时隙的时隙边界时将所述输出消息缓冲区内的数据包发送至邻居lp。
3、本公开第二方面提供了一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述一个或多个程序包括用于执行第一方面所述的方法的指令。
4、本公开第三方面提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述一个或多个处理器执行第一方面所述的方法。
5、本公开第四方面提供了一种计算机程序产品,包括一个或者多个计算机程序,所述一个或者多个计算机程序被一个或多个处理器执行时实现如第一方面所述的方法。
6、本公开实施例的仿真过程中逻辑进程间数据包发送方法,将仿真过程中的每个时隙预先划分为数据包交换期与并行执行期,跨lp数据包全部缓存在输出缓冲区中直到时隙边界才统一发送并完成投递。在数据包交换期,lp接收其邻居lp发送的入站数据包,在将当前时隙接收到的入站数据包全部投递至本地事件队列后触发全局屏障,在全局屏障解除后才统一处理本地事件,保证当前时隙所有待执行事件均为因果安全的,无需对事件进行回滚操作。
7、且在并行执行期内lp完全独立运行,无需任何跨lp通信,实现了最大程度的数据并行,理论上可获得与lp数量成正比的加速比。再者,由于lp仅处理因果上安全的事件,从根本上避免了因果违例,因此完全不需要回滚机制和状态检查点,内存开销极低。数据包交换期完成后,每个lp确信当前时隙所需的全部数据包已就绪,可以安全地进入并行执行期,将复杂的因果判定简化为时隙边界的同步操作,大幅降低了仿真过程中时间管理的算法复杂度。此外,每个时隙仅需要执行一次全局屏障同步,完全消除了传统保守算法的空消息机制,兼顾了低通信开销和低内存开销。
1.一种仿真过程中逻辑进程间数据包发送方法,应用于仿真实例,所述仿真实例包括多个逻辑进程lp,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述并行执行期对所述本地事件队列中的本地事件进行处理,包括:
3.根据权利要求1所述的方法,其特征在于,将接收到的入站数据包插入本地事件队列,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,若确定在当前时隙的数据包交换期内接收到的所有数据包均已插入所述本地事件队列,触发全局屏障并进入阻塞等待状态,当所述仿真实例内全部lp均抵达所述全局屏障时,解除所述全局屏障进入并行执行期,包括:
6.根据权利要求1所述的方法,其特征在于,在所述仿真实例的任意两个lp之间仅当存在直接互联的边界节点时互为邻居lp,上游lp、下游lp均为邻居lp的子集;跨lp的数据包仅在互为邻居lp的lp间转发。
7.根据权利要求1所述的方法,其特征在于,在到达当前时隙的时隙边界时将所述输出消息缓冲区内的数据包发送至邻居lp,包括:
8.根据权利要求1所述的方法,其特征在于,确定在当前时隙的数据包交换期内接收到的所有数据包均已插入所述本地事件队列,包括:
9.一种计算机设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至8任一项所述的方法的指令。
10.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1至8任一项所述的方法。
11.一种计算机程序产品,包括一个或者多个计算机程序,所述一个或者多个计算机程序被一个或多个处理器执行时实现如权利要求1至8任一项所述的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com