掌桥专利:专业的专利平台
掌桥专利
首页

一种仿真请求处理方法、装置、电子设备及可读存储介质

文献发布时间:2023-06-19 12:02:28


一种仿真请求处理方法、装置、电子设备及可读存储介质

技术领域

本申请涉及请求处理领域,特别涉及一种仿真请求处理方法、装置、电子设备及计算机可读存储介质。

背景技术

现有的仿真软件需要大量运算资源,但计算机的资源有限,而仿真的需求又大,因此要合理利用计算机的资源来进行仿真。一般来说,每位电路设计师在设计阶段会公平分配计算机的计算资源,并且鼓励设计师提交优质仿真需求—即仿真速度快的仿真需求;同时鼓励设计师按需提交仿真需求,而不是靠反复利用计算机的仿真试错来进行设计。

但即使如此,在现有技术中,关于电路设计的仿真还只是采用按照设计师提交电路仿真需求的先来后到顺序来进行仿真排序,并辅助以人工干预来临时调整仿真顺序,目前的这种排序方法存在诸多弊端,比如:强堆单台计算机算力依赖计算机系统自带的任务管理器安排算力,平均安排时间给各个当前已提交的任务请求,很容易使不那么优秀的设计反复用计算机算力试错而大量占用计算机资源,同时长时间思考的到的优秀设计需要计算机资源的时候却不那么容易获得资源;而人工干预往往不能及时判断出需要进行调整的优先级顺序或者有很大的主观性,这都无法满足实际电路设计中的仿真工作需求。

发明内容

本申请的目的是提供一种仿真请求处理方法、装置、电子设备及计算机可读存储介质。

为实现上述目的,本申请在第一方面提供了一种仿真请求处理方法,该方法包括:

确定待执行的仿真请求的发起对象;

根据发起对象的历史仿真请求执行情况,确定发起对象的请求执行优先级;其中,处于执行中状态的发起对象的请求执行优先级将随其仿真请求的执行时长逐渐下降,其它未处于执行中状态的对象的请求执行优先级将随其未执行时长逐渐上升,对象包括有当前发起有仿真请求的仿真对象和当前未发起有仿真请求的未发起对象;

根据请求执行优先级,确定一级仿真请求和二级仿真请求;

以轮替执行的方式执行各一级仿真请求,直至当前不存在一级仿真请求时轮替执行当前的各二级仿真请求。

可选的,当请求执行优先级采用积分制时,请求执行优先级的变化方式包括:

每当一个仿真请求处于被执行状态预设时长,为相应的发起对象在其当前优先级分值的基础上扣减第一预设分值;

每当一个仿真请求处于被执行状态预设时长,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加第二预设分值;其中,第一预设分值不小于第二预设分值。

可选的,每当一个仿真请求处于被执行状态预设时长,为相应的发起对象在其当前优先级分值的基础上扣减第一预设分值,包括:

每当一个仿真请求处于被执行状态1分钟,为相应的发起对象在其当前优先级分值的基础上扣减1分;

对应的,每当一个仿真请求处于被执行状态预设时长,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加第二预设分值,包括:

每当一个仿真请求处于被执行状态1分钟,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加

可选的,当请求执行优先级采用积分制时,根据请求执行优先级,确定一级仿真请求和二级仿真请求,包括:

将对应的请求执行优先级大于0的仿真请求,确定为一级仿真请求;

将对应的请求执行优先级不大于0的仿真请求,确定为二级仿真请求。

可选的,该仿真请求处理方法还包括:

当不存在新的待处理的仿真请求时,将当前所有不大于0的请求执行优先级都置为0。

可选的,该仿真请求处理方法还包括:

针对每次提交的新仿真请求,通过对新仿真请求的构成进行电路相似性分析;

当根据电路相似性分析的结果确定之前提交有相同的旧仿真请求,若旧仿真请求处于仿真中状态,返回已有相同仿真请求在仿真的通知信息;若旧仿真请求的仿真结果仍保存在缓存,返回从缓存中查询到的仿真结果;若旧仿真请求的仿真结果已从缓存中被删去,为新仿真请求附加重复仿真标记。

可选的,该仿真请求处理方法还包括:

针对附加有重复仿真标记的仿真请求,根据重复仿真标记中记录的重复仿真次数,降低相应的发起对象的请求执行优先级。

为实现上述目的,本申请在第二方面提供了一种仿真请求处理装置,该方法包括:

发起对象确定单元,被配置成确定待执行的仿真请求的发起对象;

请求执行优先级确定单元,被配置成根据发起对象的历史仿真请求执行情况,确定发起对象的请求执行优先级;其中,处于执行中状态的发起对象的请求执行优先级将随其仿真请求的执行时长逐渐下降,其它未处于执行中状态的对象的请求执行优先级将随其未执行时长逐渐上升,对象包括有当前发起有仿真请求的仿真对象和当前未发起有仿真请求的未发起对象;

一级/二级仿真请求确定单元,被配置成根据请求执行优先级,确定一级仿真请求和二级仿真请求;

轮替执行单元,被配置成以轮替执行的方式执行各一级仿真请求,直至当前不存在一级仿真请求时轮替执行当前的各二级仿真请求。

可选的,该仿真请求处理装置还包括:被配置成控制请求执行优先级发生变化的优先级调整单元,当请求执行优先级采用积分制时,优先级调整单元包括:

扣分子单元,被配置成每当一个仿真请求处于被执行状态预设时长,为相应的发起对象在其当前优先级分值的基础上扣减第一预设分值;

加分子单元,被配置成每当一个仿真请求处于被执行状态预设时长,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加第二预设分值;其中,第一预设分值不小于第二预设分值。

可选的,每扣分子单元被进一步配置成:

每当一个仿真请求处于被执行状态1分钟,为相应的发起对象在其当前优先级分值的基础上扣减1分;

对应的,加分子单元被进一步配置成:

每当一个仿真请求处于被执行状态1分钟,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加

可选的,当请求执行优先级采用积分制时,一级/二级仿真请求确定单元被进一步配置成:

将对应的请求执行优先级大于0的仿真请求,确定为一级仿真请求;

将对应的请求执行优先级不大于0的仿真请求,确定为二级仿真请求。

可选的,该仿真请求处理装置还包括:

置零单元,被配置成当不存在新的待处理的仿真请求时,将当前所有不大于0的请求执行优先级都置为0。

可选的,该仿真请求处理装置还包括:

相似性分析单元,被配置成针对每次提交的新仿真请求,通过对新仿真请求的构成进行电路相似性分析;

相似性结果处理单元,被配置成当根据电路相似性分析的结果确定之前提交有相同的旧仿真请求,若旧仿真请求处于仿真中状态,返回已有相同仿真请求在仿真的通知信息;若旧仿真请求的仿真结果仍保存在缓存,返回从缓存中查询到的仿真结果;若旧仿真请求的仿真结果已从缓存中被删去,为新仿真请求附加重复仿真标记。

可选的,该仿真请求处理装置还包括:

重复仿真标记处理单元,被配置成针对附加有重复仿真标记的仿真请求,根据重复仿真标记中记录的重复仿真次数,降低相应的发起对象的请求执行优先级。

为实现上述目的,本申请在第三方面提供了一种电子设备,该电子设备包括:

存储器,用于存储计算机程序;

处理器,用于在执行存储于存储器上的计算机程序时可实现如上述第一方面中任一实施方式所描述的仿真请求处理方法的各步骤。

为实现上述目的,本申请在第四方面提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面中任一实施方式所描述的仿真请求处理方法的各步骤。

相比于现有技术,本申请所提供的仿真请求处理方法,不仅通过结合历史仿真请求执行情况动态调节的请求执行优先级来更及时、更合理的调整仿真请求的执行优先级,使得基于试错思想发起仿真请求的情况将拥有更低的执行优先级,而且采用轮替执行各一级仿真请求的方式来从整体上降低了数量较多、运算量较少的仿真请求的仿真等待耗时。本申请同时还提供了一种仿真请求处理装置、电子设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种仿真请求处理方法的流程图;

图2为本申请实施例提供的仿真请求处理方法中一种新仿真请求处理方法的流程图;

图3为本申请实施例提供的一种仿真请求处理装置的结构框图。

具体实施方式

本申请的核心是提供一种云环境下服务的部署方法、系统、装置及计算机可读存储介质,不仅通过结合历史仿真请求执行情况动态调节的请求执行优先级来更及时、更合理的调整仿真请求的执行优先级,使得基于试错思想发起仿真请求的情况将拥有更低的执行优先级,而且采用轮替执行各一级仿真请求的方式来从整体上降低了数量较多、运算量较少的仿真请求的仿真等待耗时。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

请参见图1,图1为本申请实施例提供的一种仿真请求处理方法的流程图,其包括以下步骤:

步骤101:确定待执行的仿真请求的发起对象;

本步骤旨在由适于执行本申请所提供的仿真请求处理方法的执行主体(例如运行在服务器所提供的硬件资源上的仿真请求分配平台),确定当前待处于待执行状态的仿真请求的发起对象。

其中,待执行状态包括所有当前处于未执行状态外的状态,例如从未执行过任何部分仿真的100%未执行的仿真请求,也包括因轮替执行方式使得部分内容进行了仿真的N%(小于100%、大于0%)未执行的仿真请求;仿真请求则包括各种场景下发起的仿真需求,例如为设计新芯片或改进旧芯片的芯片设计仿真请求、为设计软件算法所进行的软件仿真请求、为渲染或进行预测运算的仿真请求等等;发起对象表示发起相应仿真请求的对象,例如设计师、经训练出的具有设计能力或按指示进行修改的执行算法或模型等等。

具体的,确定待执行的仿真请求的发起对象的方式可以有多种,例如在每个仿真请求提请时要求同步填写发起对象的情况下,就可以直接通过该仿真请求读取到当初填写的发起对象,并进一步的根据直接读取到的用名称或代号表示的内容准确确定出发起对象;若在未要求同步填写发起对象的情况下,则可以通过读取发起仿真请求的网络地址来确定持有或使用该网络地址的对象,还可以根据直接由设计师内嵌在其作品中的数字签名来确定其身份,等等,此处不做具体限定,可根据实际情况灵活选择合适的实现方案。

一个设计师可以同时或分批次提请一个或多个仿真请求,因此允许仿真请求和发起对象之间存在多对一的关系。

步骤102:根据发起对象的历史仿真请求执行情况,确定发起对象的请求执行优先级;

需要说明的是,本申请对于发起对象的请求执行优先级的大小存在如下设计:处于执行中状态的发起对象的请求执行优先级将随其仿真请求的执行时长逐渐下降,其它未处于执行中状态的对象的请求执行优先级将随其未执行时长逐渐上升,对象包括有当前发起有仿真请求的仿真对象和当前未发起有仿真请求的未发起对象。

在步骤101的基础上,本步骤这旨在由上述执行主体根据发起对象的历史仿真请求执行请求,来确定该发起对象当前的请求执行优先级。由于处于执行中状态的发起对象的请求执行优先级将随其仿真请求的执行时长逐渐下降,其它未处于执行中状态的对象的请求执行优先级将随其未执行时长逐渐上升的设计,使得每个对象的请求执行优先级将随时间动态变化,总的趋势为:为当前处于执行中状态的仿真请求的发起对象,随其执行时长正成比降低其请求执行优先级,反之,则为除此之外的所有其它对象,随其未执行时长正比的提升其请求执行优先级,从而形成优先级差,进而能够通过历史执行时长来把控后续进行仿真测试的优先程度。即通过该设计,使得将仿真测试作为试错方式的设计师将因执行时长较长、使得自身后续的仿真请求的优先级降低,进而实现鼓励在设计时进行充分思考的设计方式。

应当理解的是,请求执行优先级的大小用于表征其后续提请的仿真请求的执行优先程度。

以请求执行优先级采用积分制为例,本步骤可具体表现为:

每当一个仿真请求处于被执行状态预设时长,为相应的发起对象在其当前优先级分值的基础上扣减第一预设分值,以及每当一个仿真请求处于被执行状态预设时长,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加第二预设分值。其中,第一预设分值不小于第二预设分值,这是因为考虑到实际情况下设计师的数量和运算资源的比例,以及加分对象的通常大于减分对象的数量,为了避免加分过分导致该体系失去意义。

具体的,每当一个仿真请求处于被执行状态1分钟,为相应的发起对象在其当前优先级分值的基础上扣减1分,以及每当一个仿真请求处于被执行状态1分钟,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加

应当理解的是,上述给出的具体实施例方式的目的是为了造成优先级的级差,那么除了进行相反的扣分和加分操作外,也可以对所有的对象(例如设计师)都加分、仅对当前处于执行中状态的发起对象进行减分,以同样达成形成优先级级差的目的,从而降低因在加分上区分不同对象造成的性能开销和实现代码编写难度。

同时,考虑到负责进行仿真操作的运算设备之间的运算能力差异,还可以根据运算能力差异调整所扣减的分值,例如以最高运算性能的分值为1分时,其它相比而言运算性能较低的设备在占用执行仿真操作时,可相应的扣0.6、0.7分。

当然,除积分制外,还可以采用原理相同、类似,或者原理不同但能够实现类似效果的其它方式,例如采用调整权值大小、累积标签等等,此处不再一一列举。

步骤103:根据请求执行优先级,确定一级仿真请求和二级仿真请求;

在步骤102的基础上,本步骤旨在由上述执行主体根据请求执行优先级,来将当前所有的待执行的仿真请求分类为一级仿真请求和二级仿真请求,一个仿真请求仅能够隶属于一级仿真请求或二级仿真请求中的一种。

仍以上述积分制为例,可以理解的是,若一个设计师在历史过程中遵循非试错的设计思想,那么随着时间的增加和设计之初的公平原则,其请求执行优先级的分值应当属于大于0的正值,反之,其请求执行优先级的分值则很容易落入小于0的负值或接近0。因此,可以将对应的请求执行优先级大于0的仿真请求,确定为一级仿真请求,并将对应的请求执行优先级不大于0的仿真请求,确定为二级仿真请求。从而尽可能的提升所鼓励的设计师所提交的仿真请求的仿真优先级。当然,除了将0作为分界线或临界值外,也可以根据实际情况下的加分和减分措施详情,自适应的调整临界值。

进一步的,还可以当不存在新的待处理的仿真请求时,将当前所有不大于0的请求执行优先级都置为0,以通过该清零措施来保障优先级制度的正确有效进行。

步骤104:以轮替执行的方式执行各一级仿真请求,直至当前不存在一级仿真请求时轮替执行当前的各二级仿真请求。

在步骤103的基础上,本步骤旨在由上述执行主体以轮替执行的方式执行各一级仿真请求,直至当前不存在一级仿真请求时轮替执行当前的各二级仿真请求。

应当理解的是,为进行仿真测试,通常都预备多台具有不同运算能力的运算设备,而运算能力越强,计算相同的仿真需求的耗时就越短,因此本申请通过本步骤提供了一种以轮替方式轮流执行各一级仿真请求的仿真任务处理方式,以摒弃现有技术采用的在前提请了一个大模块的长时仿真请求对高性能运算设备的长时占用,使得大量后续提请的小模块的短时仿真请求等待时长过高的问题。

为加深理解,此处举例说明,假定当前存在5个按照提请时序排列的仿真任务A、B、C、D、E,通过对其所属发起对象的请求执行优先级的查询,这5个仿真请求中的A、B、E属于一级仿真请求,而A、B根据复杂度的初步估计发现其耗时约为3天,而E耗时约为4小时,因此按照常规的先来后到的方式,在仅有一台仿真运算设备的情况下,E任务不得不等待6天后才能开始,即其仿真等待耗时为6.4天,而按照本步骤所提供的轮替执行方式,A、B、E三个仿真任务各自轮流在该仿真运算设备上每次执行预设时长(例如1分钟、10分钟,也可以自行设定一个较短的时长),以1小时为例,E的仿真等待耗时仅为12小时,而对于A、B而言,中间穿插进几个小时的其它任务执行时间,相比于其原来的等待耗时而言,影响较少。同时需要说明的是,复杂度较高、耗时较长的大模块数量本身就相对较少,因此采用此种方式能够提升整体的效率,在小模块能够提前完成仿真测试的情况下,也能够提前给到后续的大模块的设计修改建议,进而提升一次仿真成功率、尽可能的避免无用功的产生。

相比于现有技术,本申请所提供的仿真请求处理方法,不仅通过结合历史仿真请求执行情况动态调节的请求执行优先级来更及时、更合理的调整仿真请求的执行优先级,使得基于试错思想发起仿真请求的情况将拥有更低的执行优先级,而且采用轮替执行各一级仿真请求的方式来从整体上降低了数量较多、运算量较少的仿真请求的仿真等待耗时。

在上述实施例的基础上,本实施例通过图2提供了一种新仿真请求处理方法的流程图,以尽可能的避免不同设计师独立发起的相同仿真请求的重复进行,具体包括以下步骤:

步骤201:针对每次提交的新仿真请求,通过对新仿真请求的构成进行电路相似性分析;

基于构成所进行的电路相似性分析,可基于构成所设计电路所使用的元器件、不同元器件之间的连接关系,不同连接关系和不同元器件的描述等所有用于判别相似性的内容。也可以引入基于神经网络框架和存在对应关系的训练样本训练出的相似性判别模型,例如训练样本中的对应关系可以表现为对不同表现形式的相同功能电路的相同功能标注。

步骤202:根据电路相似性分析的结果确定之前是否提交有相同的旧仿真请求,若之前提交有相同的旧仿真请求,按照具体所属情况的不同,执行步骤203-步骤205中的一项;若之前未提交有相同的旧仿真请求,执行步骤206;

步骤203:返回已有相同仿真请求在仿真的通知信息;

本步骤建立在步骤202的判断结果为之前提交有相同的旧仿真请求的基础上,且进一步所处的情况为:之前提请的与该新仿真请求相同的旧仿真请求正在进行仿真,因此返回已有相同仿真请求在仿真的通知信息。

步骤204:返回从缓存中查询到的仿真结果;

本步骤建立在步骤202的判断结果为之前提交有相同的旧仿真请求的基础上,且进一步所处的情况为:之前提请的与该新仿真请求相同的旧仿真请求进行完了仿真,且其仿真结果仍存储在缓存中,因此返回从缓存中查询到的仿真结果。

步骤205:为新仿真请求附加重复仿真标记;

本步骤建立在步骤202的判断结果为之前提交有相同的旧仿真请求的基础上,且进一步所处的情况为:之前提请的与该新仿真请求相同的旧仿真请求进行完了仿真,且其仿真结果已从缓存中被删去,因此为新仿真请求附加重复仿真标记,以通过该重复仿真标记标明该新仿真请求为将要进行的重复仿真请求。

步骤206:按正常流程执行新仿真请求。

本步骤建立在步骤202的判断结果为之前未提交有相同的旧仿真请求的基础上,因此正常流程(即如流程100所提供的实施例)安排并执行新仿真请求即可。

为加深为本申请所提供技术方案的理解,本申请在此处还结合实际情况,提供了一种具体的实现方式:

本实施例具体将上述思路具象化为排队算法,来实现对计算机的运算资源用于进行仿真测试方面的优化配置,并对每位设计师电路设计的仿真需求进行排队仿真。

排队算法本身可以实现防止一部分需要较长时间的仿真需求长期占用优质计算机资源,从而暂停正在运行的需要较长时间的仿真设计,并运行其它电路的仿真设计。

进行资源分配的设备先得到所有在线的计算机的状态及性能打分,计算机的状态及性能打分具体方法是分配一个计算π的程序,根据计算π小数点后特定位数所花的时间进行打分排序;设计师提交仿真需求,通过分析网表文件,查找重复的仿真需求。具体实现网表主要分三部分:元器件的描述、元器件之间连接的描述及仿真条件的描述,对比前两个部分可以知道是否是同一个电路;若已完成仿真,则首先在缓存中直接找缓存的仿真结果,如该仿真结果还未清理,则直接提交仿真结果,若该仿真结果已清理则重新提交仿真,并标记仿真重复次数放入网表队列;正在仿真则忽略请求并显示正在仿真,未重复未仿真则进入以下排队仿真流程。

仿真排队流程:

有3个队列(列表实现),下表1a包含了可用于仿真的计算机及其相关价系,下表1b包含了待仿真网表的相关信息,下表1c包含了设计师的相关信息:

表1a用于仿真的计算机及其相关价系表

表1b待仿真网表相关信息表

表1c设计师相关信息表

设计师表,所有设计师放入一个列表,每分钟给列表内的设计师加一分,实现方法列表有一个指针,指向列表内某一位设计师,每分钟给指针当前指向的设计师加一分,并移动指针指向下一名设计师,列表内最后一名的下一名是列表中的第一名(采用循环列表的方式)。

对于占用仿真资源的设计师每分钟扣分,在排序时扣分,扣分计算方法:仿真计算机的代价*(1+网表的重复);排队中而未仿真的不占用仿真资源不扣分;排队仿真每分钟进行重新排序,任务每分钟切换一次,切换任务所花的时间相对于一分钟这个时间所占的比例很低,不会影响仿真的效率。每个1分钟的周期结束的时候,所有仿真计算机立刻保存当前的仿真状态。

重新排序方法

队首放至队尾,即除队首外所有仿真队列往前移一位。按网表列表中的优先时间从大到小对网表队列排序,优先时间相同的网表相对排序不调换,例如,网表列表中的优先时间分配规则为:若该仿真任务未进行过仿真则分配优先时间为5.0,占用仿真资源的网表列表每分钟扣分,在排序时扣分,扣分计算方法:仿真计算机的代价*(1+网表的重复),排队中而未仿真的不占用仿真资源不扣分。

尝试在网表队列中依次序找出第一位能够满足第一优先级扣分的队列成员,扣分并放入第一优先级的计算机仿真;尝试在剩余队列中找出第一位能够满足第二优先级的扣分,扣分放入第二优先级的计算机仿真;如此反复直到所有计算机都被安排或无足够扣分的队列成员或队列成员已全部放入仿真计算机。

仿真计算机未被占满时检查剩余队列中积分最高或负分最小队列成员扣分并放入计算机仿真,如此反复直到所有计算机都被安排或等待仿真队列为空,按计算机队列重排仿真队列,如果待仿真队列不为空则增加到队列尾部。分数为负时,一位设计师的扣分到负分后,如果该设计师待仿真网表列表不为空的时候,继续扣分,当该设计师待仿真网表列表中所有仿真结束时负分归零。

任何计算机仿真结束时,后续的队列中的仿真需求立刻前移一位,填补空缺。仿真计算机1秒内没有响应排队计算机的请求则直接认为该计算机暂时离线,不进入当前一轮排序。

其中,设计师随时可以按需终止自己提交的仿真请求,终止的请求直接从网表队列中删除,并由后续的内容补上。

按照上述重新排序方式调整后的三个表如下:

表2a用于仿真的计算机及其相关价系表

表2b待仿真网表相关信息表

表2c设计师相关信息表

因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。

下面请参见图3,图3为本申请实施例所提供的一种仿真请求处理装置的结构框图,本实施例作为对应于上述方法实施例的装置实施例存在,该仿真请求处理装置可以包括:

发起对象确定单元301,被配置成确定待执行的仿真请求的发起对象;

请求执行优先级确定单元302,被配置成根据发起对象的历史仿真请求执行情况,确定发起对象的请求执行优先级;其中,处于执行中状态的发起对象的请求执行优先级将随其仿真请求的执行时长逐渐下降,其它未处于执行中状态的对象的请求执行优先级将随其未执行时长逐渐上升,对象包括有当前发起有仿真请求的仿真对象和当前未发起有仿真请求的未发起对象;

一级/二级仿真请求确定单元303,被配置成根据请求执行优先级,确定一级仿真请求和二级仿真请求;

轮替执行单元304,被配置成以轮替执行的方式执行各一级仿真请求,直至当前不存在一级仿真请求时轮替执行当前的各二级仿真请求。

可选的,该仿真请求处理装置还包括:被配置成控制请求执行优先级发生变化的优先级调整单元,当请求执行优先级采用积分制时,优先级调整单元包括:

扣分子单元,被配置成每当一个仿真请求处于被执行状态预设时长,为相应的发起对象在其当前优先级分值的基础上扣减第一预设分值;

加分子单元,被配置成每当一个仿真请求处于被执行状态预设时长,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加第二预设分值;其中,第一预设分值不小于第二预设分值。

可选的,每扣分子单元被进一步配置成:

每当一个仿真请求处于被执行状态1分钟,为相应的发起对象在其当前优先级分值的基础上扣减1分;

对应的,加分子单元被进一步配置成:

每当一个仿真请求处于被执行状态1分钟,为除相应的发起对象外的其它对象在其当前优先级分值的基础上增加

可选的,当请求执行优先级采用积分制时,一级/二级仿真请求确定单元303可以被进一步配置成:

将对应的请求执行优先级大于0的仿真请求,确定为一级仿真请求;

将对应的请求执行优先级不大于0的仿真请求,确定为二级仿真请求。

可选的,该仿真请求处理装置还包括:

置零单元,被配置成当不存在新的待处理的仿真请求时,将当前所有不大于0的请求执行优先级都置为0。

可选的,该仿真请求处理装置还包括:

相似性分析单元,被配置成针对每次提交的新仿真请求,通过对新仿真请求的构成进行电路相似性分析;

相似性结果处理单元,被配置成当根据电路相似性分析的结果确定之前提交有相同的旧仿真请求,若旧仿真请求处于仿真中状态,返回已有相同仿真请求在仿真的通知信息;若旧仿真请求的仿真结果仍保存在缓存,返回从缓存中查询到的仿真结果;若旧仿真请求的仿真结果已从缓存中被删去,为新仿真请求附加重复仿真标记。

可选的,该仿真请求处理装置还包括:

重复仿真标记处理单元,被配置成针对附加有重复仿真标记的仿真请求,根据重复仿真标记中记录的重复仿真次数,降低相应的发起对象的请求执行优先级。

相比于现有技术,本申请所提供的仿真请求处理装置,不仅通过结合历史仿真请求执行情况动态调节的请求执行优先级来更及时、更合理的调整仿真请求的执行优先级,使得基于试错思想发起仿真请求的情况将拥有更低的执行优先级,而且采用轮替执行各一级仿真请求的方式来从整体上降低了数量较多、运算量较少的仿真请求的仿真等待耗时。

基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random AccessMemory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
技术分类

06120113148798