CN115686789A - 一种离散事件并行处理方法、终端设备及存储介质 - Google Patents
一种离散事件并行处理方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN115686789A CN115686789A CN202211355068.2A CN202211355068A CN115686789A CN 115686789 A CN115686789 A CN 115686789A CN 202211355068 A CN202211355068 A CN 202211355068A CN 115686789 A CN115686789 A CN 115686789A
- Authority
- CN
- China
- Prior art keywords
- event
- thread
- time
- minimum
- discrete
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种离散事件并行处理方法、终端设备及存储介质,该方法中包括:当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内;当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值;根据最小时间戳和时间步长计算下一帧时间戳;将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,确定线程在下一帧时间戳对应时刻是否进行处理。本发明采用并行离散事件仿真方式,能够充分发挥多个CPU计算性能,提高仿真的运行效率。
Description
技术领域
本发明涉及离散事件处理领域,尤其涉及一种离散事件并行处理方法、终端设备及存储介质。
背景技术
现有的并行离散事件***中,主要存在如下问题:(1)目前并行离散事件仿真大多可通过多进程实现并行处理,但每个进程内部只能串行执行,难以充分挖掘应用的并行潜能;(2)在并行离散事件仿真运行过程中存在时间同步机制,如何高效收集、处理事件和时间同步控制,成为了仿真快速和并行运行的瓶颈之一;(3)在并行离散事件中,在保证并行高效处理的过程中,同时要解决离散事件的并行处理和执行顺序。
发明内容
为了解决上述问题,本发明提出了一种离散事件并行处理方法、终端设备及存储介质。
具体方案如下:
一种离散事件并行处理方法,包括以下步骤:
离散事件时间模型针对线程池中的每个线程均创建工作处理器,每个工作处理器按照各帧的时间戳对事件进行处理;
当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内;
当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值,将计算的最小时间戳发送至时间驱动管理器;
时间驱动管理器根据接收到的最小时间戳和时间步长计算下一帧时间戳,并发送至离散事件时间模型;
离散事件时间模型将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,如果某个线程对应的事件队列中的最小时间戳小于或等于下一帧时间戳,则该线程在下一帧时间戳对应时刻处理事件队列中的最小时间戳对应的事件,并将该事件从事件队列内删除;否则,线程在下一帧时间戳对应时刻不进行处理。
进一步的,事件的类型包括三种,分别为离散事件、周期事件和无序事件。
进一步的,设定无序事件的最小处理时间为最小值。
进一步的,线程池在离散事件时间模型在首次运行时创建,线程池中包含的线程数根据CPU线程数确定。
进一步的,离散事件时间模型中还包括线程计数器,用于计算执行完毕的线程的数量。
一种离散事件并行处理终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,采用并行离散事件仿真方式,能够充分发挥多个CPU计算性能,提高仿真的运行效率。
附图说明
图1所示为本发明实施例一的流程图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
本发明实施例提供了一种离散事件并行处理方法,如图1所示,所述方法的内容如下:
离散事件时间模型针对线程池中的每个线程均创建工作处理器,每个工作处理器按照各帧的时间戳对事件进行处理。
线程池需要在离散事件时间模型在首次运行时创建,线程池中包含的线程数可以根据当前计算机的CPU线程数确定。
每个线程可以用于处理一个或多个实体模型产生事件,不同线程对应处理的实体模型不同。
当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内。
本实施例中事件包括三种类型,分别为离散事件、周期事件和无序事件,离散事件又叫有序事件,即对其处理事件有要求,如离散事件为在3秒后转弯时,该离散事件需要在3秒后执行。无序事件即没有时间限定的事件,但这类事件往往优先级较高,需要优先执行,如无序事件为刹车时需要尽可能快的刹车,因此该类事件的优先级应排在离散事件和周期事件之前。周期事件即按照固定时间间隔执行的事件,如每2秒拍照一次。
由于无序事件应优先处理,因此本实施例中设定无序事件的最小处理时间为最小值,如0。
当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值,将计算的最小时间戳发送至时间驱动管理器。如有10个线程,则从10个事件队列提取得到10个事件,再计算这10个事件的时间戳中的最小值。
为了更好的确定线程是否均执行完毕,本实施例中还包括在离散事件时间模型中创建线程计数器,用于计算执行完毕的线程的数量,当数量等于线程池中包含的线程总数时,判定线程均执行完毕。
时间驱动管理器根据接收到的最小时间戳和时间步长计算下一帧时间戳,并发送至离散事件时间模型。
由于各帧的时间戳应为时间步长的倍数,因此计算下一帧时间戳时还需考虑时间步长。如时间补偿为0.1秒,如果最小时间戳为0.05秒,则计算的下一帧时间戳应为0.1秒。
离散事件时间模型将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,如果某个线程对应的事件队列中的最小时间戳小于或等于下一帧时间戳,则该线程在下一帧时间戳对应时刻处理事件队列中的最小时间戳对应的事件,并将该事件从事件队列内删除;否则,线程在下一帧时间戳对应时刻不进行处理。
本发明实施例针对目前多核CPU的主流计算机配置,采用并行离散事件仿真方式,能够充分发挥多个CPU计算性能,提高仿真的运行效率。
实施例二:
本发明还提供一种离散事件并行处理终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述离散事件并行处理终端设备可以是桌上型计算机、笔记本等计算设备。所述离散事件并行处理终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述离散事件并行处理终端设备的组成结构仅仅是离散事件并行处理终端设备的示例,并不构成对离散事件并行处理终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述离散事件并行处理终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述离散事件并行处理终端设备的控制中心,利用各种接口和线路连接整个离散事件并行处理终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述离散事件并行处理终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述离散事件并行处理终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (7)
1.一种离散事件并行处理方法,其特征在于,包括:
离散事件时间模型针对线程池中的每个线程均创建工作处理器,每个工作处理器按照各帧的时间戳对事件进行处理;
当线程处理过程中产生新的事件时,将新产生的事件按照最小处理时间的大小顺序存入线程对应的事件队列内,并将事件的最小处理时间作为事件的时间戳存储于事件队列内;
当线程池内所有线程均执行完毕后,从各线程的各事件队列中分别提取出排序时间戳最小的事件,并计算提取出的所有事件的时间戳的最小值,将计算的最小时间戳发送至时间驱动管理器;
时间驱动管理器根据接收到的最小时间戳和时间步长计算下一帧时间戳,并发送至离散事件时间模型;
离散事件时间模型将各线程对应的事件队列中的最小时间戳与下一帧时间戳进行大小比对,如果某个线程对应的事件队列中的最小时间戳小于或等于下一帧时间戳,则该线程在下一帧时间戳对应时刻处理事件队列中的最小时间戳对应的事件,并将该事件从事件队列内删除;否则,线程在下一帧时间戳对应时刻不进行处理。
2.根据权利要求1所述的离散事件并行处理方法,其特征在于:事件的类型包括三种,分别为离散事件、周期事件和无序事件。
3.根据权利要求2所述的离散事件并行处理方法,其特征在于:设定无序事件的最小处理时间为最小值。
4.根据权利要求1所述的离散事件并行处理方法,其特征在于:线程池在离散事件时间模型在首次运行时创建,线程池中包含的线程数根据CPU线程数确定。
5.根据权利要求1所述的离散事件并行处理方法,其特征在于:离散事件时间模型中还包括线程计数器,用于计算执行完毕的线程的数量。
6.一种离散事件并行处理终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~5中任一所述方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1~5中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211355068.2A CN115686789A (zh) | 2022-11-01 | 2022-11-01 | 一种离散事件并行处理方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211355068.2A CN115686789A (zh) | 2022-11-01 | 2022-11-01 | 一种离散事件并行处理方法、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686789A true CN115686789A (zh) | 2023-02-03 |
Family
ID=85049016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211355068.2A Pending CN115686789A (zh) | 2022-11-01 | 2022-11-01 | 一种离散事件并行处理方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115686789A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827170A (zh) * | 2023-02-16 | 2023-03-21 | 之江实验室 | 基于离散事件的计算机体系结构的并行仿真方法及装置 |
-
2022
- 2022-11-01 CN CN202211355068.2A patent/CN115686789A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827170A (zh) * | 2023-02-16 | 2023-03-21 | 之江实验室 | 基于离散事件的计算机体系结构的并行仿真方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9720740B2 (en) | Resource management in MapReduce architecture and architectural system | |
US8732720B2 (en) | Job scheduling based on map stage and reduce stage duration | |
CN103370691B (zh) | 管理缓冲器溢出状况 | |
US9183242B1 (en) | Analyzing frequently occurring data items | |
US20160132359A1 (en) | Abnormality detection apparatus, control method, and program | |
US11822454B2 (en) | Mitigating slow instances in large-scale streaming pipelines | |
CN108228344B (zh) | 多进程内存处理方法及装置、计算机装置及可读存储介质 | |
EP3238102A1 (en) | Techniques to generate a graph model for cloud infrastructure elements | |
US20120089724A1 (en) | Diagnosis of application server performance problems via thread level pattern analysis | |
CN109918190A (zh) | 一种数据采集方法及相关设备 | |
WO2021051589A1 (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN112231098A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN115686789A (zh) | 一种离散事件并行处理方法、终端设备及存储介质 | |
CN115150471A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN114125015A (zh) | 一种数据采集方法及*** | |
WO2024119930A1 (zh) | 调度方法、装置、计算机设备和存储介质 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN112764935B (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
JP6064756B2 (ja) | 性能データ収集プログラム、装置、及び方法 | |
CN115016890A (zh) | 虚拟机资源分配方法、装置、电子设备及存储介质 | |
CN115904644A (zh) | 任务调度方法、电子设备和计算机程序产品 | |
WO2020140623A1 (zh) | 电子装置、元数据处理方法和计算机可读存储介质 | |
JP7119484B2 (ja) | 情報集約装置、情報集約方法、及び、プログラム | |
CN111475295A (zh) | 软硬件分层管理方法、装置及计算机可读存储介质 | |
CN112269723A (zh) | 存储设备的性能分析方法、装置及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |