一种离散事件并行处理方法、终端设备及存储介质技术

技术编号:36553505 阅读:13 留言:0更新日期:2023-02-04 17:07
本发明专利技术涉及一种离散事件并行处理方法、终端设备及存储介质,该方法中包括:当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内;当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值;根据最小时间戳和时间步长计算下一帧时间戳;将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,确定线程在下一帧时间戳对应时刻是否进行处理。本发明专利技术采用并行离散事件仿真方式,能够充分发挥多个CPU计算性能,提高仿真的运行效率。提高仿真的运行效率。提高仿真的运行效率。

【技术实现步骤摘要】
一种离散事件并行处理方法、终端设备及存储介质


[0001]本专利技术涉及离散事件处理领域,尤其涉及一种离散事件并行处理方法、终端设备及存储介质。

技术介绍

[0002]现有的并行离散事件系统中,主要存在如下问题:(1)目前并行离散事件仿真大多可通过多进程实现并行处理,但每个进程内部只能串行执行,难以充分挖掘应用的并行潜能;(2)在并行离散事件仿真运行过程中存在时间同步机制,如何高效收集、处理事件和时间同步控制,成为了仿真快速和并行运行的瓶颈之一;(3)在并行离散事件中,在保证并行高效处理的过程中,同时要解决离散事件的并行处理和执行顺序。

技术实现思路

[0003]为了解决上述问题,本专利技术提出了一种离散事件并行处理方法、终端设备及存储介质。
[0004]具体方案如下:
[0005]一种离散事件并行处理方法,包括以下步骤:
[0006]离散事件时间模型针对线程池中的每个线程均创建工作处理器,每个工作处理器按照各帧的时间戳对事件进行处理;
[0007]当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内;
[0008]当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值,将计算的最小时间戳发送至时间驱动管理器;
[0009]时间驱动管理器根据接收到的最小时间戳和时间步长计算下一帧时间戳,并发送至离散事件时间模型;
[0010]离散事件时间模型将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,如果某个线程对应的事件队列中的最小时间戳小于或等于下一帧时间戳,则该线程在下一帧时间戳对应时刻处理事件队列中的最小时间戳对应的事件,并将该事件从事件队列内删除;否则,线程在下一帧时间戳对应时刻不进行处理。
[0011]进一步的,事件的类型包括三种,分别为离散事件、周期事件和无序事件。
[0012]进一步的,设定无序事件的最小处理时间为最小值。
[0013]进一步的,线程池在离散事件时间模型在首次运行时创建,线程池中包含的线程数根据CPU线程数确定。
[0014]进一步的,离散事件时间模型中还包括线程计数器,用于计算执行完毕的线程的数量。
[0015]一种离散事件并行处理终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本专利技术实施例上述的方法的步骤。
[0016]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本专利技术实施例上述的方法的步骤。
[0017]本专利技术采用如上技术方案,采用并行离散事件仿真方式,能够充分发挥多个CPU计算性能,提高仿真的运行效率。
附图说明
[0018]图1所示为本专利技术实施例一的流程图。
具体实施方式
[0019]为进一步说明各实施例,本专利技术提供有附图。这些附图为本专利技术揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本专利技术的优点。
[0020]现结合附图和具体实施方式对本专利技术进一步说明。
[0021]实施例一:
[0022]本专利技术实施例提供了一种离散事件并行处理方法,如图1所示,所述方法的内容如下:
[0023]离散事件时间模型针对线程池中的每个线程均创建工作处理器,每个工作处理器按照各帧的时间戳对事件进行处理。
[0024]线程池需要在离散事件时间模型在首次运行时创建,线程池中包含的线程数可以根据当前计算机的CPU线程数确定。
[0025]每个线程可以用于处理一个或多个实体模型产生事件,不同线程对应处理的实体模型不同。
[0026]当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内。
[0027]本实施例中事件包括三种类型,分别为离散事件、周期事件和无序事件,离散事件又叫有序事件,即对其处理事件有要求,如离散事件为在3秒后转弯时,该离散事件需要在3秒后执行。无序事件即没有时间限定的事件,但这类事件往往优先级较高,需要优先执行,如无序事件为刹车时需要尽可能快的刹车,因此该类事件的优先级应排在离散事件和周期事件之前。周期事件即按照固定时间间隔执行的事件,如每2秒拍照一次。
[0028]由于无序事件应优先处理,因此本实施例中设定无序事件的最小处理时间为最小值,如0。
[0029]当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值,将计算的最小时间戳发送至时间驱动管理器。如有10个线程,则从10个事件队列提取得到10个事件,再计算这10个事件的时间戳中的最小值。
[0030]为了更好的确定线程是否均执行完毕,本实施例中还包括在离散事件时间模型中创建线程计数器,用于计算执行完毕的线程的数量,当数量等于线程池中包含的线程总数时,判定线程均执行完毕。
[0031]时间驱动管理器根据接收到的最小时间戳和时间步长计算下一帧时间戳,并发送至离散事件时间模型。
[0032]由于各帧的时间戳应为时间步长的倍数,因此计算下一帧时间戳时还需考虑时间步长。如时间补偿为0.1秒,如果最小时间戳为0.05秒,则计算的下一帧时间戳应为0.1秒。
[0033]离散事件时间模型将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,如果某个线程对应的事件队列中的最小时间戳小于或等于下一帧时间戳,则该线程在下一帧时间戳对应时刻处理事件队列中的最小时间戳对应的事件,并将该事件从事件队列内删除;否则,线程在下一帧时间戳对应时刻不进行处理。
[0034]本专利技术实施例针对目前多核CPU的主流计算机配置,采用并行离散事件仿真方式,能够充分发挥多个CPU计算性能,提高仿真的运行效率。
[0035]实施例二:
[0036]本专利技术还提供一种离散事件并行处理终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本专利技术实施例一的上述方法实施例中的步骤。
[0037]进一步地,作为一个可执行方案,所述离散事件并行处理终端设备可以是桌上型计算机、笔记本等计算设备。所述离散事件并行处理终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述离散事件并行处理终端设备的组成结构仅仅是离散事件并行处理终端设备的示例,并不构成对离散事件并行处理终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述离散事件并行处理终端设备还可以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种离散事件并行处理方法,其特征在于,包括:离散事件时间模型针对线程池中的每个线程均创建工作处理器,每个工作处理器按照各帧的时间戳对事件进行处理;当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内;当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值,将计算的最小时间戳发送至时间驱动管理器;时间驱动管理器根据接收到的最小时间戳和时间步长计算下一帧时间戳,并发送至离散事件时间模型;离散事件时间模型将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,如果某个线程对应的事件队列中的最小时间戳小于或等于下一帧时间戳,则该线程在下一帧时间戳对应时刻处理事件队列中的最小时间戳对应的事件,并将该事件从事件队列内删除;否则,线程在下一帧时间戳对应时刻不进...

【专利技术属性】
技术研发人员:黄勇鲍首熙谢思满洪万福
申请(专利权)人:厦门渊亭信息科技有限公司
类型:发明
国别省市:

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

1