一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

仿真任务分配方法、装置、存储介质及集群系统与流程

2023-02-02 01:20:30 来源:中国专利 TAG:


1.本技术涉及自动驾驶领域,尤其涉及一种仿真任务分配方法、装置、存储介质及集群系统。


背景技术:

2.目前,可使用集群系统来进行大规模的自动驾驶仿真作业。其中,集群系统上部署有多个容器。每个容器均被分配有对应的运行资源,使其能够执行该容器对应的容器任务队列中的各个仿真任务。然而,经发明人研究发现,现有技术在大规模的仿真作业中,仿真时间过长,存在仿真效率低的问题。


技术实现要素:

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.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
36.图1为一个实施例中仿真任务分配方法的流程示意图;
37.图2为一个实施例中按照从队头到队尾的次序,遍历所述待分配任务队列中的各个所述待分配仿真任务,直至查询到首个满足所述预设调度规则的待分配仿真任务步骤的流程示意图;
38.图3a为一个实施例中待分配任务队列和容器任务队列的队列示意图之一;
39.图3b为一个实施例中待分配任务队列和容器任务队列的队列示意图之二;
40.图3c为一个实施例中待分配任务队列和容器任务队列的队列示意图之三;
41.图3d为一个实施例中待分配任务队列和容器任务队列的队列示意图之四;
42.图4a为另一个实施例中待分配任务队列和容器任务队列的队列示意图之一;
43.图4b为另一个实施例中待分配任务队列和容器任务队列的队列示意图之二;
44.图4c为另一个实施例中待分配任务队列和容器任务队列的队列示意图之三;
45.图5为一个实施例中仿真任务分配装置的结构示意图。
具体实施方式
46.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.正如背景技术所言,现有技术存在仿真效率低的问题。经发明人研究发现,导致这一问题的原因在于,容器在执行相应的仿真任务之前,需要确保该容器的仿真环境与待执
行的仿真任务所需的仿真环境一致。若容器的仿真仿真环境与仿真任务所需的仿真环境不一致,则需要先对仿真环境进行预处理,使得预处理后的仿真环境与仿真任务所需的仿真环境相同,而后再执行仿真任务。
48.然而,现有的仿真任务分配方法会按照从队头到队尾的次序,依次将待分配任务队列中的各个待分配仿真任务分配给各个容器。每当检测到某个容器对应的容器任务队列未满时,则按照前述顺序,依次将各个待分配仿真任务插入至该容器任务队列中,直至该容器任务队列已满。在这种任务分配方式下,同一容器任务队列中,各个仿真任务所需的仿真环境都具备偶然性,使得容器在每次执行仿真任务之前,都需要对仿真环境进行预处理,大大增加了仿真耗时,降低了仿真效率。
49.为解决前述问题,本技术提供了一种仿真任务分配方法、装置、存储介质及集群系统。通过基于各个待分配仿真任务所对应的环境编码进行任务分配,从而可以尽量令所需仿真环境相同的仿真任务在同一容器任务队列中紧邻排列,进而可节省仿真环境的整体预处理时间,缩短仿真耗时并提高仿真效率。
50.在一个实施例中,本文所述的仿真任务分配方法可以应用于集群系统。集群系统内可部署有至少一个容器,每个容器可被分配有独立的运行资源,从而可利用所分配的运行资源执行仿真任务。可以理解,集群系统内部署的容器数量可以依据实际情况确定,例如依据本次大规模仿真作业的仿真任务总数和/或集群系统的软硬件配置来确定,本技术对此不作具体限制。每个容器的创建、配置和部署等过程均可采用现有技术公开的任意方式来实现,本技术对此不作具体限制。
51.具体而言,集群系统可接收其他设备发送的待分配仿真任务,并将该待分配仿真任务插入至待分配任务队列中,该待分配任务队列可按照各个待分配仿真任务的接收时间来维护各个待分配仿真任务。每个容器均配置有对应的容器任务队列,每个容器任务队列用于维护对应容器所需执行的仿真任务。针对集群系统中的每个容器,该容器用于执行对应的容器任务队列中的各个仿真任务,也即,该容器用于从对应于该容器的容器任务队列中确定待执行的仿真任务,并按照该待执行的仿真任务的任务配置来执行,以实现自动驾驶仿真作业。
52.在分配仿真任务时,集群系统需要按照一定的分配规则,将待分配任务队列中的各个待分配仿真任务,插入到各个容器任务队列中,使得各个待分配仿真任务可以被容器所执行,完成仿真。
53.在一个示例中,除了各个容器外,集群系统还可配置有相应的服务,如通信服务、编码服务和/或调度服务等。其中,通信服务可用于与其他设备进行通信,以接收待分配仿真任务以及发送仿真任务的仿真进度。在接收到待分配仿真任务后,通信服务器还可对存储该待分配仿真任务的任务信息。编码服务可基于任务信息中的环境配置信息进行编码,以生成待分配仿真任务所对应的环境编码。调度服务可用于根据各个待分配仿真任务所对应的环境编码进行任务调度,以将各个待分配仿真任务分配到各个容器对应的容器任务队列中。
54.在一个实施例中,本技术提供了一种任务分配方法,下述实施例以该方法应用于集群系统为例进行说明。如图1所示,该方法具体包括以下步骤:
55.s102:若各个所述容器任务队列中存在未满且非空的第一可分配队列,则获取所
述第一可分配队列的队尾仿真任务所对应的环境编码。
56.其中,第一可分配队列是指未满且非空的容器任务队列。换言之,第一可分配队列中包括至少一个仿真任务,且第一可分配队列的仿真任务总数量小于队列任务上限值。队尾仿真任务是指位于第一可分配队列的队尾的仿真任务。
57.环境编码可用于唯一地标识各个仿真环境,也即,相同仿真环境对应相同的环境编码,不同仿真环境对应不同的环境编码。可以理解,仿真环境的具体构成元素可以依据实际情况确定,包括但不限于仿真车辆的车型、仿真时的驾驶地区、仿真模块的配置参数和评分模块的配置参数等。
58.具体地,集群系统可以对个容器任务队列进行监测,以确定各个容器任务队列中是否存在非空且未满的容器任务队列,若是,则将该容器任务队列作为第一可分配任务队列。例如,集群系统可以检测各个容器任务队列的空满状态,并根据各个容器任务队列的空满状态,判断各个容器任务队列中是否存在第一可分配任务队列。又如,集群系统可监测每个容器的任务执行状态,每当监听到某个容器执行完当前执行的仿真任务时,则可根据该容器对应的容器任务队列的仿真任务总数量判断其是否为第一可分配队列。
59.若各个容器任务队列中存在第一可分配任务队列,则集群系统可获取该第一可分配任务队列的队尾仿真任务所对应的环境编码。由于同一容器任务队列中的各个仿真任务无法再抢占,各个仿真任务的执行顺序固定,因此,集群系统可依据队尾仿真任务所对应的环境编码来确定对应于第一可分配队列的容器在执行完当前第一可分配队列中各个仿真任务后的仿真环境。
60.s104:遍历各个待分配仿真任务,直至查询到首个满足预设调度规则的待分配仿真任务;所述预设调度规则为待分配仿真任务对应的环境编码与所述队尾仿真任务对应的环境编码相同,或所述待分配仿真任务对应的任务权重大于或等于当前权重阈值。
61.其中,待分配仿真任务是指未进入容器任务队列的仿真任务。每个待分配仿真任务都具备其对应的任务权重,任务权重的具体数值可以依据实际情况确定。例如,任务权重的具体数值可以根据待分配仿真任务的优先级、预计执行耗时和/或被抢占次数来确定,本技术对此不作具体限制。
62.具体而言,在为第一可分配队列分配仿真任务的过程中,集群系统可以按照预设的遍历次序遍历各个待分配仿真任务。在当前遍历的待分配仿真任务所对应的任务权重小于当前权重阈值,且当前遍历的待分配仿真任务与队尾仿真任务对应着不同的环境编码的情况下,集群系统可按照预设的遍历次序更新当前遍历的待分配仿真任务,并判断当前遍历的待分配仿真任务是否满足预设调度规则,并重复执行前述步骤,直至当前遍历的待分配仿真任务与队尾仿真任务对应着相同的环境编码或者当前遍历的待分配仿真任务所对应的任务权重大于或等于当前权重阈值。
63.可以理解,前述遍历次序可以依据实际需要来确定,例如根据各个待分配仿真任务的预计执行耗时的时间长短来确定,或者采用预设的遍历算法来实现,本技术对此不作具体限制。
64.s106:将所述首个满足预设调度规则的待分配仿真任务插入至所述第一可分配队列的队尾。
65.通过将首个满足预设调度规则的待分配仿真任务插入到第一可分配队列的队尾,
从而可通过第一可分配队列所对应的容器执行该首个满足预设调度规则的待分配仿真任务,实现仿真任务的分配。
66.本技术中,集群系统可判断各个容器任务队列中是否存在非空且未满的第一可分配队列,若是,则获取位于该第一可分配队列队尾的仿真任务(即队尾仿真任务)所对应的环境编码。集群系统可依据该队尾仿真任务所对应的环境编码,对各个待分配仿真任务进行遍历,以从各个待分配仿真任务中确定首个环境编码与队尾仿真任务对应的环境编码相同的待分配仿真任务,或者首个任务权重大于或等于当前任务权重的待分配仿真任务,并将所确定的待分配仿真任务分配至第一可分配队列中,以实现任务分配。如此,可以尽量令所需仿真环境相同的仿真任务在同一容器任务队列中紧邻排列,从而可节省仿真环境的整体预处理时间,进而能缩短仿真耗时并提高仿真效率。
67.在一个实施例中,各个所述待分配仿真任务按照任务接收时间的先后次序存储于所述集群系统的待分配任务队列中。其中,任务接收时间是指集群系统接收到待分配仿真任务的时刻。集群系统可基于各个待分配仿真任务的任务接收时间来维护待分配任务队列。针对待分配任务队列中的任意两个待分配仿真任务而言,靠近队头的待分配仿真任务的任务接收时间先于靠近队尾的待分配仿真任务的任务接收时间。
68.所述遍历各个待分配仿真任务,直至查询到首个满足预设调度规则的待分配仿真任务的步骤,包括:按照从队头到队尾的次序,遍历所述待分配任务队列中的各个所述待分配仿真任务,直至查询到首个满足所述预设调度规则的待分配仿真任务。
69.具体而言,由于待分配任务队列是按照任务接收时间的先后次序来维护各个待分配仿真任务的,因此,为保证集群系统能够尽可能优先分配先接收到的待分配仿真任务,集群系统可按照从队头到队尾次序遍历待分配任务队列,直至当前遍历的待分配仿真任务与队尾仿真任务对应着相同的环境编码或者当前遍历的待分配仿真任务所对应的任务权重大于或等于当前权重阈值。如此,对于任意两个所需仿真环境相同的待分配仿真任务而言,先接收到的待分配仿真任务的分配时刻可以早于后接收到的待分配仿真任务的分配时刻,从而可降低长时间处于等待调度状态的待分配仿真任务数量,提高用户体验。
70.在一个实施例中,所述按照从队头到队尾的次序,遍历所述待分配任务队列中的各个所述待分配仿真任务,直至查询到首个满足所述预设调度规则的待分配仿真任务的步骤,包括:
71.将所述待分配任务队列的队头待分配仿真任务作为当前遍历任务;
72.若当前遍历任务所对应的任务权重小于当前权重阈值,且当前遍历任务所对应的环境编码不同于所述队尾仿真任务所对应的环境编码,则上调当前遍历任务所对应的任务权重,并按照从队头到队尾的次序,将下一待分配仿真任务作为当前遍历任务,直至查询到首个满足所述预设调度规则的待分配仿真任务。
73.其中,队头待分配仿真任务是指位于待分配任务队列的队头的待分配仿真任务。
74.具体而言,在当前遍历任务所对应的任务权重小于当前权重阈值,且当前遍历任务所对应的环境编码不同于队尾仿真任务所对应的环境编码时,表明在本次任务分配中,当前遍历任务将不会被分配,任务接收时间晚于当前遍历任务的待分配仿真任务将会先于当前遍历任务被分配,也即,当前遍历任务被抢占。在此情况下,集群系统可上调当前遍历任务所对应的任务权重,使得当前遍历任务所对应的任务权重与当前遍历任务的被抢占次
数成正相关,被抢占次数越多,则任务权重越大。若当前遍历任务所对应的任务权重大于或等于当前权重阈值,则表明当前遍历任务的被抢占次数不小于次数阈值,在此情况下,可优先分配当前遍历任务,以避免当前遍历任务长时间处于等待调度状态,将每个待分配仿真任务的任务分配时间都控制在一定的时间范围内。
75.在其中一个实施例中,如图2所示,集群系统可执行以下步骤:
76.s202:将待分配任务队列的队头待分配仿真任务作为当前遍历任务。
77.s204:判断当前遍历任务所对应的任务权重是否小于当前权重阈值,及当前遍历任务所对应的环境编码是否不同于第一可分配队列的队尾仿真任务所对应的环境编码。若当前遍历任务所对应的任务权重小于当前权重阈值,且当前遍历任务所对应的环境编码与第一可分配队列的队尾仿真任务所对应的环境编码不同,则进入s206;若当前遍历任务所对应的任务权重大于或等于当前权重阈值,或者当前遍历任务所对应的环境编码与第一可分配队列的队尾仿真任务所对应的环境编码相同,则进入s208。
78.s206:上调当前遍历任务所对应的任务权重,并按照从队头到队尾的次序,将下一待分配仿真任务作为当前遍历任务,且进入s204。在一个示例中,在上调任务权重时,集群系统可以将当前遍历任务所对应的任务权重q调整为(q 1)。
79.s208:将当前遍历任务作为待分配任务队列中首个满足预设调度规则的待分配仿真任务。
80.本实施例中,任务权重可反映待分配仿真任务的被抢占次数,集群系统可结合待分配仿真任务的被抢占次数和环境编码来进行任务分配,从而可将每个待分配仿真任务的任务分配时间都控制在一定的时间范围内,进而可提高用户体验。
81.在一个实施例中,所述方法还包括:若各个所述容器任务队列中存在队列为空的第二可分配队列,则将所述待分配任务队列的队头待分配仿真任务插入至所述第二可分配队列的队头。
82.其中,第二可分配队列是指队列为空的容器任务队列,换言之,第二可分配队列中不存在仿真任务。队头待分配仿真任务是指位于待分配任务队列的队头的待分配仿真任务。
83.对于队列为空的容器任务队列,则表明容器任务队列所对应的容器有可能处于空闲状态,无论待执行的仿真任务所需的仿真环境如何,容器都需要预处理仿真环境,而后再执行待执行的仿真任务。因此,集群系统可以将待分配任务队列的队头待分配仿真任务加入到第二可分配队列中。在将队头待分配仿真任务加入到第二可分配队列之后,该容器任务队列非空,若该容器任务队列未满,则其可作为第一可分配队列,并按照本文其他实施例所述步骤进行任务分配。如此,可优先分配先接收到的待分配仿真任务,以可降低长时间处于等待调度状态的待分配仿真任务数量,提高用户体验。
84.例如,请参阅图3a、图3b、图3c和图3d,集群系统中配置有一个容器,容器任务队列的队列任务上限值为2,当前权重阈值为2。待分配任务队列包括仿真任务a、仿真任务b、仿真任务c和仿真任务d。其中,仿真任务a对应的环境编码为编码a,其对应的任务权重为1。仿真任务b对应的环境编码为编码b,其对应的任务权重为1。仿真任务c对应的环境编码为编码a,其对应的任务权重为1。仿真任务d对应的环境编码为编码a,其对应的任务权重为1。
85.如图3a和图3b所示,容器在初始时处于空闲状态,容器任务队列为空,此时,可将
仿真任务a加入至容器任务队列中。在将仿真任务a加入至容器任务队列后,此时,容器任务队列非空且未满,集群系统可依次从仿真任务b、仿真任务c和仿真任务d中确定下一个加入至容器任务队列的仿真任务。由于仿真任务b所对应的任务权重小于当前权重阈值,且仿真任务b所对应的环境编码不同于仿真任务a所对应的环境编码,因此,可将仿真任务b所对应的任务权重加一,并判断仿真任务c是否满足预设调度条件。由于仿真任务c所对应的环境编码与仿真任务a所对应的环境编码相同,因此,如图3c所示,可将仿真任务c加入至容器任务队列中。
86.如图3d所示,在仿真任务a执行完毕后,集群系统按照从队头到队尾的顺序,查找各个待分配仿真任务。由于仿真任务b所对应的任务权重大于或等于当前权重阈值,因此,仿真任务d无法抢占,集群系统将仿真任务b加入至容器任务队列中。
87.在一个实施例中,所述待分配仿真任务所对应的任务权重与该待分配仿真任务的被抢占次数成正相关,也即,对于每个待分配仿真任务而言,该待分配仿真任务的被抢占次数越多,则其对应的任务权重越大。
88.在所述将所述首个满足预设调度规则的待分配仿真任务插入至所述第一可分配队列的队尾的步骤之后,还包括:
89.获取预设的等待任务数量区间;
90.根据各个所述待分配仿真任务所对应的任务权重,确定任务权重大于初始权重的待分配任务数量;所述初始权重为待分配仿真任务的被抢占次数为零时对应的任务权重;
91.若基于所述待分配任务数量与所述等待任务数量区间,确定需要调整当前权重阈值,则调整当前权重阈值,以使所述待分配任务数量在经过至少一次仿真任务分配后落入至所述等待任务数量区间内。
92.具体而言,在一些情况下,在当前权重阈值的作用下,待分配任务队列中会存在多个被抢占的待分配仿真任务,导致待分配任务队列中存在过多的被抢占待分配仿真任务,导致一些待分配仿真任务需要经过较长时间方可分配至容器任务队列中。或者,在当前权重阈值的作用下,待分配任务队列中存在过少的被抢占待分配仿真任务,导致容器需要较为频繁地对仿真环境进行预处理。
93.为确保待分配任务队列中,被抢占的待分配仿真任务的任务数量(即待分配任务数量)尽可能地维持在一个范围内,在本技术中,集群系统可根据待分配任务数量与预设的等待任务数量区间之间的关系,动态调整当前权重阈值,使得各个被抢占的待分配仿真任务能够动态获得更高或更低的优先级。
94.具体地,由于待分配仿真任务所对应的任务权重与该待分配仿真任务的被抢占次数成正相关,因此,对于每个待分配仿真任务而言,若该待分配仿真任务所对应的任务权重大于被抢占次数为零时所对应的初始权重,则表明该待分配仿真任务的被抢占次数至少为一次,该待分配仿真任务属于被抢占的待分配仿真任务。因此,集群系统可以根据各个待分配仿真任务所对应的任务权重,确定待分配任务队列中被抢占的待分配仿真任务的任务数量,即待分配任务数量。
95.在获取到任务权重大于初始权重的待分配任务数量后,集群系统可以根据该待分配任务数量与等待任务数量区间,判断是否需要调整当前权重阈值。在其中一个实施例中,集群系统可以判断待分配任务数量是否落入等待任务数量区间内,并得到判断结果,依据
该判断结果判断是否需要调整当前权重阈值。
96.若需要调整,则集群系统可以调整当前权重阈值。集群系统依据调整后的当前权重阈值进行仿真任务分配,可以令任务权重大于初始权重的待分配任务数量更为靠近或落入至预设的等待任务数量区间内,进而能使被抢占的待分配仿真任务的任务个数尽可能地维持在合理区间内,以提高用户体验。
97.在一个实施例中,所述若基于所述待分配任务数量与所述等待任务数量区间,确定需要调整当前权重阈值,则调整当前权重阈值的步骤,包括:
98.若所述待分配任务数量小于所述等待任务数量区间的下限值,则上调当前权重阈值;
99.若所述待分配任务数量大于所述等待任务数量区间的上限值,则下调当前权重阈值。
100.具体而言,等待任务数量区间可以包括一下限值和一上限值,其中,下限值是指等待任务数量区间的最小取值,上限值是指等待任务数量区间的最大取值。集群系统可以判断该待分配任务数量是否小于下限值,若是,则表明待分配任务队列中存在过少的被抢占待分配仿真任务,因此,可上调当前权重阈值,即增大当前权重阈值的数值,以降低各个被抢占的待分配仿真任务的优先级。若该待分配任务数量大于上限值,则表明待分配任务队列中存在过多的被抢占待分配仿真任务,因此,可下调当前权重阈值,即减小当前权重阈值的值,使得各个被抢占的待分配仿真任务能够动态获得更高优先级。
101.可以理解,本实施例中所述的“下调”和“上调”均可采用任务方式来实现,本技术对此不作具体限制。在一个示例中,集群系统可以根据预设的调整步长来调整当前权重阈值,以调整步长等于1为例,在每次上调当前权重阈值时,集群系统可以将当前权重阈值t更新为(t 1)。在每次下调当前权重阈值时,集群系统可以将当前权重阈值t更新为(t-1)。
102.例如,请参阅图4a、图4b和图4c,集群系统中配置有一个容器,容器任务队列的队列任务上限值为2,当前权重阈值为1,等待任务数量区间为[1,2]。待分配任务队列包括仿真任务e、仿真任务f、仿真任务g和仿真任务h。其中,仿真任务e对应的环境编码为编码a,其对应的任务权重为1。仿真任务f对应的环境编码为编码b,其对应的任务权重为1。仿真任务g对应的环境编码为编码a,其对应的任务权重为1。仿真任务h对应的环境编码为编码b,其对应的任务权重为1。
[0103]
如图4a和图4b所示,容器在初始时处于空闲状态,容器任务队列为空,此时,可将仿真任务e加入至容器任务队列中。在将仿真任务e加入至容器任务队列后,由于仿真任务f所对应的任务权重大于或等于当前权重阈值,因此,仿真任务f无法被抢占,集群系统将仿真任务f加入至容器任务队列中。由于仿真任务g和仿真任务h所对应的任务权重均为初始权重,因此,当前任务权重大于初始权重的待分配任务数量为0。由于该待分配任务数量小于等待任务数量区间的下限值,因此,集群系统将当前权重阈值上调至2。
[0104]
如图4c所示,在仿真任务e执行完毕后,集群系统按照从队头到队尾的顺序,查找各个待分配仿真任务。由于仿真任务g所对应的任务权重小于当前权重阈值,且仿真任务g所对应的环境编码不同于仿真任务f所对应的环境编码,因此,集群系统将仿真任务h加入至容器任务队列中,并将仿真任务g所对应的任务权重上调至2。在此情况下,当前任务权重大于初始权重的待分配任务数量为1,落入等待任务数量区间,因此,当前权重阈值保持不
变,使得仿真任务g在下次分配中被分配。
[0105]
在一个实施例中,本技术的仿真任务分配方法还包括:
[0106]
每当接收到待分配仿真任务时,获取接收到的待分配仿真任务的环境配置信息;
[0107]
基于所述环境配置信息,生成所述接收到的待分配仿真任务所对应的环境编码;
[0108]
将初始权重作为所述接收到的待分配仿真任务所对应的任务权重,所述初始权重为待分配仿真任务的被抢占次数为零时对应的任务权重。
[0109]
其中,环境配置信息是指仿真环境的配置信息,包括但不限于仿真车辆的车型、仿真时的驾驶地区、仿真模块的配置参数和评分模块的配置参数等参数的任意组合。
[0110]
具体而言,集群系统可接收其他设备发送的待分配仿真任务,并在接收到待分配仿真任务的情况下,依据该待分配仿真任务的环境配置信息,生成该待分配仿真任务所对应的环境编码。可以理解,环境编码的具体获取方式也可依据实际情况确定,本技术对此不作具体限制。例如,可预先为各个环境配置信息设置对应的环境编码,并根据待分配仿真任务的环境配置信息进行查表,以得到待分配仿真任务所对应的环境编码。又如,集群系统可以将待分配仿真任务的环境配置信息作为输入信息输入到编码器中,并得到编码器输出的环境编码。
[0111]
此外,集群系统还可将被抢占次数为零时对应的初始权重作为该待分配仿真任务所对应的任务权重,以配置该待分配仿真任务的初始信息。在其中一个实施例中,在确定了接收到的待分配仿真任务所对应的环境编码和任务权重后,集群系统可以将该待分配仿真任务插入到待分配任务队列中。
[0112]
下面对本技术实施例提供的仿真任务分配装置进行描述,下文描述的仿真任务分配装置与上文描述的仿真任务分配方法可相互对应参照。
[0113]
在一个实施例中,本技术还提供了一种仿真任务分配装置300,该装置300可应用于集群系统中,所述集群系统部署有至少一个容器,每个所述容器用于执行该容器对应的容器任务队列中的各个仿真任务。如图5所示,该装置300包括队尾环境编码获取模块310、遍历模块320和任务插入模块330。其中:
[0114]
队尾环境编码获取模块310,用于在各个所述容器任务队列中存在未满且非空的第一可分配队列的情况下,获取所述第一可分配队列的队尾仿真任务所对应的环境编码;
[0115]
遍历模块320,用于遍历各个待分配仿真任务,直至查询到首个满足预设调度规则的待分配仿真任务;所述预设调度规则为待分配仿真任务对应的环境编码与所述队尾仿真任务对应的环境编码相同,或所述待分配仿真任务对应的任务权重大于或等于当前权重阈值;
[0116]
任务插入模块330,用于将所述首个满足预设调度规则的待分配仿真任务插入至所述第一可分配队列的队尾。
[0117]
在一个实施例中,各个所述待分配仿真任务按照任务接收时间的先后次序存储于所述集群系统的待分配任务队列中。遍历模块320包括队列遍历单元,队列遍历单元用于按照从队头到队尾的次序,遍历所述待分配任务队列中的各个所述待分配仿真任务,直至查询到首个满足所述预设调度规则的待分配仿真任务。
[0118]
在一个实施例中,队列遍历单元包括遍历任务确定单元及任务权重调整单元。其中,遍历任务确定单元用于将所述待分配任务队列的队头待分配仿真任务作为当前遍历任
务。任务权重调整单元用于若当前遍历任务所对应的任务权重小于当前权重阈值,且当前遍历任务所对应的环境编码不同于所述队尾仿真任务所对应的环境编码,则上调当前遍历任务所对应的任务权重,并按照从队头到队尾的次序,将下一待分配仿真任务作为当前遍历任务,直至查询到首个满足所述预设调度规则的待分配仿真任务。
[0119]
在一个实施例中,任务插入模块330还用于在各个所述容器任务队列中存在队列为空的第二可分配队列的情况下,将所述待分配任务队列的队头待分配仿真任务插入至所述第二可分配队列的队头。
[0120]
在一个实施例中,所述待分配仿真任务所对应的任务权重与该待分配仿真任务的被抢占次数成正相关。仿真任务分配装置300还包括区间获取模块、任务数量确定模块和权重阈值调整模块。区间获取模块用于获取预设的等待任务数量区间。任务数量确定模块用于根据各个所述待分配仿真任务所对应的任务权重,确定任务权重大于初始权重的待分配任务数量;所述初始权重为待分配仿真任务的被抢占次数为零时对应的任务权重。权重阈值调整模块用于在基于所述待分配任务数量与所述等待任务数量区间,确定需要调整当前权重阈值的情况下,调整当前权重阈值,以使所述待分配任务数量在经过至少一次仿真任务分配后落入至所述等待任务数量区间内。
[0121]
在一个实施例中,权重阈值调整模块包括第一调整单元和第二调整单元。其中,第一调整单元用于在所述待分配任务数量小于所述等待任务数量区间的下限值的情况下,上调当前权重阈值。第二调整单元用于在所述待分配任务数量大于所述等待任务数量区间的上限值的情况下,下调当前权重阈值。
[0122]
在一个实施例中,仿真任务分配装置300还包括配置信息获取模块、编码生成模块和任务权重确定模块。其中,配置信息获取模块用于每当接收到待分配仿真任务时,获取接收到的待分配仿真任务的环境配置信息。编码生成模块用于基于所述环境配置信息,生成所述接收到的待分配仿真任务所对应的环境编码。任务权重确定模块用于将初始权重作为所述接收到的待分配仿真任务所对应的任务权重,所述初始权重为待分配仿真任务的被抢占次数为零时对应的任务权重。
[0123]
在一个实施例中,本技术还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任意实施例所述仿真任务分配方法的步骤。
[0124]
在一个实施例中,本技术还提供了一种集群系统。所述集群系统中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任意实施例中所述仿真任务分配方法的步骤。
[0125]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本文中,“一”、“一个”、“所述”、“该”和“其”也可以包括复数形式,除非上下文清楚指出另外的方式。多个
是指至少两个的情况,如2个、3个、5个或8个等。“和/或”包括相关所列项目的任何及所有组合。
[0126]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0127]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献