CN107315889B - 仿真引擎的性能测试方法及存储介质 - Google Patents

仿真引擎的性能测试方法及存储介质 Download PDF

Info

Publication number
CN107315889B
CN107315889B CN201710564845.7A CN201710564845A CN107315889B CN 107315889 B CN107315889 B CN 107315889B CN 201710564845 A CN201710564845 A CN 201710564845A CN 107315889 B CN107315889 B CN 107315889B
Authority
CN
China
Prior art keywords
event
simulation
time
performance
events
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.)
Active
Application number
CN201710564845.7A
Other languages
English (en)
Other versions
CN107315889A (zh
Inventor
闫飞
张柯
高鹏蕊
孟龙龙
刘涛
郑元庆
杨永武
陆响
温厘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING HUARU TECHNOLOGY CO LTD
Original Assignee
BEIJING HUARU TECHNOLOGY CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING HUARU TECHNOLOGY CO LTD filed Critical BEIJING HUARU TECHNOLOGY CO LTD
Priority to CN201710564845.7A priority Critical patent/CN107315889B/zh
Publication of CN107315889A publication Critical patent/CN107315889A/zh
Application granted granted Critical
Publication of CN107315889B publication Critical patent/CN107315889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种仿真引擎的性能测试方法及存储介质,用于并行离散事件的仿真,该方法包括:建立并生成仿真模型,并使用管理应用所需的信息配置所述仿真模型;使用同步事件调度性能、随机事件调度性能、事件队列管理性能、和时间推进效率对仿真模型进行测试;分别根据所选定的性能指标,准备仿真事件队列;根据所选定的性能指标,启动仿真并开始测试,直至处理完成或者计时完成。本发明可以在并行与串行之间兼容和切换;参与性能测试的模型逻辑复杂度极低,排除仿真模型性能对于引擎性能测试的影响;测试指标主要针对仿真引擎事件调度的时间协调,能代表引擎的基础性能,具备客观性;指标的测试方法可在不同仿真引擎上实现,具备可实施性。

Description

仿真引擎的性能测试方法及存储介质
技术领域
本发明涉及一种仿真计算领域,更具体地说,涉及并行离散事件(PDES,ParallelDiscrete Event Simulation)仿真引擎的性能测试方法及存储介质。
背景技术
基于数字计算机的离散事件仿真广泛应用于军事、装备、社会等领域,如何提高仿真运行效率是业界所广泛关注的技术问题,随着计算机软硬件技术的不断发展,软硬件并行能力的不断提升,要求离散事件仿真的并行化以提高效率,但如何衡量仿真引擎的效率,从而比较不同实现方式的优劣,指导技术发展方向,是本领域迫切的需求,但一直未得到有效解决,其原因主要在于:
1、性能的模型无关性:通常仿真的性能包括了引擎的性能和模型运算的性能,测量引擎的性能必须以某种方式的仿真运行为手段,因此必须排除模型性能的影响,即必须要设计足够简单,在不同引擎上都能实现且能够支持引擎性能测量的通用模型;
2、性能指标的客观性:不同的仿真引擎采用了不同的实现方法,包括在并行化上也有不同的实现手段,比较其性能就要剔除由于引擎设计不同而造成的个性化指标,而是筛选和定义所有引擎都必须具备的指标,并且能够代表引擎设计的基础性能;
3、性能指标的可实施性:与硬件和标准软件的benchmark不同,由于不同引擎的软件设计使得不可能有统一的测试工具,甚至统一的一套源代码也非常困难,因此测试方法必须具有在不同引擎上的可实现性,甚至具有不可作弊和不可抵赖的特点。
在并行离散事件(PDES,Parallel Discrete Event Simulation)计算领域,研究者们针对并行性能的度量和测量方法做了很多努力,并行系统的加速比定义为:对于一个给定的应用,并行算法或并行程序的执行速度相对于串行算法或串行程序的执行速度加快了多少倍。引申到离散事件仿真中,并行和串行的离散事件仿真的加速比可以类似定义,而对于引擎,则应消除算法和模型复杂度的差异。
并行加速比存在三种定律:Amdahl定律,Gustafson定律,Sun和Ni定律。Amdahl定律应用于实时性要求较高的科学计算,针对固定不变的计算负载,通过增加处理器和提高处理器速度进行加速,受限于问题的可分解并行程度,加速比随处理器增加存在一个上限。Gustafson针对计算时间固定但计算精度随计算量正相关的情况,通过增加处理器在不变的时间内加大计算量从而提高精度。Sun和Ni定律是上述两者的综合。
通用测试模型PHOLD是广泛使用的仿真引擎测试模型,是对对称负载的基准测试模型,该模型假设具有N个并行执行,平均分配到M个处理器上,在仿真初始化时,每个LP(逻辑并行过程)有R个初始事件,按均匀分布从N个LP中随机选择一个发送目标,在仿真过程中,每收到一个事件,就再产生K个新的事件并向随机选择的目标发送,考察系统整体时间推进的情况。
从PHOLD模型设计发现,该模型完全针对并行仿真,无法在并行和串行之间兼容和切换;其次测试内容考虑了处理器之间通信的开销,以及由于通信延迟导致的时间冲突从而发生无效执行和回退的开销等因素,因此是一种综合的性能测试,针对保守时间同步的引擎没有无效执行和回退,而需要考核在事件调度时的时间协调。
综合国内外研究现状,对于并行离散事件仿真引擎的性能定量指标分析及测量方法还存在很大的不足,尤其是针对引擎自身的基础性能指标方面,缺乏客观科学的标准和方法。
因此,如何对并行离散时间仿真引擎进行性能测试,以更好的反应系统的运行效率,并进一步的,利用该测试指标对仿真引擎进行优化,成为现有技术亟需解决的技术问题。
发明内容
本发明的目的在于提出一种仿真引擎的性能测试方法及存储介质,以同步事件调度效率、随机事件调度效率、事件队列管理效率、时间推进效率为指标,实现针对性能的核心要素——事件为主而设计的指标,并进行测试,充分体现引擎的基础能力,以及在并行化实现方式上效率的高低。
为达此目的,本发明采用以下技术方案:
一种仿真引擎的性能测试方法,用于并行离散事件的仿真,包括如下步骤:
步骤S110:建立并生成仿真模型,并使用管理应用所需的信息配置所述仿真模型;
步骤S120:使用同步事件调度性能、随机事件调度性能、事件队列管理性能、和时间推进效率中的一个或多个作为指标对仿真模型进行测试,
所述同步时间调度性能指的是:单位时间调度的仿真时间相同事件的数量,
所述随机事件调度性能是:单位时间调度的仿真时间随机分布事件的数量,
所述事件队列管理性能指的是:单位时间向事件队列中插入仿真时间随机分布的事件数量,
所述时间推进效率指的是:调度指定数量个随机事件队列所需的时间,其中事件队列中第一事件处理方法为插入仿真时间随机的第二事件,所插入的仿真时间随机的第二事件处理方法为空;
步骤S130:分别根据所选定的性能指标,准备仿真事件队列,设定事件的数量、事件的仿真时间和/或自身实体时间;
步骤S140:根据所选定的性能指标,启动仿真并开始测试,直至处理完成或者计时完成。
可选的,当使用同步事件调度性能作为指标对仿真引擎进行测试时,
步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入同一仿真时间t的n个事件,事件处理为空,0<t<T,结束事件的处理为结束仿真;
启动仿真,仿真引擎调度开始事件,向队列中插入事件,完成后开始计时,由仿真引擎调度事件队列中的事件;
调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。
可选的,当使用随机事件调度性能作为指标对仿真引擎进行测试时,
步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个事件,0<t<T,事件处理为空,结束事件的处理为结束仿真;
启动仿真,仿真引擎调度开始事件,向队列中插入随机事件,完成后开始计时,由仿真引擎调度事件队列中的事件;
调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。
可选的,当使用事件队列管理性能作为指标对仿真引擎进行测试时,
步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个事件,t>T,事件处理为空,结束事件的处理为结束仿真;
启动仿真开始计时,仿真引擎调度开始事件,向队列中插入随机事件,要求插入事件的时间按照时间顺序从小到大排序;
然后调度结束事件,停止计时,计算插入的事件的数量,计算队列管理性能。
可选的,当时间推进效率性能作为指标对仿真引擎进行测试时,步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个第一事件,0<t<T,结束事件的处理为结束仿真;
第一事件的处理为向事件队列中插入1个第二事件,t第一事件<t第二事件<T,第二事件的处理为空;
启动仿真开始计时,执行开始,第一事件向事件队列中插入第二事件并开始调度;
然后调度结束事件,完成后停止计时,计算调度所有事件的数量,计算时间推进效率。
可选的,该方法还包括步骤S150:根据仿真测试的结果对仿真引擎进行优化。
可选的,在步骤S130中,在进行测试准备多个事件时,使得事件数量保证每次处理所需时间在具有软件测试通常公认的足够时间以上;
并且,为保证计时的有效性,根据实际情况可调整事件数量,对于步骤130和步骤140,可以多次测试取平均值。
可选的,对于某个测试指标,步骤S130和步骤S140执行多遍,以获取平均结果。
可选的,测试中应该有多个仿真实体,用于产生和处理事件,实体数量应保证潜在的并行化需求。
一种存储介质,用于存储计算机可执行指令,其中所述计算机可执行指令在被处理器执行时执行上述的方法。
本发明不仅提供了针对引擎自身的基础性能评价指标,还具有如下优点:
1、可以在并行与串行之间兼容和切换;
2、参与性能测试的模型逻辑复杂度极低(几乎为零),排除仿真模型性能对于引擎性能测试的影响;
3、测试指标主要针对仿真引擎重要衡量性能即事件调度的时间协调,能代表引擎的基础性能,具备客观性;
4、指标的测试方法可在不同仿真引擎上实现,具备可实施性。
附图说明
图1是根据本发明具体实施例的仿真引擎的性能测试方法的流程图;
图2是根据本发明对于同步事件调度效率进行测试的具体步骤;
图3是根据本发明对于随机事件调度效率进行测试的具体步骤;
图4是根据本发明对于事件队列管理效率进行测试的具体步骤;
图5是根据本发明对于时间推进效率进行测试的具体步骤;
图6是根据本发明具体实施例的时间推进效率测试结果;
图7是根据本发明具体实施例的时间推进效率的另一个测试结果。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
这些过程、流程、逻辑块、功能等,一般被认为是达到理想或者预期的结果的步骤或指示的自洽序列。步骤一般包括物理量的物理操纵。通常情况下,尽管不一定是,这些数量常采取电、磁、光学或量子信号等形式,它们能够被储存,转让,合并,比较,并以其他方式被计算机或数据处理系统所控制。事实证明,有时候为了方便起见,鉴于共享的原因,把这些信号称作为位、波、波形、流、值、元素、符号、字母、术语、数字等类似的名称,在计算机程序或软件中称之为代码(可能是目标代码,源代码或二进制代码)。
在本发明中,对于术语定义如下:
事件:或仿真事件,是指仿真中需要处理或完成的一些功能,事件具有与之对应的仿真时间,两个不同仿真时间的事件的处理对应着仿真时间的推进,考虑到仿真的因果律要求,事件必须按时间的先后顺序进行处理,即调度。
事件队列:对事件的管理方式,通常将多个事件按照仿真时间先后顺序在队列中进行管理,新产生的事件按照仿真时间插入到队列中,仿真引擎按照时间大小顺序调度(执行)事件所对应的功能,同时对应着仿真时间的推进。
仿真时间:或逻辑时间,在仿真中使用的一种时间描述方式,仅具有数值意义,一般从0开始递增,可通过数值大小比较先后顺序。
物理时间:或自然时间、墙钟时间,是指通常自然连续流逝的时间,是本方法所述性能的主要体现,在后续文字中,常用时间代指物理时间。
被仿真对象:即仿真实体,在实际的仿真中一般是事件主要的产生者和处理者。
为了克服上述问题,本发明设计了以同步事件调度效率、随机事件调度效率、事件队列管理效率、时间推进效率为指标的测量步骤及方法,其针对以性能的核心要素——事件为主而设计的各项指标,可以充分体现引擎的基础能力,以及在并行化计算方式上效率的高低。
本发明根据并行离散时间仿真引擎设立了四个主要指标,围着事件为中心,考虑调度、管理和时间推进,所述的调度是指引擎按照事件的仿真时间顺序调用事件处理方法,根据事件的仿真时间的不同又可分为同步事件调度和随机事件调度。
同步事件调度是指事件的仿真时间相同,因此引擎在调用时无需推进仿真时间,也不存在仿真时间协调,该指标单纯反映了引擎的调用效率;随机事件调度是指事件的仿真时间随机分布,因此引擎在调用时需要推进仿真时间,当并行化时需要在多个并行之间协调仿真时间,该指标反映了引擎的事件调用和时间协调的效率。
其中同步事件调度性能指的是对于特定数量个仿真时间相同的事件,仿真引擎完成调度的时间,可以定义:单位时间调度的仿真时间相同事件的数量,单位为(个/秒)。
随机事件调度性能是指对于特定数量个仿真时间随机分布的事件,仿真引擎完成调度的时间,可以定义:单位时间调度的时间随机分布事件的数量,单位为(个/秒)。
所述的管理是指向事件队列中插入事件的效率,由于插入的事件需要按照仿真时间进行排序,并且插入事件是仿真中高频发生的行为,因此也是性能的重要影响因素,体现了事件队列的数据结构设计和管理方法。
其中事件队列管理性能指的是:向已有特定数量个随机事件的队列中插入n个(n>=1)事件所需的时间,可以定义为:单位时间向事件队列中插入仿真时间随机分布的事件数量,单位为(个/秒)。
所述的仿真时间推进是指随着调度事件的仿真时间变化,代表的仿真时间递增情况,是综合事件调度、管理的综合性指标。该指标可以使用仿真时间推进效率进行衡量。
其中,时间推进效率指的是:对于已有特定数量个随机事件,且运行过程中插入n个(n>=1)事件,引擎处理完所有事件所需的时间,可以定义为:向调度指定数量个随机事件(事件1)队列所需的时间,其中事件队列(事件1)处理方法为插入仿真时间随机的事件(事件2),事件2处理方法为空,单位为(个/秒)。
参见图1,示出了根据本发明具体实施例的仿真引擎的性能测试方法,包括如下步骤:
步骤S110:建立并生成仿真模型,并使用管理应用所需的信息配置所述仿真模型;
步骤S120:使用同步事件调度性能、随机事件调度性能、事件队列管理性能、和时间推进效率中的一个或多个作为指标对仿真引擎进行测试,
所述同步时间调度性能指的是对于特定数量个仿真时间相同的事件,仿真引擎完成调度的时间,可以定义:单位时间调度的仿真时间相同的事件的数量,
所述随机事件调度性能是指对于特定数量个仿真时间随机分布的事件,仿真引擎完成调度的时间,可以定义:单位时间调度的仿真时间随机分布的事件的数量,
所述事件队列管理性能指的是:向已有特定数量个随机事件的队列中插入n个(n>=1)事件所需的时间,可以定义为:单位时间向事件队列中插入仿真时间随机分布的事件的数量,
所述时间推进效率指的是:对于已有特定数量个随机事件,且运行过程中插入n个(n>=1)事件,引擎处理完所有事件所需的时间,可以定义为:调度指定数量个随机事件(事件1)队列所需的时间,其中事件队列(事件1)处理方法为插入仿真时间随机的事件(事件2),事件2处理方法为空,定义为空是为了避免采用事件1时会继续产生新的事件,从而使总调度事件数量具有不确定性的情况,单位为(个/秒)。
步骤S130:分别根据所选定的性能指标,准备仿真推演事件队列,设定事件的数量、事件的仿真推进时间和自身实体时间。
步骤S140:根据所选定的性能指标,启动仿真并开始测试,直至处理完成或者计时完成;
因此,在本发明中,在步骤S120中选定指标,分别循环运行步骤S130和步骤S140,对多个性能指标进行测试,从而以事件为中心,客观的衡量仿真模型的性能。
进一步的,还可以包括步骤S150:根据仿真测试的结果对仿真引擎进行优化。
因此,能够利用该测试方法的结果根据所需要的指标,对仿真引擎进行优化。
进一步的,针对每个性能指标仿真事件队列的准备,以及仿真测试的步骤可以有不同的具体步骤,每个指标的解释以及具体的实现步骤如下。
1.同步事件调度性能测试方法
同步事件调度性能:对于特定数量个仿真时间相同的事件,仿真引擎完成调度的时间。
针对典型的仿真场景,考虑N个被仿真对象,设计在0时刻初始化事件,针对本测试指标,仿真实体不再提交事件,初始化事件一次性提交n个同步事件,然后考察完成引擎调度所有事件的时间。
N>1,考虑在并行化的情况下,可能按照被仿真对象划分并行任务,因此1个以上的被仿真对象具有针对并行和串行执行仿真引擎测量的通用性。
注意事项:实体执行的仿真事件处理逻辑复杂度均为零。
参见图2,示出了对于同步事件调度效率进行测试的具体步骤,即对应步骤S130和S140:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入同一仿真时间t的n个事件,事件处理为空,0<t<T,结束事件的处理为结束仿真;
启动仿真,仿真引擎调度开始事件,向队列中插入事件,完成后开始计时,由仿真引擎调度事件队列中的事件;
调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。为保证计时的有效性,根据实际情况可调整事件数量n;在实施时可多次测试获取平均值;下同。
注意事项:由于可能的并行化手段,实体数量等因素要满足并行化的前提条件。
2.随机事件调度性能测试方法
随机事件调度性能:对于特定数量个仿真时间随机分布的事件,仿真引擎完成调度的时间。
针对典型的仿真场景,考虑N个被仿真对象,设计安排0时刻初始化事件,针对本测试指标,仿真实体不再提交事件,初始化事件一次性提交针对N个仿真实体的n个随机事件,考察仿真引擎完成所有事件调度的时间。
注意事项:实体执行的仿真事件处理逻辑复杂度均为零。
参见图3,示出了对于随机事件调度效率进行测试的具体步骤,即对应步骤S130和S140:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个事件,0<t<T,事件处理为空,结束事件的处理为结束仿真;
启动仿真,仿真引擎调度开始事件,向队列中插入随机事件,完成后开始计时,由仿真引擎调度事件队列中的事件;
调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。
注意事项:由于随机事件时间的差异性,仿真引擎必须保证从小到大按照时间顺序调度事件;由于可能的并行化手段,实体数量等因素要满足并行化的前提条件;相对于同步事件调度,随机事件调度会更慢。
3.事件队列管理性能测试方法
事件队列管理性能:指向已有特定数量个随机事件的队列中插入n个(n>=1)事件所需的时间。
针对典型仿真场景,考虑N个被仿真对象,设计安排0时刻初始化事件,T时刻结束事件,初始化事件向事件队列中插入仿真时间t(t>T,且随机分布)的n个事件(事件处理为空),考察仿真引擎执行初始化事件(即插入随机事件)的性能(插入n个事件与执行时间的关系)。
参见图4,示出了对于事件队列管理效率进行测试的具体步骤,即对应步骤S130和S140:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个事件,t>T,事件处理为空,结束事件的处理为结束仿真;
启动仿真开始计时,仿真引擎调度开始事件,向队列中插入随机事件,要求插入事件的时间按照时间顺序从小到大排序;
然后调度结束事件,由于所插入的事件,其时间都大于结束事件的时间,因此不被调度,停止计时,计算插入的事件的数量,计算队列管理性能。
4时间推进效率性能测试方法
时间推进效率指对于已有特定数量个随机事件,且运行过程中插入n个(n>=1)事件,引擎处理完所有事件所需的时间。时间推进效率是仿真引擎的核心指标之一,直接反映仿真运行速度。
针对典型的仿真场景,考虑N个被仿真对象,设计安排0时刻初始化事件和T时刻的结束事件,初始化事件用于给被仿真对象产生一定数量的随机事件(事件1,满足0<t事件1<T),该随机事件(事件1)的执行会产生新的事件(事件2,满足t事件1<t事件2<T),事件2的处理为空。
注意事项:实体执行的仿真事件处理逻辑复杂度为零;
参见图5,示出了对于时间推进效率进行测试的具体步骤,即对应步骤S130和S140:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个第一事件,0<t<T,结束事件的处理为结束仿真;
第一事件的处理为向事件队列中插入1个第二事件,t第一事件<t第二事件<T,第二事件的处理为空;
启动仿真开始计时,执行开始,第一事件向事件队列中插入第二事件并开始调度;
然后调度结束事件,完成后停止计时,计算调度所有事件的数量,计算时间推进效率。
因此,本发明所涉及的测量指标以及测量方法屏蔽了模型算法复杂度的影响,能够充分体现并行化对于仿真引擎效率的影响,为客观评价并行离散事件仿真引擎性能,对比不同实现方法的效果提供了量化依据。
以时间推进效率指标为例,下面为具体实施过程。
1.测试内容:时间推进效率(时间推进效率是仿真引擎的核心指标之一,直接影响仿真运行速度。在事件队列已经安排好的情况下,时间推进等同于事件调度效率。考虑到产生事件的行为,时间推进效率将等于两者的综合。
2.在测试过程中可能发生的变化参数:1)执行事件总数;2)被仿真对象个数;3)所影响的被仿真对象个数;4)事件产生的时间;5)参与运行的线程数量;
3.被仿真对象执行的仿真事件均为空事件;
4.测试机器配置:处理器:Inter(R)Xeon(R)CPU E5-2620 v2@2.10GHZ 2.10GHZ(2处理器,24核);内存:32.0GB;操作系统:Windows 2008 R2 64位;硬盘:固态硬盘500GB
参见图6,和图7分别是涉及时间推进效率的测试结果的示意图。
目前传统的引擎测试模型对于并行离散事件仿真引擎的性能定量指标分析及测量方法还存在很大不足,尤其是针对引擎自身的基础性能指标方面,缺乏客观科学的标准与方法。
本发明提出的四个测试指标不但解决了以上问题,且相对于传统的测试方法具备以下优势:
1、可以在并行与串行之间兼容和切换;
2、参与性能测试的模型逻辑复杂度极低(几乎为零),排除仿真模型性能对于引擎性能测试的影响;
3、测试指标主要针对仿真引擎重要衡量性能即事件调度的时间协调,能代表引擎的基础性能,具备客观性;
4、指标的测试方法可在不同仿真引擎上实现,具备可实施性。
本发明进一步公开了一种存储介质,用于存储计算机可执行指令,
所述计算机可执行指令在被处理器执行时执行上述的方法。
如本领域技术人员将意识到的,本发明的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本文件的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种仿真引擎的性能测试方法,用于并行离散事件的仿真,包括如下步骤:
步骤S110:建立并生成仿真模型,并使用管理应用所需的信息配置所述仿真模型;
步骤S120:使用同步事件调度性能、随机事件调度性能、事件队列管理性能、和时间推进效率中的一个或多个作为指标对仿真模型进行测试,
所述同步时间调度性能指的是:单位时间调度的仿真时间相同事件的数量,
所述随机事件调度性能是:单位时间调度的仿真时间随机分布事件的数量,
所述事件队列管理性能指的是:单位时间向事件队列中插入仿真时间随机分布的事件数量,
所述时间推进效率指的是:调度指定数量个随机事件队列所需的时间,其中事件队列中第一事件处理方法为插入仿真时间随机的第二事件,所插入的仿真时间随机的第二事件处理方法为空;
步骤S130:分别根据所选定的性能指标,准备仿真事件队列,设定事件的数量、事件的仿真时间和/或自身实体时间;
步骤S140:根据所选定的性能指标,启动仿真并开始测试,直至处理完成或者计时完成。
2.根据权利要求1所述的性能测试方法,其特征在于:
当使用同步事件调度性能作为指标对仿真引擎进行测试时,
步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入同一仿真时间t的n个事件,事件处理为空,0<t<T,结束事件的处理为结束仿真;
启动仿真,仿真引擎调度开始事件,向队列中插入事件,完成后开始计时,由仿真引擎调度事件队列中的事件;
调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。
3.根据权利要求1所述的性能测试方法,其特征在于:
当使用随机事件调度性能作为指标对仿真引擎进行测试时,
步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个事件,0<t<T,事件处理为空,结束事件的处理为结束仿真;
启动仿真,仿真引擎调度开始事件,向队列中插入随机事件,完成后开始计时,由仿真引擎调度事件队列中的事件;
调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。
4.根据权利要求1所述的性能测试方法,其特征在于:
当使用事件队列管理性能作为指标对仿真引擎进行测试时,
步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个事件,t>T,事件处理为空,结束事件的处理为结束仿真;
启动仿真开始计时,仿真引擎调度开始事件,向队列中插入随机事件,要求插入事件的时间按照时间顺序从小到大排序;
然后调度结束事件,停止计时,计算插入的事件的数量,计算队列管理性能。
5.根据权利要求1所述的性能测试方法,其特征在于:
当时间推进效率性能作为指标对仿真引擎进行测试时,
步骤S130和步骤S140具体为:
事件队列中准备好开始和结束两个事件,仿真时间分别为0和T,T>0,开始事件的处理为向事件队列中插入仿真时间t随机分布的n个第一事件,0<t<T,结束事件的处理为结束仿真;
第一事件的处理为向事件队列中插入1个第二事件,t第一事件<t第二事件<T,第二事件的处理为空;
启动仿真开始计时,执行开始,第一事件向事件队列中插入第二事件并开始调度;
然后调度结束事件,完成后停止计时,计算调度所有事件的数量,计算时间推进效率。
6.根据权利要求1-5中任意一项所述的性能测试方法,其特征在于:
该方法还包括步骤S150:根据仿真测试的结果对仿真引擎进行优化。
7.根据权利要求6所述的性能测试方法,其特征在于:
在步骤S130中,在进行测试准备多个事件时,使得事件数量保证每次处理所需时间在具有软件测试通常公认的足够时间以上;
并且,为保证计时的有效性,根据实际情况可调整事件数量,对于步骤130和步骤140,可以多次测试取平均值。
8.根据权利要求6所述的性能测试方法,其特征在于:
对于某个测试指标,步骤S130和步骤S140执行多遍,以获取平均结果。
9.根据权利要求6所述的性能测试方法,其特征在于:
测试中应该有多个仿真实体,用于产生和处理事件,实体数量应保证潜在的并行化需求。
10.一种存储介质,用于存储计算机可执行指令,
其中所述计算机可执行指令在被处理器执行时执行权利要求1-8中的任意一项所述的方法。
CN201710564845.7A 2017-07-12 2017-07-12 仿真引擎的性能测试方法及存储介质 Active CN107315889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710564845.7A CN107315889B (zh) 2017-07-12 2017-07-12 仿真引擎的性能测试方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710564845.7A CN107315889B (zh) 2017-07-12 2017-07-12 仿真引擎的性能测试方法及存储介质

Publications (2)

Publication Number Publication Date
CN107315889A CN107315889A (zh) 2017-11-03
CN107315889B true CN107315889B (zh) 2020-05-12

Family

ID=60178496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710564845.7A Active CN107315889B (zh) 2017-07-12 2017-07-12 仿真引擎的性能测试方法及存储介质

Country Status (1)

Country Link
CN (1) CN107315889B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008101A (zh) * 2019-04-04 2019-07-12 网易(杭州)网络有限公司 客户端性能评价方法、装置、存储介质及电子设备
CN111045932B (zh) * 2019-11-25 2023-06-16 杭州网易再顾科技有限公司 业务系统仿真处理方法、装置、电子设备及存储介质
CN111651864B (zh) * 2020-05-12 2023-03-17 北京华如科技股份有限公司 一种事件集中发射式多异构时间队列优化仿真执行方法及系统
CN111651866B (zh) * 2020-05-12 2023-03-17 北京华如科技股份有限公司 一种基于动态负载迁移及时间同步的仿真执行方法及系统
CN111651865B (zh) * 2020-05-12 2023-03-17 北京华如科技股份有限公司 一种并行离散事件的事件集中发射式仿真执行方法及系统
CN114757057B (zh) * 2022-06-14 2022-08-23 中国人民解放军国防科技大学 一种基于混合推进的多线程并行作战仿真方法和系统
CN117195568B (zh) * 2023-09-14 2024-03-26 北京华如科技股份有限公司 一种基于离散事件的仿真引擎性能分析方法及装置
CN117131833B (zh) * 2023-10-24 2024-01-19 北京超星未来科技有限公司 用于模块化电路行为仿真的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1734427A (zh) * 2004-08-02 2006-02-15 微软公司 基于事务处理的性能模型的自动化确认和校准
CN101593219A (zh) * 2008-05-30 2009-12-02 国际商业机器公司 动态切换仿真模式的仿真方法及仿真设备
CN103412992A (zh) * 2013-08-05 2013-11-27 卡斯柯信号有限公司 一种用于仿真测试的随机筛选调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080021692A1 (en) * 2006-07-21 2008-01-24 Rajat Chaudhry Method for performing power simulations on complex designs running complex software applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1734427A (zh) * 2004-08-02 2006-02-15 微软公司 基于事务处理的性能模型的自动化确认和校准
CN101593219A (zh) * 2008-05-30 2009-12-02 国际商业机器公司 动态切换仿真模式的仿真方法及仿真设备
CN103412992A (zh) * 2013-08-05 2013-11-27 卡斯柯信号有限公司 一种用于仿真测试的随机筛选调度方法

Also Published As

Publication number Publication date
CN107315889A (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
CN107315889B (zh) 仿真引擎的性能测试方法及存储介质
US10254369B2 (en) Pipeline engine for specifying, visualizing, and analyzing MRI image reconstructions
Maia et al. Schedulability analysis for global fixed-priority scheduling of the 3-phase task model
Albarghouthi et al. Parallelizing top-down interprocedural analyses
Soliman et al. Prem-based optimal task segmentation under fixed priority scheduling
Wang et al. Real-time scheduling of DAG tasks with arbitrary deadlines
Martinez et al. Quantifying WCET reduction of parallel applications by introducing slack time to limit resource contention
CN112363913A (zh) 一种并行测试任务调度寻优的方法、装置和计算设备
KR101745392B1 (ko) 프로그램 분석 장치 및 분석용 프로그램을 기록한 컴퓨터 판독 가능한 저장매체
CN106686619B (zh) 一种性能评估方法和设备
CN112464599B (zh) 应用在电路的静态时序分析中确定电源电压数据的方法
CN109542731A (zh) 一种面向gpu的层次递进下钻的性能监测方法
Zhang et al. Optimizing completion time and resource provisioning of pig programs
Cui et al. Modeling the performance of MapReduce under resource contentions and task failures
Duttagupta et al. Predicting performance in the presence of software and hardware resource bottlenecks
Lee et al. Improving resource utilization for compositional scheduling using dprm interfaces
Kunz et al. Predicting runtime performance bounds of expanded parallel discrete event simulations
CN114281504A (zh) 一种任务调度方法、装置、电子设备及计算机可读介质
Uddin et al. Signature-based high-level simulation of microthreaded many-core architectures
Badr et al. A high-level model for exploring multi-core architectures
US20150121342A1 (en) Method of thread safety verification and feedback
Kiran et al. A prediction module to optimize scheduling in a grid computing environment
Kuehn Performance and energy efficiency of parallel processing in data center environments
Zhou et al. Excluding Parallel Execution to Improve Global Fixed Priority Response Time Analysis
CN110569155A (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
GR01 Patent grant
GR01 Patent grant