CN117271096A - 调度方法、电子设备和计算机可读存储介质 - Google Patents
调度方法、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117271096A CN117271096A CN202311330660.1A CN202311330660A CN117271096A CN 117271096 A CN117271096 A CN 117271096A CN 202311330660 A CN202311330660 A CN 202311330660A CN 117271096 A CN117271096 A CN 117271096A
- Authority
- CN
- China
- Prior art keywords
- task
- weight
- scheduling
- queue
- updated
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000004364 calculation method Methods 0.000 claims abstract description 143
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000012163 sequencing technique Methods 0.000 claims abstract description 8
- 230000000875 corresponding effect Effects 0.000 claims description 83
- 230000006870 function Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 19
- 230000002596 correlated effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供一种调度方法,用于自动驾驶数据的处理任务,包括:接收新增的第一任务并确定第一任务的至少一个权重计算参数的值;根据第一任务的至少一个权重计算参数的值以及权重分值表计算得到第一任务的调度权重,并根据任务队列中已有的第二任务的等待时长的值对第二任务的调度权重进行更新;对第一任务的调度权重和第二任务的更新后的调度权重按照从大到小的顺序进行排序,并按照排序结果将第一任务加入任务队列中得到更新后的任务队列;执行更新后的任务队列中位于队首的任务。本公开通过在队列中加入新增任务时利用查询权重分值表的方式计算各任务的调度权重并更新队列顺序,实现任务调度优先级的动态调整,提升自动驾驶数据的处理效率。
Description
技术领域
本公开涉及自动驾驶领域,具体涉及一种调度方法、电子设备和计算机可读存储介质。
背景技术
随着自动驾驶技术的快速发展,自动驾驶中所涉及的功能越来越丰富,对各项功能的精度要求也越来越高。自动驾驶数据是自动驾驶能力成长与迭代的关键原材料,为了利用数据对自动驾驶功能进行评估和改进,通常需要对数据执行各种类型的处理任务。当资源池的计算能力有限时,这些处理任务无法同时执行,通常需要按照提交顺序进行排队等待。
然而,按照提交顺序的确定排队顺序的方式可能导致一些问题,例如提交较晚的高优先级任务无法被优先执行,又例如提交较早的任务需要花费大量执行时间导致其他任务迟迟无法被执行等。这些问题妨碍了计算资源的有效利用,导致数据的处理效率受到限制。
发明内容
为了改善处理任务的排队方式从而提升自动驾驶数据的处理效率,本公开提供一种用于自动驾驶数据的处理任务的调度方法及装置、电子设备、计算机可读存储介质以及计算机程序产品。
本公开的第一方面提供一种调度方法,用于自动驾驶数据的处理任务,该调度方法包括:接收新增的第一任务,并确定第一任务的至少一个权重计算参数的值;根据第一任务的至少一个权重计算参数的值以及权重分值表,计算得到第一任务的调度权重,并根据任务队列中已有的第二任务的等待时长的值以及权重分值表,对第二任务的调度权重进行更新,其中,权重分值表规定有多个权重计算参数以及每个权重计算参数的分值计算规则,多个权重计算参数包括至少一个权重计算参数以及等待时长;对第一任务的调度权重和第二任务的更新后的调度权重按照从大到小的顺序进行排序,并按照排序结果将第一任务加入任务队列中,得到更新后的任务队列;执行更新后的任务队列中位于队首的任务。
在第一方面的一种实现方式中,根据第一任务的至少一个权重计算参数的值以及权重分值表,计算得到第一任务的调度权重,包括:在权重分值表中查询至少一个权重计算参数的分值计算规则,以确定第一任务的各个权重计算参数的值对应的权重分值;根据第一任务的各个权重计算参数的值对应的权重分值,计算得到第一任务的调度权重。
在第一方面的一种实现方式中,至少一个权重计算参数包括人工优先级、数据量、计算量、任务类型、任务来源以及所属功能中的至少一个,其中,人工优先级的值与对应的权重分值正相关;数据量的值与对应的权重分值负相关;计算量的值与对应的权重分值负相关。
在第一方面的一种实现方式中,根据任务队列中已有的第二任务的等待时长的值以及权重分值表,对第二任务的调度权重进行更新,包括:确定第一任务的提交时刻,并根据第一任务的提交时刻确定第二任务的等待时长,其中,第二任务的等待时长的值为第一任务的提交时刻与第二任务的提交时刻之间的时间差;根据第二任务的至少一个权重计算参数的值对应的权重分值,以及第二任务的等待时长的值对应的权重分值,计算得到第二任务的更新后的调度权重。
在第一方面的一种实现方式中,根据任务队列中已有的第二任务的等待时长的值以及权重分值表,对第二任务的调度权重进行更新,包括:确定第一任务的提交时刻,并根据第一任务的提交时刻确定第二任务的等待时长,其中,第二任务的等待时长为第一任务的提交时刻与第二任务的调度权重上一次更新的时刻之间的时间差;根据第二任务的上一次更新后的调度权重,以及第二任务的等待时长的值对应的权重分值,计算得到第二任务的更新后的调度权重。
在第一方面的一种实现方式中,该调度方法还包括:在权重分值表中加入新增的权重计算参数以及新增的权重计算参数对应的分值计算规则,和/或,对权重分值表中的任一权重计算参数的分值计算规则进行更改。
在第一方面的一种实现方式中,执行更新后的任务队列中位于队首的任务,包括:确定更新后的任务队列中位于队首的任务为待处理任务,并确定处理待处理任务所需要的第一资源量;判断资源池中当前是否具备第一资源量;当判断结果为是时,从资源池中调用相应的资源并执行待处理任务;当判断结果为否时,暂不执行待处理任务,并等待资源释放。
在第一方面的一种实现方式中,当判断结果为否时,暂不执行待处理任务,并等待资源释放,包括:在等待预设时长后,再次执行判断资源池中当前是否具备第一资源量的步骤;若判断结果为否,则在等待预设时长后再次进行判断,直至判断结果为是;从资源池中调用相应的资源并执行待处理任务。
在第一方面的一种实现方式中,当判断结果为否时,暂不执行待处理任务,并等待资源释放,包括:在等待预设时长后,重新确定当前更新后的任务队列中位于队首的任务为更新后的待处理任务,并确定处理更新后的待处理任务所需要的更新后的第一资源量;判断资源池中当前是否具备更新后的第一资源量;当判断结果为是时,从资源池中调用相应的资源并执行更新后的待处理任务;当判断结果为否时,暂不执行更新后的待处理任务,并返回执行在等待预设时长后,重新确定当前更新后的任务队列中位于队首的任务为更新后的待处理任务,并确定处理更新后的待处理任务所需要的更新后的第一资源量的步骤。
本公开的第二方面提供一种调度装置,用于自动驾驶数据的处理任务,该调度装置包括:接收模块,用于接收新增的第一任务,并确定第一任务的至少一个权重计算参数的值;计算模块,用于根据第一任务的至少一个权重计算参数的值以及权重分值表,计算得到第一任务的调度权重,并根据任务队列中已有的第二任务的等待时长的值以及权重分值表,对第二任务的调度权重进行更新,其中,权重分值表规定有多个权重计算参数以及每个权重计算参数的分值计算规则,多个权重计算参数包括至少一个权重计算参数以及等待时长;排序模块,用于对第一任务的调度权重和第二任务的更新后的调度权重按照从大到小的顺序进行排序,并按照排序结果将第一任务加入任务队列中,得到更新后的任务队列;执行模块,用于执行更新后的任务队列中位于队首的任务。
本公开的第三方面提供一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序,以实现如本公开第一方面所提供的调度方法。
本公开的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器实现如本公开第一方面所提供的调度方法。
本公开的第五方面提供一种计算机程序产品,该计算机程序产品包括指令,该指令被处理器执行时,使得处理器实现如本公开第一方面所提供的调度方法。
根据本公开提供的用于自动驾驶数据的处理任务的调度方法及装置、电子设备、计算机可读存储介质以及计算机程序产品,在新增任务被提交时触发新增任务的调度权重计算以及已有任务的调度权重更新,从而无需在每次执行调度动作时重新计算队列中所有任务的调度权重并重新确定队列顺序,节省了大量的计算资源,并有效提高了自动驾驶数据的处理效率。此外,本公开利用查询权重分值表的方式实现调度权重的计算,提供易于调整的框架式计算逻辑,无需人工修改计算程序,避免了大量的复杂工序和人力成本的提升。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本公开一实施例提供的调度***的示意图。
图2所示为本公开一实施例提供的调度方法的流程示意图。
图3所示为本公开一实施例中确定第一任务的调度权重的流程示意图。
图4所示为本公开一实施例中对第二任务的调度权重进行更新的流程示意图。
图5所示为本公开另一实施例中对第二任务的调度权重进行更新的流程示意图。
图6所示为本公开一实施例中任务提交时刻的示意图。
图7所示为本公开一实施例中执行任务的流程示意图。
图8所示为本公开另一实施例中执行任务的流程示意图。
图9所示为本公开另一实施例提供的调度方法的流程示意图。
图10所示为本公开一实施例提供的调度装置的结构示意图。
图11所示为本公开一实施例提供的电子设备的示意图。
具体实施方式
下面将结合本公开实施例的附图,对本公开提供的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本公开保护的范围。
自动驾驶技术通过不断的更新和改善正在迅猛发展。为了实现更多的自动驾驶功能,以及对各项功能进行升级,通常需要采集大量的自动驾驶数据(比如摄像头数据、激光雷达数据、地图数据、车辆总线数据等),并通过对这些数据进行处理,对自动驾驶功能的改进环节进行反馈。这些数据不仅包括实际道路采集得到的数据,还包括基于场景模拟仿真***产出的数据等,数据量通常十分庞大,因而数据的处理任务也较多。
为了执行针对自动驾驶数据的处理任务,研发人员通常会根据计算量和计算资源成本等因素建设一个具有有限的计算能力的资源池。当不同的数据处理任务被提交时,均可以利用该资源池执行这些任务。不过,由于资源池的计算能力是有限的,当多个数据处理任务等待执行时,会存在排队的现象。
为了提高数据的处理效率,针对排队的过程,可以设置优先级策略,通过优先级策略确定不同的处理任务的调度权重并进行排序,从而将高优任务置于队首以使其能够被优先执行。相关技术中,优先级策略主要包括按照提交顺序进行排序的先进先出方案以及根据人工指定的优先级进行排序的人工维护方案。然而,先进先出方案中仅考虑了时间上的公平性,忽视了任务的其他影响重要性的因素,可能导致重要或紧急的任务迟迟无法执行;人工维护方案由于依赖人工操作,自动化能力弱且人力成本高,可行性较差。
针对上述问题,本公开的实施例提供了一种调度方法,可应用于自动驾驶数据的处理任务。为了便于理解,下面结合图1,对本公开实施例提供的调度方法的示例性应用场景进行介绍。
图1所示为本公开一实施例提供的一种调度***100的示意图。如图1所示,调度***100可以包括车辆终端110、服务器120、任务生成设备130、优先级判定器140、处理器150以及资源池160。
车辆终端110可以是安装于汽车等自主移动设备中的终端设备,具有自动驾驶功能,可以通过摄像头、激光雷达等设备不断采集实时数据,还可以通过车载监控***收集车辆自身的实时状态数据。或者,车辆终端110也可以是场景模拟仿真***中的虚拟模块,根据输入数据或过程数据生成模拟实际自动驾驶场景的各类实验数据等。
车辆终端110与服务器120可以通信连接,并将采集或生成的自动驾驶数据发送给服务器120,以便研发人员能够利用这些自动驾驶数据实现模型训练、功能调试等各种处理任务。
服务器120可以用于存储车辆终端110发送的自动驾驶数据,并向通信连接的任务生成设备130提供该自动驾驶数据。可选地,服务器120还可以对自动驾驶数据进行基础处理,例如分类、标注等。
任务生成设备130可以与服务器120通信连接,以从服务器120获取自动驾驶数据。任务生成设备130可以包括一个或者多个,例如可以是研发人员所使用的电子设备,供研发人员基于自动驾驶数据建立处理任务;或者,任务生成设备130也可以根据预设的任务生成逻辑自动生成自动驾驶数据的处理任务。在这里,自动驾驶数据的处理任务例如可以包括:仿真测试任务、模型训练任务、模型评估任务、算法训练任务、算法评测任务等。
处理器150能够接收任务生成设备130提交的处理任务,并从资源池160中调用资源,以执行这些处理任务。任务生成设备130提交的处理任务到达处理器150之前,可以先被提交到优先级判定器140。优先级判定器140可以依据预先设置的优先级判定策略,确定不同的处理任务的调度权重并进行排序,从而将高优任务置于队首。处理器150按照队列中从队首至队尾的顺序依次对各处理任务进行资源调度和执行,由此,队首的高优任务能够被优先执行。
应理解,图1所示的调度***100中的车辆终端110、服务器120、任务生成设备130、优先级判定器140、处理器150以及资源池160仅仅是示意性的,数量可以是一个或多个,可以根据实际需要进行设计。此外,服务器120、任务生成设备130、优先级判定器140、处理器150以及资源池160可以集成在同一设备中,也可以分别或分组地设于不同的设备中,本公开对于调度***100的具体实现形态不进行限定。
针对前述问题,在一些方案中,可以利用调度***100中的优先级判定器140设定基于多种影响因素的优先级策略。每当需要从队列中调度任务时,可以分别首先确认队列中的每个任务对应于各影响因素的参数值,并基于这些参数值按照预设的计算规则进行计算,得到队列中所有任务的调度权重,进而从中选择调度权重最大的任务进行调度。采用这种方案,能够在调度任务时将不同的影响因素进行综合考虑,获取各任务的更加全面的调度权重,从而大幅提高数据处理效率。
然而,在这种方案中,每次执行调度时均需要重新计算队列中所有任务的调度权重。如果队列中的任务相对于上次调度时并未发生变化,重新计算后队列中的排序也不会发生变化,由此,这次计算导致了计算资源和时间的浪费。并且,队列中的大多数任务相对于上次调度时可能仅发生了等待时长的变化,而其他影响因素并未发生变化,如果基于所有影响因素重新计算所有任务的调度权重,则进一步加重了浪费问题。
有鉴于此,本公开的实施例提供一种调度方法,旨在解决前文中所述的问题。
图2所示为本公开一实施例提供的一种调度方法的流程示意图。该调度方法例如可以由图1所示的调度***100中的优先级判定器140执行。如图2所示,该方法可以包括如下步骤S210~S250。
步骤S210:接收新增的第一任务,并确定第一任务的至少一个权重计算参数的值。
具体地,新增的第一任务为当前被提交的新增的数据处理任务,该任务需要资源池160为其分配运算资源以执行该任务。第一任务可以为一个独立的任务,也可以由多个子任务构成。当接收到第一任务时,可以依据该第一任务的属性信息,确定第一任务对应于至少一个权重计算参数中每个权重计算参数的值。
其中,权重计算参数可以是能够反映数据处理任务的相关特性的参数,在本公开中,权重计算参数被设置为用于确定每个数据处理任务的优先级权重的影响因素。
可以理解,权重计算参数可以依据实际需求进行设定和更改,本公开实施例对于权重计算参数的具体内容和设定逻辑不进行限定。
步骤S220:根据第一任务的至少一个权重计算参数的值以及权重分值表,计算得到第一任务的调度权重。
其中,权重分值表规定有多个权重计算参数以及每个权重计算参数的分值计算规则。
具体地,在接收到第一任务后,可以先比对第一任务所具有的属性信息与权重分值表中规定的多个权重计算参数,当确定第一任务具有对应于多个权重计算参数中的至少一个权重计算参数时,进一步在权重分值表中查询权重分值表,以确定第一任务对应于该至少一个权重计算参数的值所对应的分值,并根据该分值计算得到第一任务的调度权重。
示例性地,在一实施例中,如图3所示,步骤S220可以如下步骤S310~S320。
步骤S310:在权重分值表中查询至少一个权重计算参数的分值计算规则,以确定第一任务的各个权重计算参数的值对应的权重分值。
在一个具体的示例中,权重计算参数可以包括人工优先级、数据量、计算量、任务类型、任务来源以及所属功能中的至少一个。相应地,权重分值表中规定有这些权重计算参数各自对应的分值计算规则。
例如,在一示例性的应用场景中,可以为自动驾驶数据的处理任务设置如表1所示的权重分值表。
表1:
应当理解,上表中各权重计算参数分值的设置可以以实际业务需求为原则。例如,支持自动驾驶汽车量产项目的任务优先执行、高优先级功能相关的任务优先执行、运算过程复杂的类型的任务优先执行、人工指定高优先级的任务优先执行、计算量小的任务优先执行等。
其中,人工优先级是人为预先指定的任务的优先级。人工优先级的值与对应的权重分值正相关,即人工优先级的值越大,其对应的权重分值越高。如上述表格所示,人工优先级的值可以包括高、中、低,对应的权重计算参数的分值分别为1000、500、0。
例如,当新增的第一任务需要得到紧急处理时,提交该任务的任务生成设备可以把该任务的人工优先级的值设置为“高”,此时该新增任务获得最高的调度权重分值1000。由此,即使该任务的其他参数并不占优势,经过人工优先级的调整,很可能超越其他任务,在队列中排至队首。再例如,当新增的第一任务为非紧急任务时,可以不需要人为干预该任务的优先级,此时可以将该任务的人工优先级设置为默认值“低”,从而该任务对应的权重分值为0。
由此可见,通过引入人工优先级这一权重计算参数,可以在任务调度权重能够自动化动态调整的同时,通过人为干预确保高优先级任务优先执行,从而提升了任务调度的灵活性。可以理解,在另外的示例中,人工优先级也可以设定更多等级,例如1级~5级等,或者还可以指示人工用户直接输入分值。
可选地,数据量的值与对应的权重分值负相关,即数据量的值越大,其对应的权重分值越低。可以理解,数据量越大,所需要的处理时间越长,为了避免重要任务迟迟无法得到处理,可以设置数据量更大的任务相对延迟处理,从而提高队列顺序的调整灵活性。
可选地,计算量的值与对应的权重分值负相关,即计算量越大,其对应的权重分值越低。在这里,计算量可以基于任务类型和数据量推算得到。可以理解,计算量与任务的处理时间正相关,因此,为了避免重要任务迟迟无法得到处理,可以设置计算量更大的任务相对延迟处理,从而提高队列顺序的调整灵活性。
通过引入数据量和计算量这两个负相关的权重计算参数,可以将占用较多运算资源或者占用较长运算时间的数据处理任务的优先级适当降低,从而在一定程度上避免任务队列的堵塞现象。
应理解,上述表格中权重计算参数、权重计算参数的值以及权重计算参数的分值或计算规则可以依据实际情况进行更改,本公开对此不做限制。
步骤S320:根据第一任务的各个权重计算参数的值对应的权重分值,计算得到第一任务的调度权重。
确定各参数对应的权重分值后,可以根据预设的计算逻辑进行计算,以得到第一任务的调度权重。应当理解,计算逻辑可以根据实际需求进行设计,本公开的实施例对此不进行限定。
作为一个具体的实例,结合表1所示的权重分值表,预设的计算逻辑可以设定为下面的公式(1)。
w=(p+q+m)*(c+t)+h (1)
其中,w表示第一任务的调度权重,p表示所属功能对应的权重分值,q表示任务来源对应的权重分值,m表示任务类型对应的权重分值,c表示计算量对应的权重分值,h表示人工优先级对应的权重分值,t表示任务的排队时间对应的权重分值。需要说明的是,由于第一任务为当前被提交的新增任务,因此对于第一任务来说t的取值为0。
上述公式反映了各个权重计算参数对第一任务调度权重的综合贡献情况,不仅考虑了任务自身的优先级,还考虑了人为优先级,最终共同确定了一个合理的调度权重,调度权重的数值越大,则说明该任务的排队优先级越高。
继续参照图2,在步骤S210接收新增的第一任务后,该方法不仅要计算新增的第一任务的调度权重(即步骤S220),还要对队列中已有的任务的调度权重进行更新。具体地,队列中已有的任务的调度权重的更新方式可以包括步骤S230。
步骤S230:根据任务队列中已有的第二任务的等待时长的值以及权重分值表,对第二任务的调度权重进行更新。
在这里,队列中已有的第二任务可以包括一个或多个任务。当队列中存在多个第二任务时,针对每个第二任务执行S230。进一步的,如表1所示,权重分值表中的多个权重计算参数还包括等待时长。
可以理解,从最新的第二任务被提交的时刻至当前时刻(即第一任务被提交的时刻)为止,第二任务除了等待时长以外,所有权重计算参数的值均没有发生过改变。而在最新的第二任务被提交时,所有第二任务都已经具有相应的调度权重。其中,最新的第二任务的调度权重在提交时被计算得到,而其他第二任务(若有)的调度权重在最新的第二任务被提交时被更新。
基于此,在接收到新增的第一任务时,无需对队列中的第二任务完全重新计算调度权重,而可以仅通过在此前已有的调度权重的基础上根据当前的等待时长进行更新,而得到第二任务的当前的调度权重。
作为一种具体的实施方式,如图4所示,步骤S230可以包括如下步骤:
步骤S410:确定第一任务的提交时刻,并根据第一任务的提交时刻确定第二任务的等待时长。
其中,第二任务的等待时长的值为第一任务的提交时刻与第二任务的提交时刻之间的时间差。为方便理解,如图6所示,假设第二任务的提交时刻为t2,第一任务的提交时刻为t1,第二任务的等待时长为△t(单位为分钟),则△t=t1–t2。
步骤S420:根据第二任务的至少一个权重计算参数的值对应的权重分值,以及第二任务的等待时长的值对应的权重分值,计算得到第二任务的更新后的调度权重。
示例性地,结合上述示例中的公式(1),此时任一第二任务的更新后的调度权重可以根据如下公式(2)计算得到。
w=w0+(p+q+m)*(△t) (2)
其中,w0为该第二任务被提交时(即该第二任务当时是新增的第一任务)计算得到的调度权重,结合公式(1)可知,w0=(p+q+m)*(c)+h。
采用这种方式,可以通过较少的计算量得到第二任务更新后的调度权重,避免了大量的重复计算,提高了数据处理效率。
可以理解,根据表1所示的权重分值表,t设置为每等待1分钟对应分值为1分。由于△t的单位为分钟,因此,△t的绝对值即为第二任务的等待时长的值对应的权重分值。公式(2)中的其他参数代表的含义与公式(1)中相同,在此不再赘述。
作为另一种具体的实施方式,如图5所示,步骤S230也可以包括如下步骤:
步骤S510:确定第一任务的提交时刻,并根据第一任务的提交时刻确定第二任务的等待时长。
其中,第二任务的等待时长的值为第一任务的提交时刻与第二任务的调度权重上一次更新的时刻之间的时间差。
其中,第二任务的等待时长的值为第一任务的提交时刻与第二任务的调度权重上一次更新的时刻之间的时间差。为方便理解,如图6所示,假设第二任务的调度权重上一次更新的时刻为t3,第一任务的提交时刻为t1,第二任务的等待时长为△t’(单位为分钟),则△t’=t1–t3。
步骤S520:根据第二任务的上一次更新后的调度权重,以及第二任务的等待时长的值对应的权重分值,计算得到第二任务的更新后的调度权重。
示例性地,结合上述示例中的公式(1),此时任一第二任务的更新后的调度权重可以根据如下公式(3)计算得到。
w=w1+(p+q+m)*△t’ (3)
其中,w1为该第二任务的上一次更新后的调度权重,结合公式(1)可知,w1=(p+q+m)*(c+t)+h,t为自该第二任务的提交时刻起至上一个第一任务(即最新的第二任务)的提交时刻(也就是第二任务的调度权重上一次被更新的时刻)为止的时长对应的分值,△t’为第二任务的等待时长的值对应的权重分值,公式(3)中的其他参数代表的含义与公式(1)中相同,在此不再赘述。
采用这种方式,可以通过较少的计算量得到第二任务更新后的调度权重,避免了大量的重复计算,提高了数据处理效率。
需要注意的是,前述步骤S220和步骤S230不分先后顺序,可以同时执行,也可以先执行步骤S220再执行步骤S230,反之亦然。
步骤S240:对第一任务的调度权重和第二任务的更新后的调度权重按照从大到小的顺序进行排序,并按照排序结果将第一任务加入任务队列中,得到更新后的任务队列。
具体地,若原有的任务队列为空,第一任务加入原有的任务队列后,更新后的任务队列有且只有第一任务;若原有的任务队列不为空,第二任务为原有队列中一个或多个任务,第一任务加入后,步骤S240将第一任务的调度权重和第二任务更新后的调度权重,按照从大到小的顺序排序,并按照排序结果将第一任务加入到任务队列中,调度权重越大,排队位置越靠前,优先级就越高。
也就是说,第一任务加入队列后,排在第一任务之前的任务的调度权重大于或等于第一任务的调度权重,排在第一任务之后的任务的调度权重小于或等于第一任务的调度权重。针对调度权重相等的情况,可以在本公开实施例提供的调度方法的基础上另行设定排序逻辑,本公开实施例对此不进行限定。
步骤S250:执行更新后的任务队列中位于队首的任务。
更新后的任务队列中位于队首的任务可能是第一任务,也可能是第二任务。示例性地,可以利用图1所示的调度***100中的处理器150执行位于队首的任务。
根据本公开提供的用于自动驾驶数据的处理任务的调度方法,在新增任务被提交时触发新增任务的调度权重计算以及已有任务的调度权重更新,从而无需在每次执行调度动作时重新计算队列中所有任务的调度权重并重新确定队列顺序,节省了大量的计算资源,并有效提高了自动驾驶数据的处理效率。此外,本公开利用查询权重分值表的方式实现调度权重的计算,提供易于调整的框架式计算逻辑,无需人工修改计算程序,避免了大量的复杂工序和人力成本的提升。
进一步地,在一种示例性的实施方式中,如图7所示,步骤S250可以包括如下步骤:
步骤S710:确定更新后的任务队列中位于队首的任务为待处理任务,并确定处理待处理任务所需要的第一资源量。
需要说明是,虽然当前任务队列中待处理任务的优先级最高,但是不同的待处理任务所需的运算资源大小不同,如果直接执行该待处理任务,有可能因运算资源不足而导致该待处理任务处理失败,甚至导致更严重的问题出现,比如***挂死或者重启。因此,作为一种实施方式,本公开提供的调度方法会计算资源池中当前空闲的资源量,并将该空闲的资源量与第一资源量做比较,如步骤720所示:
步骤S720:判断资源池中当前是否具备第一资源量。
当判断结果为是时,也就是说,当资源池中当前空闲的资源量大于该待处理任务所需的第一资源量时,可以执行如下步骤S730。
步骤S730:从资源池中调用相应的资源并执行待处理任务。
此时,处理器可以从资源池中调用相应的资源,并执行待处理任务。
反之,当步骤S720的判断结果为否时,也就是说,当资源池中当前空闲的资源量小于该待处理任务所需的第一资源量时,可以执行如下步骤S740。
步骤S740:暂不执行待处理任务,并等待资源释放。
可选地,等待资源池释放足够的资源量时,可以设置一个预设时长。在等待预设时长后,再次执行步骤S720,以重新判断资源池中当前是否具备处理该待处理任务所需的资源量,当判断结果为是时,则直接执行步骤S730以处理该待处理任务;当判断结果为否时,则执行步骤S740以继续等待资源释放。如此反复循环,直到该待处理任务得到正常处理。
可以理解,预设时长的值可以根据实际情况以及经验来设置,如果该预设时长过长,因无法及时判断资源池空余的资源量,会导致资源浪费,从而降低了任务调度效率;如果该预设时长过短,计算资源池中当前空闲的资源量的频率会增大,而计算当前空闲资源量这一步骤本身也会消耗一定的资源量,从而造成资源浪费。
在另一种示例性的实施方式中,考虑到等待资源释放期间队列中可能加入了新增任务从而导致队列中调度权重排序可能会发生变化,为了保证这种情况下高优先级任务总是被最先执行,如图8所示,本公开进一步提供步骤S250的另一种实现方式。
如图8所示,等待资源池释放足够的资源量时,在等待预设的时长后,再次执行步骤S710,以重新确定当前更新后的任务队列中位于队首的任务为待处理任务,并确定处理待处理任务所需要的第一资源量。随后执行步骤S720,以判断资源池中当前是否具备第一资源量。当判断结果为是时,执行步骤S730以执行待处理任务;当判断结果为是时,执行步骤S740以继续等待资源释放,如此反复循环,直到该待处理任务得到正常处理。
需要说明的是,图8与图7的区别仅在于在等待资源释放的过程中,循环执行的步骤不同,其他与图7相同的步骤,可参考图7中的相关说明,在此不再赘述。
为便于理解,下面通过一具体实施例,对本公开提供的调度方法进行举例描述:
假设2023年7月20日18:10:00分,排队队列中新增的第一任务为任务C,任务队列中已有的第二任务分别为任务A和任务B,其中,任务A的提交时间为2023年7月20日18:00:00分,任务B的提交时间为2023年7月20日18:05:00分。
任务A的各项权重计算参数的值及其对应的分值如下表所示:
权重计算参数 | 权重计算参数的值 | 权重计算参数的分值 |
人工优先级 | 低 | 0 |
数据量 | 500GB | 2 |
任务类型 | 训练 | 1 |
计算量 | N/A | 2 |
任务来源 | 非量产项目 | 1 |
所属功能 | 哨兵(车辆侵害报警) | 1 |
等待时长 | 10分钟 | 10 |
其中,任务A的数据量对应的权重分值的计算过程为:1*(1TB/数据量)=1*(1TB/500GB)=2,计算量对应的权重分值为:任务类型分值*数据量分值=1*2=2。
任务B的各项权重计算参数的值及其对应的分值如下表所示:
其中,任务B的数据量对应的权重分值的计算过程为:1*(1TB/数据量)=1*(1TB/100GB)=10,计算量对应的权重分值为:任务类型分值*数据量分值=2*10=20。
任务C的各项权重计算参数的值及其对应的分值如下表所示:
权重计算参数 | 权重计算参数的值 | 权重计算参数的分值 |
人工优先级 | 高 | 1000 |
数据量 | 1TB | 1 |
任务类型 | 训练 | 1 |
计算量 | N/A | 1 |
任务来源 | 非量产项目 | 1 |
所属功能 | AEB(紧急制动) | 2 |
等待时长 | 0分钟 | 0 |
其中,任务C的数据量对应的权重分值的计算过程为:1*(1TB/数据量)=1*(1TB/1TB)=1,计算量对应的权重分值为:任务类型分值*数据量分值=1*1=1。
根据权重分值表以及公式(1),经过计算可得到任务A、B、C的调度权重如下表所示:
由此可见,排队队列中新增任务C后,队列中各任务按照调度权重从大到小的顺序排列后,排队顺序依次为C、B、A,其中C为队首。任务C虽然进来的最晚,但由于人工赋予了最高优先级而排在了队首。任务B由于是服务于量产,而且ANP(自动领航)这一所属功能本身的优先级最高,因此任务B的调度权重超过了任务A,排在了任务A前面。
假设2023年7月20日18:20:00分,又新增了任务D,此时排队队列中新增的第一任务为任务D,任务队列中已有的第二任务分别为任务A、任务B和任务C,其中,任务D的各项权重计算参数的值及其对应的分值如下表所示:
权重计算参数 | 权重计算参数的值 | 权重计算参数的分值 |
人工优先级 | 低 | 0 |
数据量 | 200GB | 5 |
任务类型 | 仿真 | 4 |
计算量 | N/A | 5 |
任务来源 | 非量产项目 | 1 |
所属功能 | 哨兵(车辆侵害报警) | 1 |
等待时长 | 0分钟 | 0 |
其中,任务D的数据量对应的权重分值的计算过程为:1*(1TB/数据量)=1*(1TB/200GB)=5,计算量对应的权重分值为:任务类型分值*数据量分值=1*5=5。
根据权重分值表以及公式(2),经过计算可得知,新增任务D后,任务D的调度权重以及更新后的任务A、B、C的调度权重分别如下表所示:
任务D被提交时,虽然任务类型和数据量都占优势,但由于排队时长为0,因此要排在任务A之后。因此,排队队列中新增任务D后,队列中各任务按照调度权重从大到小的顺序排列后,排队顺序依次为C、B、A、D,其中C位于队首。
可选地,在一种进一步的实施方式中,本公开提供的调度方法还可以具备进一步的灵活性。具体地,在图2所示实施例的基础上,图9所示为本公开另一实施例提供的一种调度方法的流程示意图。应当理解,图9与图2的区别仅在于增加了如下步骤:
S910:在权重分值表中加入新增的权重计算参数以及新增的权重计算参数对应的分值计算规则,和/或,对权重分值表中的任一权重计算参数的分值计算规则进行更改。
需要说明的是,步骤S910与图2中步骤S210~S250的执行顺序关系并不是固定的,并不局限于如图9所示的顺序,例如步骤S910可以在图2中步骤S210之前执行,也可以与S210~S250中任一步骤同时执行或交叉执行,具体的执行顺序可依据实际计算资源和需求适当调整。
基于本实施例提供的调度方法,能够针对需要调整的各权重参数加权策略的情况,对权重分值表进行灵活调整,避免了人工修改计算程序的繁冗操作,有效提高了计算规则的修改效率,降低工作量,从而在提升数据处理效率的同时抑制了人工成本的增加。
综上,根据本公开提供的调度方法,在新增任务被提交时触发新增任务的调度权重计算以及已有任务的调度权重更新,从而无需在每次执行调度动作时重新计算队列中所有任务的调度权重并重新确定队列顺序,节省了大量的计算资源,并有效提高了自动驾驶数据的处理效率。此外,本公开利用查询权重分值表的方式实现调度权重的计算,提供易于调整的框架式计算逻辑,无需人工修改计算程序,避免了大量的复杂工序和人力成本的提升。
图10所示为本公开一实施例提供的调度装置1000的结构示意图。该调度装置1000例如可以设置于图1所示的调度***100中的优先级判定器140中。
如图10所示,调度装置1000可以包括接收模块1010、计算模块1020、排序模块1030以及执行模块1040。
其中,接收模块1010用于接收新增的第一任务,并确定第一任务的至少一个权重计算参数的值;计算模块1020用于根据第一任务的至少一个权重计算参数的值以及权重分值表,计算得到第一任务的调度权重,并根据任务队列中已有的第二任务的等待时长的值以及权重分值表,对第二任务的调度权重进行更新,其中,权重分值表规定有多个权重计算参数以及每个权重计算参数的分值计算规则,多个权重计算参数包括至少一个权重计算参数以及等待时长;排序模块1030用于对第一任务的调度权重和第二任务的更新后的调度权重按照从大到小的顺序进行排序,并按照排序结果将第一任务加入任务队列中,得到更新后的任务队列;执行模块1040用于执行更新后的任务队列中位于队首的任务。
在一些实施例中,计算模块1020可以具体用于:在权重分值表中查询至少一个权重计算参数的分值计算规则,以确定第一任务的各个权重计算参数的值对应的权重分值;根据第一任务的各个权重计算参数的值对应的权重分值,计算得到第一任务的调度权重。
可选地,在一些实施例中,至少一个权重计算参数可以包括人工优先级、数据量、计算量、任务类型、任务来源以及所属功能中的至少一个。其中,人工优先级的值与对应的权重分值正相关;数据量的值与对应的权重分值负相关;计算量的值与对应的权重分值负相关。
在一些实施例中,计算模块1020可以具体用于:确定第一任务的提交时刻,并根据第一任务的提交时刻确定第二任务的等待时长,其中,第二任务的等待时长的值为第一任务的提交时刻与第二任务的提交时刻之间的时间差;根据第二任务的至少一个权重计算参数的值对应的权重分值,以及第二任务的等待时长的值对应的权重分值,计算得到第二任务的更新后的调度权重。
在另一些实施例中,计算模块1020可以具体用于:确定第一任务的提交时刻,并根据第一任务的提交时刻确定第二任务的等待时长,其中,第二任务的等待时长为第一任务的提交时刻与第二任务的调度权重上一次更新的时刻之间的时间差;根据第二任务的上一次更新后的调度权重,以及第二任务的等待时长的值对应的权重分值,计算得到第二任务的更新后的调度权重。
在一些实施例中,调度装置1000还可以包括更改模块,其中,更改模块可以用于:在权重分值表中加入新增的权重计算参数以及新增的权重计算参数对应的分值计算规则,和/或,对权重分值表中的任一权重计算参数的分值计算规则进行更改。
在一些实施例中,执行模块1040可以具体用于:确定更新后的任务队列中位于队首的任务为待处理任务,并确定处理待处理任务所需要的第一资源量;判断资源池中当前是否具备第一资源量;当判断结果为是时,从资源池中调用相应的资源并执行待处理任务;当判断结果为否时,暂不执行待处理任务,并等待资源释放。
在一些实施例中,当判断结果为否时,执行模块1040可以暂不执行待处理任务,并等待资源释放,并在等待预设时长后,再次执行判断资源池中当前是否具备第一资源量的步骤。若判断结果为否,则执行模块1040可以在等待预设时长后再次进行判断,直至判断结果为是时,从资源池中调用相应的资源并执行待处理任务。
在另一些实施例中,当判断结果为否时,执行模块1040可以暂不执行待处理任务,并等待资源释放。在等待预设时长后,执行模块1040可以执行以下操作:重新确定当前更新后的任务队列中位于队首的任务为更新后的待处理任务,并确定处理更新后的待处理任务所需要的更新后的第一资源量;判断资源池中当前是否具备更新后的第一资源量;当判断结果为是时,从资源池中调用相应的资源并执行更新后的待处理任务;当判断结果为否时,暂不执行更新后的待处理任务,并返回执行在等待预设时长后,重新确定当前更新后的任务队列中位于队首的任务为更新后的待处理任务,并确定处理更新后的待处理任务所需要的更新后的第一资源量的步骤。
应理解,上述调度装置1000中的接收模块1010、计算模块1020、排序模块1030以及执行模块1040等的具体操作过程和功能可以参考上述图1至图9任一实施例提供的调度方法和***中的描述,并且,基于这些模块的操作和功能,调度装置1000能够实现图1至图9任一实施例提供的调度方法和***所实现的相应的技术效果,为避免重复,在此不再赘述。
图11所示为本公开一实施例提供的电子设备的示意图。如图11所示,电子设备1100可以包括存储器1110和处理器1120,其中,存储器1110用于存储计算机程序;处理器1120用于执行该计算机程序,以实现图1至图9任一实施例提供的调度方法或步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,使得处理器实现前述任一实施例所提供的调度方法。
本公开实施例还提供一种计算机程序产品,该计算机程序产品包括指令,该指令被处理器执行时,使得处理器实现前述任一实施例所提供的调度方法。
本公开中的调度方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本公开所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备、核心网设备、OAM或者其它可编程装置。
所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘;还可以是半导体介质,例如,固态硬盘。该计算机可读存储介质可以是易失性或非易失性存储介质,或可包括易失性和非易失性两种类型的存储介质。
可以理解,本公开提供的具体的示例均只是为了帮助本领域技术人员更好地理解本公开实施例,而非限制本发明的范围。
可以理解,在本公开中的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
可以理解,本公开中描述的各种实施例,既可以单独实施,也可以组合实施,本公开实施例对此并不限定。
除非另有说明,本公开实施例所使用的所有技术和科学术语与本公开的技术领域的技术人员通常理解的含义相同。本公开中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本公开的范围。本公开所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
可以理解,本公开实施例的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本公开实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本公开的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种调度方法,用于自动驾驶数据的处理任务,其特征在于,包括:
接收新增的第一任务,并确定所述第一任务的至少一个权重计算参数的值;
根据所述第一任务的至少一个权重计算参数的值以及权重分值表,计算得到所述第一任务的调度权重,并根据任务队列中已有的第二任务的等待时长的值以及所述权重分值表,对所述第二任务的调度权重进行更新,其中,所述权重分值表规定有多个权重计算参数以及每个权重计算参数的分值计算规则,所述多个权重计算参数包括所述至少一个权重计算参数以及所述等待时长;
对所述第一任务的调度权重和所述第二任务的更新后的调度权重按照从大到小的顺序进行排序,并按照排序结果将所述第一任务加入所述任务队列中,得到更新后的任务队列;
执行所述更新后的任务队列中位于队首的任务。
2.根据权利要求1所述的调度方法,其特征在于,
所述根据所述第一任务的至少一个权重计算参数的值以及所述权重分值表,计算得到所述第一任务的调度权重,包括:
在所述权重分值表中查询所述至少一个权重计算参数的分值计算规则,以确定所述第一任务的各个权重计算参数的值对应的权重分值;
根据所述第一任务的各个权重计算参数的值对应的权重分值,计算得到所述第一任务的调度权重。
3.根据权利要求1所述的调度方法,其特征在于,
所述至少一个权重计算参数包括人工优先级、数据量、计算量、任务类型、任务来源以及所属功能中的至少一个,其中,
所述人工优先级的值与对应的权重分值正相关;
所述数据量的值与对应的权重分值负相关;
所述计算量的值与对应的权重分值负相关。
4.根据权利要求1-3中任一项所述的调度方法,其特征在于,
所述根据任务队列中已有的第二任务的等待时长的值以及所述权重分值表,对所述第二任务的调度权重进行更新,包括:
确定所述第一任务的提交时刻,并根据所述第一任务的提交时刻确定所述第二任务的等待时长,其中,所述第二任务的等待时长的值为所述第一任务的提交时刻与所述第二任务的提交时刻之间的时间差;
根据所述第二任务的所述至少一个权重计算参数的值对应的权重分值,以及所述第二任务的等待时长的值对应的权重分值,计算得到所述第二任务的更新后的调度权重。
5.根据权利要求1-3中任一项所述的调度方法,其特征在于,
所述根据任务队列中已有的第二任务的等待时长的值以及所述权重分值表,对所述第二任务的调度权重进行更新,包括:
确定所述第一任务的提交时刻,并根据所述第一任务的提交时刻确定所述第二任务的等待时长,其中,所述第二任务的等待时长为所述第一任务的提交时刻与所述第二任务的调度权重上一次更新的时刻之间的时间差;
根据所述第二任务的上一次更新后的调度权重,以及所述第二任务的等待时长的值对应的权重分值,计算得到所述第二任务的更新后的调度权重。
6.根据权利要求1-3中任一项所述的调度方法,其特征在于,还包括:
在所述权重分值表中加入新增的权重计算参数以及所述新增的权重计算参数对应的分值计算规则,和/或,
对所述权重分值表中的任一权重计算参数的分值计算规则进行更改。
7.根据权利要求1-3中任一项所述的调度方法,其特征在于,所述执行所述更新后的任务队列中位于队首的任务,包括:
确定所述更新后的任务队列中位于队首的任务为待处理任务,并确定处理所述待处理任务所需要的第一资源量;
判断资源池中当前是否具备所述第一资源量;
当判断结果为是时,从所述资源池中调用相应的资源并执行所述待处理任务;
当判断结果为否时,暂不执行所述待处理任务,并等待资源释放。
8.根据权利要求7所述的显示方法,其特征在于,所述当判断结果为否时,暂不执行所述待处理任务,并等待资源释放,包括:
在等待预设时长后,再次执行所述判断资源池中当前是否具备所述第一资源量的步骤;
若判断结果为否,则在等待所述预设时长后再次进行判断,直至判断结果为是;
从所述资源池中调用相应的资源并执行所述待处理任务。
9.根据权利要求7所述的显示方法,其特征在于,所述当判断结果为否时,暂不执行所述待处理任务,并等待资源释放,包括:
在等待预设时长后,重新确定当前更新后的任务队列中位于队首的任务为更新后的待处理任务,并确定处理所述更新后的待处理任务所需要的更新后的第一资源量;
判断所述资源池中当前是否具备所述更新后的第一资源量;
当判断结果为是时,从所述资源池中调用相应的资源并执行所述更新后的待处理任务;
当判断结果为否时,暂不执行所述更新后的待处理任务,并返回执行所述在等待预设时长后,重新确定当前更新后的任务队列中位于队首的任务为更新后的待处理任务,并确定处理所述更新后的待处理任务所需要的更新后的第一资源量的步骤。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现权利要求1-9中任一项所述的调度方法。
11.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器实现权利要求1-9中任一项所述的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311330660.1A CN117271096A (zh) | 2023-10-13 | 2023-10-13 | 调度方法、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311330660.1A CN117271096A (zh) | 2023-10-13 | 2023-10-13 | 调度方法、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271096A true CN117271096A (zh) | 2023-12-22 |
Family
ID=89200787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311330660.1A Pending CN117271096A (zh) | 2023-10-13 | 2023-10-13 | 调度方法、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271096A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785487A (zh) * | 2024-02-27 | 2024-03-29 | 融科联创(天津)信息技术有限公司 | 一种算力资源调度方法、装置、设备和介质 |
-
2023
- 2023-10-13 CN CN202311330660.1A patent/CN117271096A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785487A (zh) * | 2024-02-27 | 2024-03-29 | 融科联创(天津)信息技术有限公司 | 一种算力资源调度方法、装置、设备和介质 |
CN117785487B (zh) * | 2024-02-27 | 2024-05-24 | 融科联创(天津)信息技术有限公司 | 一种算力资源调度方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400022A (zh) | 一种资源调度方法、装置及电子设备 | |
US9582326B2 (en) | Quality of service classes | |
US10459915B2 (en) | Managing queries | |
WO2020052301A1 (zh) | 一种资源调度方法及装置 | |
CN110413412B (zh) | 一种基于gpu集群资源分配的方法和装置 | |
CN110570075B (zh) | 一种电力业务边缘计算任务分配方法及装置 | |
CN117271096A (zh) | 调度方法、电子设备和计算机可读存储介质 | |
CN112380020A (zh) | 一种算力资源分配方法、装置、设备及存储介质 | |
KR100731983B1 (ko) | 저전력 무선 디바이스 프로세서용 하드와이어드 스케줄러및 스케줄링 방법 | |
US20220083375A1 (en) | Method and apparatus for scheduling task processing entity | |
WO2020172852A1 (en) | Computing resource scheduling method, scheduler, internet of things system, and computer readable medium | |
CN105677744A (zh) | 一种文件***中提高服务质量的方法和装置 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN113032102A (zh) | 资源重调度方法、装置、设备和介质 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN110941483A (zh) | 一种队列处理方法、装置及设备 | |
CN112559176B (zh) | 一种指令处理方法和装置 | |
CN113177632A (zh) | 一种基于流水线并行的模型训练方法、装置以及设备 | |
CN109358961B (zh) | 一种资源调度方法及其装置和具有存储功能的装置 | |
CN111338803A (zh) | 一种线程处理方法和装置 | |
CN111210286A (zh) | 一种基于税控服务器的***高效开具方法及*** | |
CN114911591A (zh) | 任务调度方法及*** | |
CN116610422A (zh) | 一种任务调度方法、装置和*** | |
CN116394328B (zh) | 排刀控制方法及相关设备 | |
CN115686799B (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 |