仿真引擎的性能测试方法及存储介质与流程

本发明涉及一种仿真计算领域,更具体地说,涉及并行离散事件(pdes,paralleldiscreteeventsimulation)仿真引擎的性能测试方法及存储介质。

背景技术:

1、性能的模型无关性:通常仿真的性能包括了引擎的性能和模型运算的性能,测量引擎的性能必须以某种方式的仿真运行为手段,因此必须排除模型性能的影响,即必须要设计足够简单,在不同引擎上都能实现且能够支持引擎性能测量的通用模型;

2、性能指标的客观性:不同的仿真引擎采用了不同的实现方法,包括在并行化上也有不同的实现手段,比较其性能就要剔除由于引擎设计不同而造成的个性化指标,而是筛选和定义所有引擎都必须具备的指标,并且能够代表引擎设计的基础性能;

3、性能指标的可实施性:与硬件和标准软件的benchmark不同,由于不同引擎的软件设计使得不可能有统一的测试工具,甚至统一的一套源代码也非常困难,因此测试方法必须具有在不同引擎上的可实现性,甚至具有不可作弊和不可抵赖的特点。

在并行离散事件(pdes,paralleldiscreteeventsimulation)计算领域,研究者们针对并行性能的度量和测量方法做了很多努力,并行系统的加速比定义为:对于一个给定的应用,并行算法或并行程序的执行速度相对于串行算法或串行程序的执行速度加快了多少倍。引申到离散事件仿真中,并行和串行的离散事件仿真的加速比可以类似定义,而对于引擎,则应消除算法和模型复杂度的差异。

综合国内外研究现状,对于并行离散事件仿真引擎的性能定量指标分析及测量方法还存在很大的不足,尤其是针对引擎自身的基础性能指标方面,缺乏客观科学的标准和方法。

技术实现要素:

为达此目的,本发明采用以下技术方案:

一种仿真引擎的性能测试方法,用于并行离散事件的仿真,包括如下步骤:

步骤s110:建立并生成仿真模型,并使用管理应用所需的信息配置所述仿真模型;

步骤s140:根据所选定的性能指标,启动仿真并开始测试,直至处理完成或者计时完成。

可选的,当使用同步事件调度性能作为指标对仿真引擎进行测试时,

步骤s130和步骤s140具体为:

启动仿真,仿真引擎调度开始事件,向队列中插入事件,完成后开始计时,由仿真引擎调度事件队列中的事件;

调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。

可选的,当使用随机事件调度性能作为指标对仿真引擎进行测试时,

启动仿真,仿真引擎调度开始事件,向队列中插入随机事件,完成后开始计时,由仿真引擎调度事件队列中的事件;

可选的,当使用事件队列管理性能作为指标对仿真引擎进行测试时,

然后调度结束事件,停止计时,计算插入的事件的数量,计算队列管理性能。

第一事件的处理为向事件队列中插入1个第二事件,t第一事件

启动仿真开始计时,执行开始,第一事件向事件队列中插入第二事件并开始调度;

可选的,该方法还包括步骤s150:根据仿真测试的结果对仿真引擎进行优化。

并且,为保证计时的有效性,根据实际情况可调整事件数量,对于步骤130和步骤140,可以多次测试取平均值。

可选的,对于某个测试指标,步骤s130和步骤s140执行多遍,以获取平均结果。

可选的,测试中应该有多个仿真实体,用于产生和处理事件,实体数量应保证潜在的并行化需求。

一种存储介质,用于存储计算机可执行指令,

其中所述计算机可执行指令在被处理器执行时执行权利要求1-8中的任意一项所述的方法。

本发明不仅提供了针对引擎自身的基础性能评价指标,还具有如下优点:

1、可以在并行与串行之间兼容和切换;

2、参与性能测试的模型逻辑复杂度极低(几乎为零),排除仿真模型性能对于引擎性能测试的影响;

4、指标的测试方法可在不同仿真引擎上实现,具备可实施性。

附图说明

图1是根据本发明具体实施例的仿真引擎的性能测试方法的流程图;

图2是根据本发明对于同步事件调度效率进行测试的具体步骤;

图3是根据本发明对于随机事件调度效率进行测试的具体步骤;

图4是根据本发明对于事件队列管理效率进行测试的具体步骤;

具体实施方式

这些过程、流程、逻辑块、功能等,一般被认为是达到理想或者预期的结果的步骤或指示的自洽序列。步骤一般包括物理量的物理操纵。通常情况下,尽管不一定是,这些数量常采取电、磁、光学或量子信号等形式,它们能够被储存,转让,合并,比较,并以其他方式被计算机或数据处理系统所控制。事实证明,有时候为了方便起见,鉴于共享的原因,把这些信号称作为位、波、波形、流、值、元素、符号、字母、术语、数字等类似的名称,在计算机程序或软件中称之为代码(可能是目标代码,源代码或二进制代码)。

在本发明中,对于术语定义如下:

被仿真对象:即仿真实体,在实际的仿真中一般是事件主要的产生者和处理者。

参见图1,示出了根据本发明具体实施例的仿真引擎的性能测试方法,包括如下步骤:

步骤s140:根据所选定的性能指标,启动仿真并开始测试,直至处理完成或者计时完成;

因此,在本发明中,在步骤s120中选定指标,分别循环运行步骤s130和步骤s140,对多个性能指标进行测试,从而以事件为中心,客观的衡量仿真模型的性能。

进一步的,还可以包括步骤s150:根据仿真测试的结果对仿真引擎进行优化。

因此,能够利用该测试方法的结果根据所需要的指标,对仿真引擎进行优化。

进一步的,针对每个性能指标仿真事件队列的准备,以及仿真测试的步骤可以有不同的具体步骤,每个指标的解释以及具体的实现步骤如下。

1.同步事件调度性能测试方法

n>1,考虑在并行化的情况下,可能按照被仿真对象划分并行任务,因此1个以上的被仿真对象具有针对并行和串行执行仿真引擎测量的通用性。

注意事项:实体执行的仿真事件处理逻辑复杂度均为零。

参见图2,示出了对于同步事件调度效率进行测试的具体步骤,即对应步骤s130和s140:

调度完所有事件,最后一个事件为结束事件,停止计时,计算调度性能。为保证计时的有效性,根据实际情况可调整事件数量n;在实施时可多次测试获取平均值;下同。

注意事项:由于可能的并行化手段,实体数量等因素要满足并行化的前提条件。

2.随机事件调度性能测试方法

参见图3,示出了对于随机事件调度效率进行测试的具体步骤,即对应步骤s130和s140:

3.事件队列管理性能测试方法

参见图4,示出了对于事件队列管理效率进行测试的具体步骤,即对应步骤s130和s140:

针对典型的仿真场景,考虑n个被仿真对象,设计安排0时刻初始化事件和t时刻的结束事件,初始化事件用于给被仿真对象产生一定数量的随机事件(事件1,满足0

注意事项:实体执行的仿真事件处理逻辑复杂度为零;

因此,本发明所涉及的测量指标以及测量方法屏蔽了模型算法复杂度的影响,能够充分体现并行化对于仿真引擎效率的影响,为客观评价并行离散事件仿真引擎性能,对比不同实现方法的效果提供了量化依据。

3.被仿真对象执行的仿真事件均为空事件;

4.测试机器配置:处理器:inter(r)xeon(r)cpue5-2620v2@2.10ghz2.10ghz(2处理器,24核);内存:32.0gb;操作系统:windows2008r264位;硬盘:固态硬盘500gb

目前传统的引擎测试模型对于并行离散事件仿真引擎的性能定量指标分析及测量方法还存在很大不足,尤其是针对引擎自身的基础性能指标方面,缺乏客观科学的标准与方法。

本发明提出的四个测试指标不但解决了以上问题,且相对于传统的测试方法具备以下优势:

本发明进一步公开了一种存储介质,用于存储计算机可执行指令,

所述计算机可执行指令在被处理器执行时执行上述的方法。

如本领域技术人员将意识到的,本发明的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本文件的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。

计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。

可以使用包括但不限于无线、有线、光纤电缆、rf等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。

用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。

还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。

计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

THE END
1.为什么你买到的电脑硬盘/手机/U盘/内存卡实际可用容量总是达不到...无障碍 关怀版 登录 视频加载失败,可以 刷新 试试 00:00/00:00 推荐 已经到底了 为什么你买到的电脑硬盘/手机/U盘/内存卡实际可用容量总是达不到标称的?电脑 组装电脑拳击那点事 发布于:江西省 2024.11.25 00:00 分享到 热门视频 已经到底了 https://www.sohu.com/a/829984221_100114195
1.测试中影响SSD(固态硬盘)性能的因素汇总固态硬盘(SSD)的性能是评估存储设备的重要指标,但其表现受多种因素的综合影响。在测试过程中,硬件、软件、环境工作负载等方面的变量都会显著左右性能表现。下面汇总了常见的影响因子: 部分因素原因解释: CPU利用率,原因:比如当CPU利用率特别高的时候,可能无法及时发送和处理I/O命令,时延会增加,性能会相对降低 ...https://blog.csdn.net/weixin_59392547/article/details/143954590
2.指定内存不能为WRITTEN还有一种情况可能导致内存错误,那就是内存泄漏。内存泄漏指的是在程序中分配了内存但没有释放,导致内存资源耗尽或者无法被其他程序使用。如果我们确定程序存在内存泄漏问题,我们需要及时对程序进行修复和优化。 为了避免类似的内存错误问题,我们可以采用一些良好的编程习惯。及时释放不再需要的内存,避免过度频繁地进行内存分...http://www.ireallytech.com/article/14764.html
3.硬盘空间足够却说空间不足硬盘明明还有空间却说容量不足的原因可能是文件系统对单个文件的大小有限制。FAT32文件系统由于自身设计时的限制,能够支持的最大的单个文件大小不能超过4GB。超过此限制的大文件,在保存时就会提示磁盘空间不足。 解决这个问题的方法是将硬盘的文件系统转换为NTFS或exFAT,这两种文件系统都没有这个单个文件大小的限制,可以...https://www.qn200.com/k/rexm6x408.html
4.这是怎么回事?无法度量存储性能,无法正确评估磁盘?(windows7无法...无法度量存储性能,无法正确评估磁盘? 我碰巧找到了解决方法,就是我想既然用户文件夹移动了,干脆也把windows的temp文件夹也转移了算了。用win7优化大师把用户的temp文件夹转移到:\users\temp之后,再评分,居然能顺利通过了。具体如下: (图片来源网络,侵删)...https://www.shiwaiyun.com/article/post/160359.html
5.windows7”无法度量存储性能““系统无法正确评估磁盘,数据无效...上次我也无法评估磁盘性能,然后我把硬盘分区表毁了。。。送到客服,结果他们帮我换了块硬盘。。。囧...https://www.pcbeta.com/viewthread-644274-2-544.html
6.Win7“无法度量存储性能”“系统无法正确评估磁盘,数据无效...以系统封装技术与驱动技术为主的综合性IT站点,提供完善的系统批量部署解决方案、易用的离线万能驱动和适合装机技术员的U盘PE。https://www.itsk.com/thread-204442-1-1.html
7.使用DISKSPD测试工作负荷存储性能下面的简短摘要说明了为什么使用文件复制来度量存储性能可能无法提供你所期望的结果: 文件复制可能未经过优化。会出现两个级别的并行度,一个是内部的,另一个是外部的。 在内部,如果文件复制针对的是远程目标,则 CopyFileEx 引擎会应用某种程度的并行化。 在外部,可以通过不同的方式来调用 CopyFileEx 引擎。 例如,从文...https://docs.azure.cn/zh-cn/azure-stack/hci/manage/diskspd-overview
8.CMMI5项目经理角色访谈学习笔记CMMI认证存储:工作记录,例如:会议纪要、报告 11、项目级Car基本改进原则: 项目执行中,当前性能目标无法达到现有组织过程性能。 项目执行中,出现的缺陷或问题等导致与当前组织过程绩效出现严重偏差,明显影响项目绩效。 工作产品与需求出现明显的偏离。 12、确定软件开发生命周期模型的参考规则 ...https://www.cmmirz.com/cmmi5-project-manager-interview-note/
9.提升数据存储性能,主要有哪几种方法?它收集服务器和存储度量指标,并利用算法来确定系统和存储输入/输出的运行状况,另外可以针对未来问题自动建模。分析技术被用来确定系统磁盘输入/输出的运行状况,为此分析输入/输出利用率、磁盘速度、输入/输出密度和输入/输出速率,以检测存储性能低下的根源。 巴拉法斯说:“这让分析员得以深入了解共享式存储,从而确定问题...https://blog.51cto.com/u_13973070/6206145
10.手把手教您如何进行数据质量管理ETL开发人员:设计数据存储系统 数据工程师:监督数据集成、数据仓库和数据湖、数据管道 数据库管理员:管理数据库系统,确保它们满足SLA、性能和备份要求 数据质量工程师:查找并清理数据源中的不良数据,创建流程以防止数据质量问题 消费层 数据科学家:收集和分析来自数据库和其他来源的数据,运行模型,并为用户创建数据可视化...https://36kr.com/p/2346113073061509
11.PS液化显示该操作无法完成,因为没有足够存储空间,已经勾选了其他...根据您的描述,出现“该操作无法完成,因为没有足够存储空间”的错误提示,可能是由于系统暂存盘空间不足...https://ask.zol.com.cn/x/20492853.html
12.baike.pinpaidadao.com/index.php?article/1638601X-CLOSE X-CLOSEhttp://baike.pinpaidadao.com/index.php?article/1638601
13.存储器体系结构学习笔记腾讯云开发者社区存储器平均访问时间 缓存性能比较好的度量为存储器平均访问时间,即对于每次存储器访问而言需要的平均时间,公式如下: 需要注意的是这一指标仅针对存储器访问指令,因此这是一个间接度量,考虑以下情况: 需要注意的是,缺失数指的是对于所有指令而言产生存储器缺失的次数,而缺失率为相对于所有存储器访问产生缺失的比例。对于...https://cloud.tencent.com/developer/article/1574134
14.编写高性能JavaScript(译)javascript技巧什么是引擎无法优化的,垃圾回收器(GC)是否能回收我所期望的东西 加载快速的网站就像是一辆快速的跑车,需要用到特别定制的零件. 图片来源:dHybridcars. 编写高性能代码时有一些常见的陷阱,在这篇文章中,我们将展示一些经过验证的、更好的编写代码方式。 https://www.jb51.net/article/53623.htm
15.排查Linux或Windows上的Azure虚拟机性能问题Windows 上的VM 磁盘的可伸缩性和性能目标。参考存储帐户的带宽由存储帐户指标:TotalIngress 和 TotalEgress 度量。 带宽的阈值不同,具体取决于冗余类型和区域:标准存储帐户的可伸缩性和性能目标 高级页 Blob 存储帐户的可伸缩性和性能目标根据存储帐户冗余类型和区域的入口和出口限制检查 TotalIngress 和 ...https://support.microsoft.com/zh-cn/help/3150851/generic-performance-troubleshooting-for-azure-virtual-machine-running