一种仿真实验调度方法、系统及计算机可读存储介质与流程

文档序号:31037708发布日期:2022-08-06 03:33阅读:67来源:国知局
一种仿真实验调度方法、系统及计算机可读存储介质与流程

1.本技术涉及仿真实验调度的技术领域,尤其是涉及一种仿真实验调度方法、系统及计算机可读存储介质。


背景技术:

2.为了实现车辆自动驾驶系统,测试是必不可少的一个环节,而非真实车辆环境下进行一些仿真模拟测试,以保证路测的意义最大化,是现在最通用也最实际的测试手段。现有u在进行仿真测试时,单个场景的仿真任务无法支持整个仿真实验的结果,所以仿真过程一般由大量的仿真场景构成,每次仿真实验都需要测试多个场景,即一个仿真实验中常常包含多个仿真任务,一个仿真实验的结果需要等待多个仿真任务的完成,场景数较多的仿真实验会占据系统大量的资源,导致其他仿真任务无法进行,进而导致仿真实验的平均等待时间增加,所以对于仿真平台来说如何调度这些仿真场景以便尽量减少每个仿真实验的等待时间成为一个重要的问题。


技术实现要素:

3.为此,本技术的实施例提供了一种仿真实验调度方法、系统及计算机可读存储介质,能够解决现有仿真实验调度等待时间长的技术问题,具体技术方案内容如下:
4.第一方面,本技术的实施例提供一种仿真实验调度方法,所述方法包括:
5.接收至少两个仿真实验,所述仿真实验内包含至少一个仿真任务;
6.根据仿真实验中未调度的仿真任务计算所述仿真实验的剩余执行时间;
7.根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高;
8.以一个仿真任务为调度单位,按照优先级从高到低调度仿真实验。
9.进一步的,所述仿真任务的执行时间相同,所述根据仿真实验中未调度的仿真任务计算所述仿真实验的剩余执行时间包括:
10.以一个仿真任务为一个单位时间,根据仿真实验未调度的仿真任务数计算所述仿真实验的剩余执行时间。
11.进一步的,所述根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高包括:
12.在调度当前仿真任务完成后,重新更新仿真实验的剩余执行时间;
13.根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高。
14.进一步的,所述方法包括:
15.维护等待队列,所述等待队列按照优先级维护仿真实验的出队顺序。
16.进一步的,所述方法还包括:
17.持续接收仿真实验,动态调整仿真实验的优先级。
18.进一步的,所述方法还包括:
19.若可同时调度至少两个仿真任务,获取仿真实验中的仿真任务所需资源以及当前调度可用资源;
20.根据当前调度可用资源以及剩余执行时间设置仿真实验的优先级。
21.进一步的,所述根据当前调度可用资源以及剩余执行时间设置仿真实验的优先级包括:
22.将仿真任务搭配形成仿真任务组合,所述仿真任务组合包含当前可一次调度的仿真任务数量的仿真任务;
23.计算仿真任务组合调度所需资源;
24.筛选所需资源小于当前调度可用资源的仿真任务组合,以所述仿真任务组合内优先级最高的仿真任务为该仿真任务组合的优先级。
25.进一步的,所述根据当前调度可用资源以及剩余执行时间设置仿真实验的优先级包括:
26.获取当前即将调度的仿真任务,计算当前调度可用资源减去所述即将调度的仿真任务的所需资源后的剩余资源;
27.获取所需资源小于剩余资源的仿真任务,选取所述仿真任务中优先级最高的仿真任务与所述即将调度的仿真任务共同调度。
28.第二方面,本技术的实施例提供一种仿真实验调度系统,所述系统包括:
29.接收模块,用于接收至少两个仿真实验,所述仿真实验内包含至少一个仿真任务;
30.计算模块,用于根据仿真实验中未调度的仿真任务计算所述仿真实验的剩余执行时间;
31.优先级设置模块,用于根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高;
32.调度模块,用于以一个仿真任务为调度单位,按照优先级从高到低调度仿真实验。
33.第三方面,本技术的实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述任意一项所述的仿真实验调度方法的步骤。
34.综上所述,与现有技术相比,本技术实施例提供的技术方案带来的有益效果至少包括:
35.1、在获取到仿真实验之后,通过对仿真实验的剩余执行时间设置优先级,由剩余执行时间越短的仿真任务的优先级越高来设置接收到的仿真实验的优先级,执行时间越短的任务被越早的被执行,这样能优化所有仿真实验的平均等待时间;
36.2、计算剩余执行时间的方式为将所有的仿真任务的执行时间都同一设置为一个单位时间,计算仿真实验的剩余执行时间的时候,可以只计算仿真实验中未被执行的仿真任务的数量,而不需计算仿真任务的实际执行时间,简化计算逻辑,减少获取的数据量;
37.3、在进行仿真任务调度的时候,若可以一次调度多个仿真任务,按照仿真任务的优先级以及所需资源调度,避免可用资源不满足所需资源的情况而导致调度失败的情况。
附图说明
38.图1是本技术其中一实施例提供的一种仿真实验调度方法的流程示意图。
39.图2是本技术另一实施例提供的一种仿真实验调度方法的流程示意图之一。
40.图3是本技术另一实施例提供的一种仿真实验调度方法的流程示意图之二。
41.图4是本技术另一实施例提供的一种仿真实验调度方法的流程示意图之三。
具体实施方式
42.本具体实施例仅仅是对本技术的解释,其并不是对本技术的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本技术的权利要求范围内都受到专利法的保护。
43.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.另外,本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
45.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
46.本技术中术语“至少一个”是指一个或多个,“多个”的含义是指三个或以上,例如,多个第一位置是指三个或以上的第一位置。
47.下面结合说明书附图对本技术实施例作进一步详细描述。
48.参照图1,在本技术的一个实施例中,提供一种仿真实验调度方法,所述方法的主要步骤描述如下:
49.s1:接收至少两个仿真实验,所述仿真实验内包含至少一个仿真任务;
50.s2:根据仿真实验中未调度的仿真任务计算所述仿真实验的剩余执行时间;
51.s3:根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高;
52.s6:以一个仿真任务为调度单位,按照优先级从高到低调度仿真实验。
53.具体的,在本实施例中,一个仿真实验中包含至少一个仿真任务,即一个仿真实验中也可以包含两个或多个仿真任务,一个仿真任务对应一个场景;剩余执行时间为仿真实验被调度完成所需要的时间。
54.在一次调度中,接收到仿真实验,若是在当前调度周期中只有一个仿真实验,则直接调度当前的仿真实验,本技术中的调度方法应用于在一次调度中至少存在两个以上的仿真实验的情况。
55.用户提交仿真实验,调度器接收用户提交的仿真实验,并计算仿真实验的剩余执行时间,具体的,在本实施例中,仿真实验的剩余执行时间可以通过计算仿真实验的未执行的仿真任务的时间计算,在本技术的其他实施方式中,也可以采用其他的计算方式。
56.仿真任务为原子化任务,在调度仿真实验的时候,以仿真任务为调度单位,即每次调度的为仿真实验中的一个仿真任务。
57.在获取到仿真实验之后,通过对仿真实验的剩余执行时间排序,由剩余执行时间越短的仿真任务的优先级越高来设置接收到的仿真实验的优先级,执行时间越短的任务被越早的被执行,这样能优化所有仿真实验的平均等待时间。
58.进一步的,所述方法包括:
59.s7:持续接收仿真实验,动态调整仿真实验的优先级。
60.具体的,s7在整个任务调度期间持续进行,即仿真实验的优先级并不是固定的,在调度中,持续接收用户新提交的仿真实验,且调度器在不断调度仿真任务,被调度的仿真任务的仿真实验的剩余执行时间在减少,通过动态调整仿真实验的优先级,使当前存在的仿真实验中剩余执行时间短的先被执行,进而减少所有仿真实验的等待时间。
61.具体的,在本实施方式中,计算仿真实验中所有未调度的仿真任务的时间为所述仿真实验的剩余执行时间,即计算剩余执行时间时,若某一仿真实验中部分任务已被调度,则以所述仿真实验没有被执行的仿真任务的时间计算剩余执行时间,若存在有另一仿真实验的剩余执行时间小于前述仿真实验的剩余执行时间,则另一仿真实验的优先级高于前述仿真实验。
62.参照图2,可选的,所述仿真任务的执行时间相同,在另一实施方式中,s2为s2’:
63.s2’:以一个仿真任务为一个单位时间,根据仿真实验未调度的仿真任务数计算所述仿真实验的剩余执行时间。
64.在实际使用中,每个仿真任务都是按照一套相同的预设标准截出来的,比如10s、15s这样的数据包,故数据量基本相同,在仿真任务的执行时间相差不大于5秒的时候,则认为仿真任务的执行时间相同,在本实施方式中,计算剩余执行时间的方式为将所有的仿真任务的执行时间都同一设置为一个单位时间,计算仿真实验的剩余执行时间的时候,可以只计算仿真实验中未被执行的仿真任务的数量,而不需计算仿真任务的实际执行时间,简化计算逻辑,减少获取的数据量。
65.参照图3,可选的,在另一实施方式中,s3包括:
66.s31:在调度当前仿真任务完成后,重新更新仿真实验的剩余执行时间;
67.s32:根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高。
68.具体的,在本实施方式中,在调度器调度一个仿真任务给一个仿真服务,且由结果处理器返回仿真结果之后,再更新仿真实验的剩余执行时间,调度结果更为准确。在仿真任务调度过程中有可能调度失败,若是仿真任务调度失败,该仿真任务对应的仿真实验的剩余执行时间需要加上该仿真任务,因此若是在仿真任务调度之后,但没有调度成功的情况下计算剩余执行时间为不准确的。
69.可选的,在另一实施方式中,所述方法还包括:
70.s8:维护等待队列,所述等待队列按照优先级维护仿真实验的出队顺序。
71.具体的,设置等待队列,对仿真实验进行排序,便于调度。
72.参照图4,可选的,在另一实施方式中,所述方法还包括:
73.s4:若可同时调度至少两个仿真任务,获取仿真实验中的仿真任务所需资源以及
当前调度可用资源;
74.s5:根据当前调度可用资源以及剩余执行时间设置仿真实验的优先级。
75.具体的,在本实施例中,在一次调度中,仿真服务可以调度至少两个仿真任务,则在仿真任务调度前获取当前调度可用资源,当前调度可用资源为系统预留给仿真实验的可用资源,比如cpu、gpu等。
76.在按照优先级调度仿真任务时,根据当前调度可用资源来选择要调度的仿真资源,当存在多种选择的时候,按照可调度任务的优先级高来选择。
77.通过本实施方式的设置,在进行仿真任务调度的时候,若可以一次调度多个仿真任务,按照仿真任务的优先级以及所需资源调度,避免可用资源不满足所需资源的情况而导致调度失败的情况。
78.可选的,在另一实施方式中,s5包括:
79.s51:将仿真任务搭配形成仿真任务组合,所述仿真任务组合包含当前可一次调度的仿真任务数量的仿真任务;
80.s52:计算仿真任务组合调度所需资源;
81.s53:筛选所需资源小于当前调度可用资源的仿真任务组合,以所述仿真任务组合内优先级最高的仿真任务为该仿真任务组合中所有仿真实验的优先级。
82.具体的,在本实施方式中,在准备调度仿真任务的时候,根据当前仿真服务一次可调度资源的数量,对所有需要调度的仿真任务进行组合形成仿真任务一次调度组合,在仿真任务一次调度组合中筛选所需资源之和小于当前调度可用资源的仿真任务组合,以仿真任务组合中优先级最高的仿真任务的优先级为仿真组合的优先级。调度时,根据优先级调度仿真任务组合,即仿真任务组合内仿真任务的优先级即为其对应的仿真实验在当前调度周期内的优先级。
83.进一步的,在一次仿真任务组合调度完成并返回结果之后,再次获取当前调度可用资源,并更新仿真任务组合以及仿真任务组合的优先级。
84.可选的,在另一实施方式中,s5包括:
85.s54:获取当前即将调度的仿真任务,计算当前调度可用资源减去所述即将调度的仿真任务的所需资源后的剩余资源;
86.s55:获取所需资源小于剩余资源的仿真任务,选取所述仿真任务中优先级最高的仿真任务与所述即将调度的仿真任务共同调度。
87.具体的,按照预先计算的仿真实验的优先级,调度优先级高的仿真任务时,计算当前调度可用资源减去当前调度的仿真任务之后剩余资源,然后筛选出所需资源小于剩余资源的仿真任务,根据优先级高优先来调度筛选出的仿真任务。通过本实施方式,在进行资源调度的时候,可以充分减少资源浪费,在按照高优先级优先的原则进行合理调度后,也防止资源溢出。
88.以下为本实施例的三种场景:
89.场景一:在静态场景下,仿真实验a、仿真实验b与仿真实验c同时产生,仿真实验a有6个仿真任务,仿真实验b有4个仿真任务,仿真实验c有5个仿真任务,以一个仿真任务为一个单位时间,所以三个仿真实验分别需要消耗6、4、5个单位时间。不失一般性,如果仿真服务一次只能处理一个仿真任务,仿真任务产生时间依次顺序执行的话,每个仿真实验的
等待+执行时间分别是仿真实验a为6各单位时间、仿真实验b为10(6+4)个单位时间、仿真实验c为15(6+4+5)个单位时间,总计31个单位时间。而以本技术的方法进行优先级设置,每个任务的等待加执行时间分别为仿真实验a为15个单位时间、仿真实验b为4个单位时间、仿真实验c为9个单位时间,总计28个单位时间,节省了约10%的时间。
90.场景二:在动态场景下,在调度仿真任务时,陆续有仿真实验产生,仿真实验a先产生且具有6个仿真任务,仿真实验b在对应仿真实验a的第3个仿真任务的时间产生且具有3个仿真任务,仿真实验c在对应仿真任务a的第5个仿真任务的时间产生且具有5个仿真任务。如果仿真服务一次只能处理一个仿真任务,按照他们的生成时间顺序执行的话,每个仿真实验的等待加执行时间分别为6、7、9个单位时间,总计22个单位时间。而以本技术的方法进行优先级设置,每个任务的等待加执行时间分别是仿真实验a为9个单位时间、仿真实验b为3个单位时间、仿真实验c为9个单位时间,总计21个单位时间,节省了1个单位时间。
91.场景三:在动态场景下,一个仿真服务可执行多个仿真任务,仿真实验a先产生且具有6个仿真任务,且仿真实验a中的仿真任务需要消耗40%的cpu资源;仿真实验b在对应仿真实验a的第3个仿真任务的时间产生且具有3个仿真任务,且仿真实验b中的仿真任务要消耗70%的cpu资源;仿真实验c在对应仿真任务a的第5个仿真任务的时间产生且具有5个仿真任务,且仿真实验c中的仿真任务需要消耗50%的cpu资源;如果仿真实验的生成时间顺序执行的话,每个仿真实验的等待加执行时间分别为6、7、8个单位时间,总计21个单位时间。而以本技术的方法进行优先级设置,每个任务的等待加执行时间分别是仿真实验a是9个单位时间、仿真实验b是3个单位时间、仿真实验c是5个单位时间,总计17个单位时间,节省了4个单位时间;仿真实验a执行2个仿真任务,按照优先级后先执行仿真实验b(由于仿真实验b需要70%的资源,无法和仿真实验a共同运行),所以仿真实验b先执行;接着会把仿真实验a执行完,所以仿真实验a是自己的6个单位时间加等待仿真实验b执行的3个时间单位,是9个时间单位;而仿真实验c的资源占用为50%,正好可以和仿真实验a共同运行,所以3号不需要等待可以直接运行,是自身的5个单位时间。
92.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
93.在本技术的一个实施例中,提供一种仿真实验调度系统,该仿真实验调度系统与上述实施例中的仿真实验调度方法一一对应。该仿真实验调度系统包括:
94.接收模块,用于接收至少两个仿真实验,所述仿真实验内包含至少一个仿真任务;
95.计算模块,用于根据仿真实验中未调度的仿真任务计算所述仿真实验的剩余执行时间;
96.优先级设置模块,用于根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高;
97.调度模块,用于以一个仿真任务为调度单位,按照优先级从高到低调度仿真实验。
98.可选的,在另一实施方式中,所述仿真任务的执行时间相同,计算模块还用于以一个仿真任务为一个单位时间,根据仿真实验未调度的仿真任务数计算所述仿真实验的剩余执行时间。
99.可选的,在另一实施方式中,优先级设置模块还用于在调度当前仿真任务完成后,
重新更新仿真实验的剩余执行时间;根据剩余执行时间设置仿真实验的优先级,剩余执行时间越短的仿真实验的优先级越高。
100.可选的,在另一实施方式中,维护等待队列,所述等待队列按照优先级维护仿真实验的出队顺序。
101.可选的,在另一实施方式中,持续接收仿真实验,动态调整仿真实验的优先级。
102.可选的,在另一实施方式中,资源查询模块,用于若可同时调度至少两个仿真任务,获取仿真实验中的仿真任务所需资源以及当前调度可用资源;
103.优先级调节模块,用于根据当前调度可用资源以及剩余执行时间设置仿真实验的优先级。
104.可选的,在另一实施方式中,优先级调节模块还用于将仿真任务搭配形成仿真任务组合,所述仿真任务组合包含当前可一次调度的仿真任务数量的仿真任务;计算仿真任务组合调度所需资源;筛选所需资源小于当前调度可用资源的仿真任务组合,以所述仿真任务组合内优先级最高的仿真任务为该仿真任务组合的优先级。
105.可选的,在另一实施方式中,优先级调节模块还用于获取当前即将调度的仿真任务,计算当前调度可用资源减去所述即将调度的仿真任务的所需资源后的剩余资源;获取所需资源小于剩余资源的仿真任务,选取所述仿真任务中优先级最高的仿真任务与所述即将调度的仿真任务共同调度。
106.上述的仿真实验调度系统各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
107.在本技术的一个实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的仿真实验调度方法步骤。所述计算机可读存储介质包括rom(read-only memory,只读存储器)、ram(random-access memory,随机存取存储器)、cd-rom(compact disc read-only memory,只读光盘)、磁盘、软盘等。
108.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将本技术所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1