CN115186518A - 一种仿真并行推进方法、服务器以及存储介质 - Google Patents
一种仿真并行推进方法、服务器以及存储介质 Download PDFInfo
- Publication number
- CN115186518A CN115186518A CN202211098470.7A CN202211098470A CN115186518A CN 115186518 A CN115186518 A CN 115186518A CN 202211098470 A CN202211098470 A CN 202211098470A CN 115186518 A CN115186518 A CN 115186518A
- Authority
- CN
- China
- Prior art keywords
- event
- simulation
- current
- entity
- time
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种仿真并行推进方法、服务器以及存储介质,属于仿真技术领域,该方法包括:将参与仿真的所有仿真实体进行分组,为每组仿真实体创建一个物理进程,在每个物理进程中均建立一个事件队列;当仿真实体产生新事件时,通过对应的物理进程将新事件放入对应的事件队列的队尾,并为新事件添加时间戳,时间戳用于指示事件的执行时间;所有物理进程均按照同一时间推进机制进行推进,依次调度事件队列中的事件进行可运行判断,当判断通过时则执行该事件并更新与该事件有关的仿真实体的状态,否则将该事件排列至事件队列的队尾;当运行至预设结束时间或接收到结束指令时终止仿真过程。本发明能够使仿真系统计算效能显著提升。
Description
技术领域
本申请属于仿真技术领域,特别涉及一种仿真并行推进方法、服务器以及存储介质。
背景技术
随着信息技术在军事领域方面的迅猛发展和快速应用,推动了武器装备的进步、战争理论的发展、军事行动的演变和战争形态的变革。仿真技术作为以计算机和专用设备为工具,建立并利用系统模型对实际或设想的系统进行动态实验研究的综合应用技术,在模拟仿真训练、军事演习决策、推演实验、指挥控制、作战分析等多个军事领域发挥着日益重要的作用。
为了研究军事系统内在规律,特别是军事规律的自底向上的“涌现性”过程,必须实现更高精度和更大规模的军事仿真,需要构建高效实时的仿真引擎。仿真引擎系统的调度问题是一个由多因素组成的决策问题,与实时调度相关的研究包括时间推进机制、运行支撑环境、模型应用改进等多方面,其中起决定作用的是时间推进机制。
时间推进机制是指仿真模拟过程中推动模拟时钟时间变动的机制,一般有固定步长推进和事件驱动推进两种方式。前者定期计算系统中模型的状态并予以更新,实现简单但存在大量计算空转,推进效率较低;后者多用于离散事件系统模拟,通过执行事件完成系统状态更替,避免计算空转,能够提高仿真引擎工作灵活性,但需要保证事件的因果关系。
考虑到对实际应用场景的贴合,现有作战仿真系统的时间推进机制多采用事件驱动和单进程处理方式,即:通过维护一个事件队列实现事件调度,提供事件的执行时间戳,按照时间戳顺序对事件进行排序,仿真引擎按顺序调取事件队列中的所有事件,进而实现仿真推进。这种时间推进机制严格按照事件的时间戳顺序,是保守时间推进机制。然而这种时间推进机制依然存在着明显的问题:一方面,这种单进程处理方式只能利用一个内核,导致多CPU多核计算机的处理能力不能够被充分利用,造成了硬件资源的浪费;另一方面,事件的单线程调度意味着事件只能被串行计算处理,随着仿真规模即作战场景规模的增大,尤其是多兵种联合作战场景下,这种时间推进机制大大增加了仿真运行时间的开销,时延等问题也愈发明显。
因此,需要一种新型的仿真引擎的推进方法,能够解决上述问题。
发明内容
为了解决仿真引擎在多实体仿真,尤其是作战模拟场景中的应用问题,针对单进程处理方式的低效率问题,设计了一种基于事件驱动的仿真并行推进方法,能够优化作战仿真引擎的调度策略。该方法中,每个物理进程被建模成一个离散事件队列,物理进程的交互作用被建模成在相应离散事件队列间的带时间戳的消息交互,从而将复杂的仿真计算分解成多个进程,实现仿真进程的并行运行处理,充分利用硬件资源并减少仿真计算时间的开销,进而实现时间推进效率乃至仿真系统计算效能的显著提升。
本申请所要达到的技术效果通过以下方案实现:
根据本发明的第一方面,提供了一种仿真并行推进方法,包括如下步骤:
步骤一:将参与仿真的所有仿真实体进行分组,为每组仿真实体创建一个物理进程,在每个物理进程中均建立一个事件队列;
步骤二:当仿真实体产生新事件时,通过对应的物理进程将新事件放入对应的事件队列的队尾,并为新事件添加时间戳,其中时间戳用于指示事件的执行时间;
步骤三:所有物理进程均按照同一时间推进机制进行推进,依次调度事件队列中的事件进行可运行判断,当判断通过时则执行该事件并更新与该事件有关的仿真实体的状态,否则将该事件排列至事件队列的队尾;
步骤四:当运行至预设结束时间或接收到结束指令时终止仿真过程。
优选地,在步骤三中,所有物理进程均按照同一时间推进机制进行推进具体为:
将整个仿真过程划分为若干等长的时间单元;
在同一时间单元内,所有物理进程并行推进;
在每个时间单元结束时,各个物理进程之间进行状态同步。
优选地,在步骤三中,依次调度事件队列中的事件进行可运行判断具体为:
依次调度事件队列中的事件,判断该事件的时间戳是否在当前的时间单元内;
若时间戳位于当前时间单元内则判断通过;否则判断不通过。
优选地,将新事件放入对应的事件队列的队尾时,还为新事件添加第一标记,第一标记表示该事件是由归属于本物理进程的仿真实体所产生的事件。
优选地,在步骤三中还包括:
在执行一事件时,若当前事件涉及另一物理进程中的一仿真实体,则将该事件及其时间戳发送至所述另一物理进程,以使所述另一物理进程将该事件及其时间戳放入事件队列的队尾并添加第二标记,其中,第二标记表示该事件是由归属于其它物理进程的仿真实体所产生的事件。
优选地,该方法还包括:为每个仿真实体创建对应的状态存储空间,用于按照时间的先后顺序保存仿真实体在时间单元内的不同时刻的状态值。
优选地,在步骤三中还包括:
当前物理进程在执行一事件的过程中,判断当前事件与已执行的其他事件是否存在因果乱序;
若是则判断当前事件是否具有第一标记;
若当前事件具有第一标记,则当前物理进程针对当前事件所涉及的当前仿真实体,读取该仿真实体在当前事件的时间戳的前一时刻的状态值,将该仿真实体的状态回退到读取到的状态值,回退完成后重新开始执行当前事件,并在当前事件执行完毕后再执行所述其他事件。
优选地,在判断当前事件是否具有第一标记之后,还包括:
判断当前事件是否具有第二标记;
若当前事件具有第二标记,且当前事件还涉及其他物理进程的另一仿真实体,则当前物理进程读取当前仿真实体在当前时间单元开始时刻的状态值,将当前仿真实体的状态回退到读取到的状态值,向所述其他物理进程发送通知消息,所述通知消息用于通知所述其他物理进程将所述另一仿真实体的状态回退到当前时间单元开始时刻的状态值;
所述当前物理进程在回退完成后重新开始执行所述当前事件,并在当前事件执行完毕后执行所述其他事件。
根据本发明的第二方面,提供了一种服务器,包括:至少一个处理器和存储器;
所述存储器存储计算机程序,所述至少一个处理器执行所述存储器存储的计算机程序,以实现上述任一项所述的仿真并行推进方法。
根据本发明的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述任一项所述的仿真并行推进方法。
根据本发明的一个实施例,本发明的一个有益效果在于:本发明的仿真并行推进方法,能够将复杂的仿真计算分解成多个进程,实现仿真进程的并行运行处理,充分利用计算机的硬件资源并减少仿真计算时间的开销,进而实现时间推进效率乃至仿真系统计算效能的显著提升。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中一种仿真并行推进方法的流程图;
图2为本申请一实施例中的仿真并行推进方法的时序图;
图3为本申请一实施例中的时间推进和事件管理的逻辑结构示意图;
图4为本申请一实施例中的事件状态变量表示及回退方式示意图;
图5为本申请一实施例中的仿真中状态向量循环更新与记录保存方法示意图;
图6为本申请一实施例中一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示的仿真并行推进方法,包括如下步骤:
S110:将参与仿真的所有仿真实体进行分组,为每组仿真实体创建一个物理进程,在每个物理进程中均建立一个事件队列;
在该步骤中,军事模拟仿真会涉及到很多飞机、舰船、各种武器装备等,每个飞机、舰船、武器装备就是一个仿真实体,先对所有仿真实体进行分组,每个实体分组中包含多个仿真实体,实体分组(包含多个仿真实体)、物理进程、事件队列是一一对应关系,事件队列用于存放对应分组内的仿真实体产生的事件。
仿真引擎进行仿真计算过程中,可以计算出各个事件的执行时间,并根据执行时间为每个事件添加时间戳。
S120:当仿真实体产生新事件时,通过对应的物理进程将所述新事件放入对应的事件队列的队尾,并为所述新事件添加时间戳,其中时间戳用于指示事件的执行时间;
在该步骤中,物理进程接收新事件时为该新事件添加时间戳以及第一标记,其中时间戳用于指示事件的执行时间;第一标记表示该事件是由归属于本物理进程的仿真实体所产生的事件。
例如,某一舰船仿真实体CH1产生新事件:舰船仿真实体CH1攻击另一舰船仿真实体CH2,就会计算该事件的执行时间(即攻击执行时间),舰船仿真实体CH1和舰船仿真实体CH2都与该事件有关。舰船仿真实体CH1对应的物理进程JC-1接收该新事件并放入对应的事件队列的队尾,为该新事件添加时间戳以及第一标记。
S130:所有物理进程均按照同一时间推进机制进行推进,依次调度事件队列中的事件进行可运行判断,当判断通过时则执行该事件并更新与该事件有关的仿真实体的状态,否则将该事件排列至事件队列的队尾;
在该步骤中,所有物理进程均按照同一时间推进机制进行推进具体为:仿真引擎设置一个系统全局的时间推进管理器,时间推进管理器负责整个仿真过程的时间管理,具体的,将整个仿真过程按照时间单元Δt进行划分,在每个时间单元Δt上进行所有物理进程的时间推进,使整个仿真过程分为多个连续的时间段:T~T+Δt,T+Δt~T+2Δt,T+2Δt~T+3Δt,……,T为仿真开始的时刻,每个时间段的时长均为Δt。
仿真开始时,时间推进管理器调用时间推进的接口,做初始化时间推进;仿真引擎并发运行所有的物理进程,通过物理进程调度事件队列中的事件并执行。为了保证系统整体的时间同步,需要多个物理进程之间完成状态同步,因此在每个时间单元结束时,各个物理进程之间进行状态同步。
在该步骤中,依次调度事件队列中的事件进行可运行判断具体为:在一个时间单元内,按照事件队列中的事件排序依次调度各个事件,当调度到某一事件时,先判断该事件的时间戳(即执行时间)是否在当前时间单元内,若在当前时间单元内,则立即执行该事件,并更新与该事件有关的仿真实体的状态;若不在当前时间单元内,则暂不处理该事件,将该事件插入到该事件队列的队尾,等到该事件时间戳所在时间单元开始后再调度并执行该事件。
在该步骤中,物理进程之间的交互作用被建模成在相应离散事件队列间的带时间戳的消息交互。信息交互过程发生在调度事件队列中的事件时,判断当前事件是否还涉及另一物理进程中的一仿真实体,若是则将该事件及其时间戳发送至所述另一物理进程,以使所述另一物理进程将该事件及其时间戳放入事件队列的队尾并添加第二标记,其中,第二标记表示该事件是由归属于其它物理进程的仿真实体所产生的事件。
具体为:当物理进程JC-1在执行某一事件时,例如,由舰船仿真实体CH1产生的事件:舰船仿真实体CH1攻击另一舰船仿真实体CH2,若确定该事件涉及归属于物理进程JC-2的舰船仿真实体CH2,则将携带有该事件及其时间戳的消息发送给物理进程JC-2,物理进程JC-2将该事件及其时间戳放入对应的事件队列的队尾,并添加第二标记。
在该步骤中,在每个时间单元内,由于事件队列中的事件并未按照时间戳顺序依序执行,必然存在“因果乱序”的情况,即当前要执行的事件与之前已经执行的事件违反因果关系。例如:事件SJ1受到事件SJ2的约束,但事件SJ1调度执行后事件SJ2才调度执行,使得事件SJ1未能合理地得到事件SJ2的执行结果,进而影响了整个仿真系统的状态变化。因此,采用一种乐观时间推进策略对事件的因果性进行管理,判断当前执行的事件与已执行的事件是否存在因果乱序,对状态出现异常的情况进行回退处理,将状态退回到之前正常状态的时刻。
为了适应出现状态异常时的回退处理,状态量采用状态向量机制。为每个仿真实体设置对应的状态存储空间(即状态缓冲区),用于保存该仿真实体在时间单元内的不同时刻的状态值。在系统中,为每个仿真实体的状态变量S提供对应的状态存储空间,将同一时间单元内的时间离散化,将该时间单元内不同时刻的状态值按照时间顺序存储在状态存储空间中。通过将状态演变过程保存在状态存储空间中,需要进行回退处理时,可以在一定范围将当前状态存储空间读写指针移动到之前正常状态值的状态存储空间并继续执行。
同一物理进程中的事件冲突造成因果乱序时的回退处理步骤为:在执行某一事件SJA的过程中,物理进程判断事件SJA与之前已执行的某一事件SJB是否存在冲突造成因果乱序;若是,则在确定事件SJA具有第一标记后,针对事件SJA所涉及的仿真实体,从该仿真实体对应的存储空间中读取事件SJA的时间戳的前一时刻的状态值,将该仿真实体的状态回退到该状态值,并重新开始执行事件SJA,事件SJA执行完毕后再执行事件SJB。
在多进程状态同步时也会出现“因果乱序”的情况,需要进行多个进程的回退处理,退回到当前时间单元的开始时刻。
多个物理进程间状态同步造成因果乱序时的回退处理步骤为:在执行某一事件SJC的过程中,物理进程J1判断事件SJC与之前已执行的某一事件SJD是否存在冲突造成因果乱序;若是,则在确定事件SJC具有第二标记后,针对事件SJC涉及的归属于本物理进程的仿真实体ST1,从仿真实体ST1对应的存储空间中读取当前时间单元开始时刻的状态值,将仿真实体ST1的状态回退到该状态值;由于事件SJC还涉及其他物理进程J2的仿真实体ST2,例如,事件SJC是由仿真实体ST2产生的,则物理进程J1向物理进程J2发送通知消息,该通知消息用于通知物理进程J2将仿真实体ST2的状态回退到当前时间单元开始时刻的状态值;物理进程J1重新开始执行事件SJC,并在事件SJC执行完毕后执行事件SJD。
物理进程J2在接收到物理进程J1的通知消息后,从仿真实体ST2对应的存储空间中读取当前时间单元开始时刻的状态值,将仿真实体ST2的状态回退到该状态值。
S130:当运行至预设结束时间或接收到结束指令时终止仿真过程。
在一个具体的实施例中,如图2的仿真并行推进方法的时序图所示,通过示例性介绍了时间推进的步骤,及仿真实体、多进程事件管理和系统时间推进之间的关系。其中,仿真实体产生新事件,将自己产生的新事件通过物理进程提交到对应的事件队列中;物理进程负责对该事件队列的事件进行插入、执行、移除、排序等处理。这样,在一次仿真运行过程中,通过多进程的并发运行,实现仿真离散事件的并行运行。
在一个具体的实施例中,如图3的时间推进和事件管理的逻辑结构图,通过示例介绍了有限的乐观时间推进策略的逻辑原理。仿真开始的时刻为T,仿真引擎在合适的时间单元Δt内实行乐观时间推进策略。其中进程1(即物理进程)负责实体1、实体2和实体3三个仿真实体。可以看到,随着事件1、事件2、事件4、事件3的先后执行,实体1、实体2和实体3三个仿真实体的状态不断发生变化,并且事件4和事件3的时间戳倒序并没有使得实体1、实体2和实体3的状态发生因果错乱,因此在事件3执行完成后,进程1就发出时间推进的请求,请求推进整个系统时间。
而进程2负责实体4、实体5和实体6三个仿真实体,随着事件1、事件2、事件4的先后执行,实体1、实体2和实体3三个仿真实体的状态不断发生变化。然而在执行事件3的过程中,判断出事件3的执行结果会影响之前已执行的事件4,并且事件3的时间戳早于事件4发生,即发生了事件的因果性错乱异常。此时进程2进行了回退操作,退回到事件3的时间戳的前一时刻的正常状态,再按因果顺序执行事件3。进程2事件执行结束后,请求执行时间推进。此时仿真引擎从全局进行仿真时间更新,完成系统整体的状态同步。
在一个具体的实施例中,如图4所示,展示了事件状态变量表示及回退方式。由于乐观时间推进策略存在回退的风险,为了适应乐观推进策略出现异常时进行状态回卷,为每个仿真实体提供对应的状态存储空间(包含N个存储单元)。同一时间单元内的仿真进程按照t 0, t 1, t 2, ..., t N-1时刻不停推进时,可以将这些时刻的状态值S 0, S 1, S 2, ...,S N-1(体现了状态演变过程)保存在N个存储单元中。这种情况下,如果发生事件因果乱序需要回退,仿真引擎可以直接从存储空间中获取异常发生前的状态值,即在一定范围将当前读取指针移动即可。
在一个具体的实施例中,如图5所示,显示了仿真中状态向量循环更新与记录保存方法,由于乐观时间推进策略存在回退的风险,而且状态向量需要耗费较大的存储空间,在不同迭代过程中仍然面临保存与更新问题。为了实现高效存取,拟采取批量序列化方式。即当状态向量的填充率达到预设填充率阈值时,批量将“老旧”的状态值转存到外部存储空间中。具体的,当时,将时间戳小于当前全局虚拟时间(GVT)的状态值转存到外部存储空间,其中,X表示N个存储单元中已填充的存储单元总数,p表示预设填充率阈值,例如p=75%,GVT可以预设,GVT小于Δt。
如图6所示,本发明一实施例的一种服务器,包括:至少一个处理器602和存储器601;在存储器601存储计算机程序,处理器602执行存储器601存储的计算机程序,以实现上述任一项所述的仿真并行推进方法。
本发明一实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述任一项所述的仿真并行推进方法。
根据本发明的一个实施例,本发明提出一种基于事件驱动的仿真并行推进方法,在该方法中仿真过程被建模成以某种方式相互作用的多个物理进程,一个物理进程被建模成一个离散事件队列,进而将复杂的仿真计算分解成多个进程,实现仿真进程的并行运行处理。通过有限度的乐观时间推进策略实现系统整体的事件调度,即将仿真时间推进划分成一个个时间单元,允许所有进程在这个时间单元内执行乐观时间推进策略,而在整个时间推进过程中按照时间单元推进。充分利用计算机的硬件资源,提高仿真引擎工作灵活性和工作效率。
应该指出,上述详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语均具有与本申请所属技术领域的普通技术人员的通常理解所相同的含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本申请的实施方式能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位,如旋转90度或处于其他方位,并且对这里所使用的空间相对描述作出相应解释。
在上面详细的说明中,参考了附图,附图形成本文的一部分。在附图中,类似的符号典型地确定类似的部件,除非上下文以其他方式指明。在详细的说明书、附图及权利要求书中所描述的图示说明的实施方案不意味是限制性的。在不脱离本文所呈现的主题的精神或范围下,其他实施方案可以被使用,并且可以作其他改变。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种仿真并行推进方法,其特征在于,包括如下步骤:
步骤一:将参与仿真的所有仿真实体进行分组,为每组仿真实体创建一个物理进程,在每个物理进程中均建立一个事件队列;
步骤二:当仿真实体产生新事件时,通过对应的物理进程将所述新事件放入对应的事件队列的队尾,并为所述新事件添加时间戳,其中时间戳用于指示事件的执行时间;
步骤三:所有物理进程均按照同一时间推进机制进行推进,依次调度事件队列中的事件进行可运行判断,当判断通过时则执行该事件并更新与该事件有关的仿真实体的状态,否则将该事件排列至事件队列的队尾;
步骤四:当运行至预设结束时间或接收到结束指令时终止仿真过程。
2.根据权利要求1所述的仿真并行推进方法,其特征在于,在步骤三中,所有物理进程均按照同一时间推进机制进行推进具体为:
将整个仿真过程划分为若干等长的时间单元;
在同一时间单元内,所有物理进程并行推进;
在每个时间单元结束时,各个物理进程之间进行状态同步。
3.根据权利要求2所述的仿真并行推进方法,其特征在于,在步骤三中,依次调度事件队列中的事件进行可运行判断具体为:
依次调度事件队列中的事件,判断该事件的时间戳是否在当前的时间单元内;
若时间戳位于当前时间单元内则判断通过;否则判断不通过。
4.根据权利要求1所述的仿真并行推进方法,其特征在于,将所述新事件放入对应的事件队列的队尾时,还为所述新事件添加第一标记,第一标记表示该事件是由归属于本物理进程的仿真实体所产生的事件。
5.根据权利要求1所述的仿真并行推进方法,其特征在于,在步骤三中还包括:
在执行一事件时,若当前事件涉及另一物理进程中的一仿真实体,则将该事件及其时间戳发送至所述另一物理进程,以使所述另一物理进程将该事件及其时间戳放入事件队列的队尾并添加第二标记,其中,第二标记表示该事件是由归属于其它物理进程的仿真实体所产生的事件。
6.根据权利要求5所述的仿真并行推进方法,其特征在于,还包括:
为每个仿真实体创建对应的状态存储空间,用于按照时间的先后顺序保存仿真实体在时间单元内的不同时刻的状态值。
7.根据权利要求5所述的仿真并行推进方法,其特征在于,在步骤三中还包括:
当前物理进程在执行一事件的过程中,判断当前事件与已执行的其他事件是否存在因果乱序;
若是则判断当前事件是否具有第一标记;
若当前事件具有第一标记,则当前物理进程针对当前事件所涉及的当前仿真实体,读取该仿真实体在当前事件的时间戳的前一时刻的状态值,将该仿真实体的状态回退到读取到的状态值,回退完成后重新开始执行当前事件,并在当前事件执行完毕后再执行所述其他事件。
8.根据权利要求7所述的仿真并行推进方法,其特征在于,在判断当前事件是否具有第一标记之后,还包括:
判断当前事件是否具有第二标记;
若当前事件具有第二标记,且当前事件还涉及其他物理进程的另一仿真实体,则当前物理进程读取当前仿真实体在当前时间单元开始时刻的状态值,将当前仿真实体的状态回退到读取到的状态值,向所述其他物理进程发送通知消息,所述通知消息用于通知所述其他物理进程将所述另一仿真实体的状态回退到当前时间单元开始时刻的状态值;
所述当前物理进程在回退完成后重新开始执行所述当前事件,并在当前事件执行完毕后执行所述其他事件。
9.一种服务器,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序,所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1至8中任一项所述的仿真并行推进方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1至8中任一项所述的仿真并行推进方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211098470.7A CN115186518B (zh) | 2022-09-09 | 2022-09-09 | 一种仿真并行推进方法、服务器以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211098470.7A CN115186518B (zh) | 2022-09-09 | 2022-09-09 | 一种仿真并行推进方法、服务器以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115186518A true CN115186518A (zh) | 2022-10-14 |
CN115186518B CN115186518B (zh) | 2022-12-16 |
Family
ID=83523000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211098470.7A Active CN115186518B (zh) | 2022-09-09 | 2022-09-09 | 一种仿真并行推进方法、服务器以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115186518B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108757A (zh) * | 2023-04-04 | 2023-05-12 | 中国电子科技集团公司第十五研究所 | 试训环境中多级仿真时间推进方法、服务器及存储介质 |
CN116562054A (zh) * | 2023-07-06 | 2023-08-08 | 西安羚控电子科技有限公司 | 一种多实体协同实时仿真系统的构建方法及装置 |
CN117234697A (zh) * | 2023-11-16 | 2023-12-15 | 中国人民解放军国防科技大学 | 一种保守时间同步并行事件调度计算架构和方法 |
CN117909036A (zh) * | 2023-12-06 | 2024-04-19 | 中国科学院软件研究所 | 一种面向复杂信息系统的高效离散事件仿真引擎构建方法和装置 |
CN117971470A (zh) * | 2024-01-22 | 2024-05-03 | 山东华科信息技术有限公司 | 一种新型配网运行工况云仿真系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008034499A1 (en) * | 2006-09-21 | 2008-03-27 | Kompetenzzentrum - Das Virtuelle Fahrzeug Forschungsgesellschaft Mbh | A device for and a method of performing a coupled simulation of a physical structure described by several separate models |
CN102087678A (zh) * | 2011-01-07 | 2011-06-08 | 清华大学 | 通过时域划分实现并行计算的电路仿真方法 |
CN104866374A (zh) * | 2015-05-22 | 2015-08-26 | 北京华如科技股份有限公司 | 基于多任务的离散事件并行仿真及时间同步方法 |
-
2022
- 2022-09-09 CN CN202211098470.7A patent/CN115186518B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008034499A1 (en) * | 2006-09-21 | 2008-03-27 | Kompetenzzentrum - Das Virtuelle Fahrzeug Forschungsgesellschaft Mbh | A device for and a method of performing a coupled simulation of a physical structure described by several separate models |
CN102087678A (zh) * | 2011-01-07 | 2011-06-08 | 清华大学 | 通过时域划分实现并行计算的电路仿真方法 |
CN104866374A (zh) * | 2015-05-22 | 2015-08-26 | 北京华如科技股份有限公司 | 基于多任务的离散事件并行仿真及时间同步方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108757A (zh) * | 2023-04-04 | 2023-05-12 | 中国电子科技集团公司第十五研究所 | 试训环境中多级仿真时间推进方法、服务器及存储介质 |
CN116562054A (zh) * | 2023-07-06 | 2023-08-08 | 西安羚控电子科技有限公司 | 一种多实体协同实时仿真系统的构建方法及装置 |
CN116562054B (zh) * | 2023-07-06 | 2023-10-13 | 西安羚控电子科技有限公司 | 一种多实体协同实时仿真系统的构建方法及装置 |
CN117234697A (zh) * | 2023-11-16 | 2023-12-15 | 中国人民解放军国防科技大学 | 一种保守时间同步并行事件调度计算架构和方法 |
CN117234697B (zh) * | 2023-11-16 | 2024-02-06 | 中国人民解放军国防科技大学 | 一种保守时间同步并行事件调度计算架构和方法 |
CN117909036A (zh) * | 2023-12-06 | 2024-04-19 | 中国科学院软件研究所 | 一种面向复杂信息系统的高效离散事件仿真引擎构建方法和装置 |
CN117971470A (zh) * | 2024-01-22 | 2024-05-03 | 山东华科信息技术有限公司 | 一种新型配网运行工况云仿真系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115186518B (zh) | 2022-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115186518B (zh) | 一种仿真并行推进方法、服务器以及存储介质 | |
Levin et al. | DP-FAIR: A simple model for understanding optimal multiprocessor scheduling | |
EP3690648B1 (en) | Resource scheduling method, scheduling server, cloud computing system and storage medium | |
CN107025205B (zh) | 一种分布式系统中的训练模型的方法及设备 | |
Zheng | Improving MapReduce fault tolerance in the cloud | |
Lelli et al. | An experimental comparison of different real-time schedulers on multicore systems | |
Rodrigo et al. | Enabling workflow-aware scheduling on hpc systems | |
CN104011680A (zh) | 在物理处理单元中调度虚拟机的虚拟中央处理单元 | |
EP3103014B1 (en) | Removal of idle time in virtual machine operation | |
CN103544102A (zh) | 一种软件性能测试模拟方法及装置 | |
CN111124254A (zh) | 调度存储空间回收请求的方法、电子设备和程序产品 | |
CN106250217A (zh) | 一种多虚拟处理器间的同步调度方法及其调度系统 | |
CN111400895B (zh) | 多层次多粒度跨域联合仿真事件调度方法和系统 | |
CN109783239B (zh) | SystemC仿真调度核的多线程优化方法、系统及介质 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
Carnevali et al. | A formal approach to design and verification of two-level hierarchical scheduling systems | |
Pathan | Unifying fixed-and dynamic-priority scheduling based on priority promotion and an improved ready queue management technique | |
CN109800166B (zh) | 一种嵌入式实时操作系统的调试方法及装置 | |
JP2000259605A (ja) | シミュレーション装置 | |
Wong et al. | System utilization benchmark on the cray t3e and ibm sp | |
CN108268310B (zh) | 一种确定最小调度粒度的方法及装置 | |
CN112231087A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN113407305A (zh) | 一种任务部署方法、装置、电子设备及存储介质 | |
CN108009074B (zh) | 一种基于模型和动态分析的多核系统实时性评估方法 | |
Phan | Energy-efficient straggler mitigation for big data applications on the clouds |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |