CN115080212A - 一种任务的调度方法、装置、设备及存储介质 - Google Patents
一种任务的调度方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115080212A CN115080212A CN202210771504.8A CN202210771504A CN115080212A CN 115080212 A CN115080212 A CN 115080212A CN 202210771504 A CN202210771504 A CN 202210771504A CN 115080212 A CN115080212 A CN 115080212A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- processed
- processing
- target
- 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 128
- 238000012545 processing Methods 0.000 claims abstract description 534
- 230000008569 process Effects 0.000 claims abstract description 49
- 238000012549 training Methods 0.000 claims description 159
- 238000002372 labelling Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 11
- 238000012423 maintenance Methods 0.000 abstract description 9
- 230000002349 favourable effect Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 239000000463 material Substances 0.000 description 7
- 235000012054 meals Nutrition 0.000 description 4
- 230000009286 beneficial effect Effects 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
- 238000005516 engineering process Methods 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000010411 cooking Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 235000013550 pizza Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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示出了本申请实施例提供的一种计算机设备900的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
目前,以餐饮业务场景为例,餐饮业务场景下落地的不同种类的计算机视觉模型用于执行不同的模型应用任务(如,上述的识别菜品生熟程度、识别菜品用料齐全程度等),并且在实际应用之前,不同的计算视觉模型还需要基于不同的标注样本数据来执行各自的模型训练任务。此时,由于不同的模型应用任务以及不同的模型训练任务都需要基于硬件资源(如,处理器、计算机等硬件资源)来实现,因此,每个独立的业务场景处需要落地的硬件资源是十分庞大的。
基于此,本申请实施例提供了一种任务的调度方法、装置、设备及存储介质,通过调度节点接收多个任务提交节点提交的待处理任务;根据待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与待处理任务的任务数量相匹配的目标任务调度策略;按照目标任务调度策略,从多个任务处理节点中,为接收到的每个待处理任务分配用于处理该待处理任务的目标任务处理节点。
这样,本申请通过任务调度的方式,为每一个独立的任务提交节点提交的待处理任务分配能够执行该处理任务的硬件资源,以在任务调度过程中,节约每个任务提交节点对应的用户终端处需要落地的硬件资源,有利于减轻任务调度过程中消耗的运维成本,提高了对待处理任务的调度效率。
下面对本申请实施例提供的一种任务的调度方法、装置、设备及存储介质进行详细介绍。
参照图1所示,图1示出了本申请实施例所提供的一种任务的调度方法的流程示意图,所述调度方法应用于调度节点;所述调度方法包括步骤S101-S103;具体的:
S101,接收多个任务提交节点提交的待处理任务。
这里,待处理任务包括:目标业务场景下的模型训练任务和/或所述目标业务场景下的模型应用任务;任务提交节点用于表征目标业务场景下的用户终端;其中,上述待处理任务对应的具体模型类型可以基于目标业务场景下的实际业务需求确定;上述任务提交节点表征的用户终端的具体终端类型包括但不限于手机、电脑、平板等电子终端设备。
具体的,当目标业务场景为餐饮业务场景时,餐饮业务场景中的业务需求可以包括:识别菜品生熟程度(如,判断当前出餐的牛排为几分熟、判断当前出餐的菜品的生熟程度是否符合出菜条件等)、识别菜品用料齐全程度(如,判断当前制作的披萨面皮上的撒料是否均匀、判断当前出餐的菜品中是否包含菜单中备注的全部用料等);此时,调度节点可以接收多个任务提交节点(如不同餐饮门店处的用户终端)提交的模型训练任务(如训练模型学习识别输入图像数据中菜品的生熟程度的模型训练任务、训练模型学习识别输入图像数据中菜品用料齐全程度的模型训练任务等)和/或提交的模型应用任务(如将当前菜品的图像数据输入至训练好的模型中,以求得到模型输出的针对当前菜品的生熟程度的识别结果等模型应用任务)。
具体的,当目标业务场景为办公业务场景时,办公业务场景中的业务需求可以包括:识别员工着装是否符合公司规范(如,判断当前员工是否穿着的是员工制服、判断当前员工是否佩戴有工牌等)、识别办公桌椅摆放是否合规(如,判断当前过道中是否违规摆放有多余桌椅、判断当前办公桌面上是否摆放有违规物品等)此时,调度节点可以接收多个任务提交节点(如不同办公部门处的用户终端)提交的模型训练任务(如训练模型学习识别输入图像数据中员工着装是否符合公司规范的模型训练任务、训练模型学习识别输入图像数据中办公桌椅摆放是否合规的模型训练任务等)和/或提交的模型应用任务(如将当前员工的图像数据输入至训练好的模型中,以求得到模型输出的针对当前员工的着装是否符合公司规范的识别结果等模型应用任务)。
需要说明的是,对于目标业务场景的具体业务类型、上述待处理任务对应的具体模型类型以及上述任务提交节点表征的用户终端的具体终端类型,本申请实施例不作任何限定。
S102,根据接收到的所述待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略。
这里,任务调度性能与所述任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量相关。
在本申请实施例中,调度节点和任务处理节点可以是终端设备(如,电脑、平板等电子终端设备)也可以是服务器,调度节点中预先存储有多个任务调度策略;其中,所述多个任务调度策略用于根据当前接收到的待处理任务的任务数量以及当前可调度的硬件资源(即多个任务处理节点中处于空闲状态的空闲处理节点的节点数量)之间的数量差距,对当前接收到的待处理任务进行分级调度。
具体的,在上述分级调度的过程中,不同任务调度策略对应的任务调度性能不同,其中,任务调度性能越高的任务调度策略对应的调度等级越高,此时,针对当前接收到的多个待处理任务,优先按照调度等级越高的任务调度策略进行调度,以在任务调度的过程中,提高对待处理任务的调度效率。
需要说明的是,任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量越少,则该任务调度策略的任务调度性能越高,该任务调度策略对应的调度等级也越高。例如,若任务调度策略A中每个空闲处理节点只需要处理1个待处理任务(相当于此时空闲处理节点的数量较为充足,可以对接收到的全部待处理任务进行并行处理),任务调度策略B中x1空闲处理节点只需要处理1个待处理任务,而还有x2个空闲处理节点需要各自处理y个待处理任务形成的任务队列(相当于此时空闲处理节点的数量并不充足,因此,需要x1个空闲处理节点对接收到的待处理任务进行并行处理,需要另外x2个空闲处理节点对于接收到的待处理任务进行串行处理);此时,可以确定任务调度策略A的任务调度性能高于任务调度策略B,若当前接收到的待处理任务数量小于空闲处理节点的节点数量(即上述任务调度策略A和任务调度策略B都可以完成对当前接收到待处理任务的调度),则调度节点可以优先按照上述任务调度策略A对当前接收到的待处理任务进行任务调度。
S103,按照所述目标任务调度策略,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
这里,任务处理节点可以是终端设备(如,电脑、平板等电子终端设备)也可以是服务器,每个任务处理节点处都包括多种可用硬件资源,例如,任务处理节点处可以包括:完成图像处理类模型的模型训练任务所需的GPU(graphics processing unit,图形处理器)资源、完成模型训练过程中数据处理与分析任务所需的CPU(central processing unit,中央处理器)资源等。
需要说明的是,任务处理节点与任务提交节点不同(即同一终端设备不会同时作为任务处理节点和任务提交节点出现),也即,任务处理节点并不需要落地于目标业务场景下;例如,仍以餐饮场景作为目标业务场景为例,则任务提交节点可以是不同餐饮门店处的用户终端,而任务处理节点则可以是远程的云服务终端或者云服务器,此时,任务处理节点并不位于餐饮门店中。
基于此,在本申请实施例中,在不需要区分待处理任务的具体任务内容的条件下,调度节点可以只按照目标任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量(即目标任务调度策略的任务调度性能),为多个任务处理节点中的空闲处理节点分配相应数量的待处理任务;也即,针对每个空闲处理节点而言,无论该空闲处理节点被分配到处理何种待处理任务,该空闲处理节点处的硬件资源都可以满足待处理任务的任务处理需求;从而,可以节约每个任务提交节点对应的用户终端处需要落地的硬件资源,有利于减轻任务调度过程中消耗的运维成本。
为了更加清晰的体现本申请实施例中上述步骤S101-S103的实施细节,下面以餐饮场景作为目标业务场景为例,对上述步骤S101-S103的实施细节,进行详细的介绍:
首先,多个任务提交节点以及多个任务处理节点与上述调度节点共同组成了用于执行上述步骤S101-S103所述的任务的调度方法的完整的任务调度系统,在执行上述步骤S101-S103所述的任务的调度方法之前,每个任务提交节点以及每个任务处理节点都预先与调度节点之间建立有通信连接(如无线网络通信连接、有线网络通信连接等),以使得任务提交节点能够向调度节点提交待处理任务,调度节点能够接收任务提交节点提交的待处理任务,调度节点也能够向任务处理节点分发待处理任务,并接收任务处理节点反馈的待处理任务的任务处理结果,从而,调度节点也可以将得到的任务处理结果发送给相应的的任务提交节点,完成对待处理任务的任务调度。
具体的,在本申请实施例中,每个任务处理节点都可以按照以下步骤a1-步骤a3所示的可选实施方式,完成与调度节点之间的通信初始化过程,以便调度节点能够更加便捷高效的完成对待处理任务的任务调度:
步骤a1、基础镜像准备,其中,基础镜像中包括:离线训练镜像(用于通过调用接口向调度节点提交模型训练任务,并接收调度节点反馈的模型训练任务的任务处理结果)以及在线服务镜像(用于通过调用接口向调度节点提交模型应用任务,并接收调度节点反馈的模型应用任务的任务处理结果)。
这里,具体在任务提交节点(如餐饮场景下不同餐饮门店处的用户终端)一侧,每个任务提交节点都可以基于Docker容器技术构建目标业务场景下各个模型的训练基础镜像、推理基础镜像(即用于通过调用接口向调度节点提交模型应用阶段任务的镜像),并要求规范统一各个目标业务场景下模型训练接口的调用方式。其中,针对上述训练基础镜像,模型训练数据、配置文件、输出结果、输入日志文件等都可以通过挂载方式,供训练基础镜像调用,从而形成用于打包发送的待处理任务。
步骤a2、任务提交节点将上述步骤a1中准备好的基础镜像注册到调度节点中,以便基础镜像与调度节点之间能够进行数据通信,从而支持不同的基础镜像向调度节点发送不同类型的待处理任务。
示例性的说明,以任务提交节点a为例,任务提交节点a中的离线训练镜像和在线服务镜像均注册到调度节点中,此时,以离线训练镜像为例,任务提交节点a中的离线训练镜像可以将计算机视觉模型的模型训练数据(如,多张不同菜品的图像数据)、标注样本数据(如,基于图像中菜品的生熟程度进行标注的标注样本数据、基于图像中菜品的用料齐全程度进行标注的标注样本数据等)等数据打包作为待处理任务发送给调度节点,以使调度节点能够从多个任务提交节点中,确定出能够用于完成该待处理任务的空闲处理节点。
步骤a3、每个任务处理节点与调度节点之间保持通信,支持调度节点对每个任务处理节点进行任务分配与资源调度。
这里,在任务处理节点与调度节点一侧,在调度节点确定目标任务调度策略后,任务处理节点一侧可以基于docker-java库内的API(Application Programming Interface,应用程序接口)管理docker镜像,创建并启动模型训练基础容器和/或模型应用基础容器,以执行模型训练任务和/或模型应用任务,并更新任务处理过程中的硬件资源利用情况以及任务处理进度等任务相关信息。同时任务处理节点一侧还可以抓取容器运行情况,并异步更新任务处理进度,并在任务处理结束后记录相关模型训练指标、训练日志等任务处理结果,并释放相关容器资源。
具体的,在本申请实施例中,针对任务提交节点一侧,还需要说明的是:
考虑到任务提交节点提交的待处理任务中可能包括模型训练任务,并且基于实际业务场景中遇到的业务需求逐渐增多,任务提交节点一侧模型的升级频率要求也会随之加快;基于此,在本申请实施例中,调度节点一侧可以支持任务提交节点通过定时任务触发的方式提交模型训练任务,还可以支持任务提交节点通过消息通知型触发的方式提交模型训练任务。这样,任务提交节点一侧的用户终端只需要关注模型训练数据的标注质量,然后,通过定时任务触发/消息通知型触发的方式根据最新标注的标注样本数据以及历史标注样本数据,即可主动更新优化模型的训练效果。其中,在训练基础镜像中,还可以基于NAS(Neural Architecture Search,神经网络架构搜索技术)等技术,选择最优深度模型网络结构作为模型训练任务中指定的任务训练模型,从而使得提交的模型训练任务的任务完成结果(如,模型训练后的各项完成指标等)达到用户预期,解决目标业务场景下不断更新升级的实际业务需求。
针对上述步骤S101的具体实施过程,调度节点可以接收任务提交节点提交的模型训练任务,也可以接收任务提交节点提交的模型应用任务,此时,针对模型应用任务,由于模型应用任务是针对一个已经训练好的模型的具体应用任务(相当于模型应用任务中模型的输出结果所表征的物理含义是确定的,例如,模型应用任务可以是将当前菜品的图像数据输入至训练好的模型中,以求得到模型输出的针对当前菜品的生熟程度的识别结果),因此,当接收到的待处理任务属于模型应用任务时,调度节点可以直接将该模型应用任务作为一个独立的待处理任务分配至一个独立的空闲处理节点中进行处理。
而针对模型训练任务,考虑到针对同一训练数据,可以基于不同类型的标注样本数据,来训练模型学习解决不同类型的业务需求;因此,当接收到的待处理任务属于模型训练任务时,除将待处理任务作为一个独立的待处理任务分配至一个独立的空闲处理节点中进行处理的调度方式之外,还可以根据接收到的待处理任务中包括的标注样本数据的种类,将待处理任务拆分为多个不同的子任务,以将每个子任务作为独立的待处理任务分配至不同的空闲处理节点中进行处理,从而使得每个子任务的任务处理结果可以对应解决一种特定类型的业务需求,有利于提高对模型训练任务的任务调度效率。
在一种可选的实施方式中,参照图2所示,图2示出了本申请实施例所提供的一种对模型训练任务进行拆分式任务调度的方法的流程示意图,该方法包括步骤S201-S202;具体的:
S201,针对每一所述模型训练任务,根据该模型训练任务中包括的不同标注类型的标注训练样本,将该模型训练任务拆分成多个模型训练子任务。
在本申请实施例中,作为一可选实施例,任务提交节点在提交模型训练任务作为待处理任务时,可以将训练样本数据以及基于不同的模型训练目的而采用不同的标注方式对该训练样本数据进行标注后得到的多种标注训练样本同时作为一个模型训练任务提交至调度节点中;此时,需要说明的是:提交的模型训练任务用于表征该待处理任务中包含的上述训练样本数据以及上述多种标注训练样本用于模型训练过程(相当于与其他任务提交节点提交的模型应用任务进行任务类型上的区分),而并不用于表征携带有某个指定模型训练目标的具体模型训练任务。
这里,每一所述模型训练子任务对应一种标注类型的标注训练样本,也即,基于提交的模型训练任务并未指定具体使用多种标注训练样本中的哪一种标注训练样本对模型进行训练(即提交的模型训练任务中并未携带有某个指定的模型训练目标),并且每种标注训练样本的标注类型(也即标注训练样本的具体标注方式)是根据每种具体的模型训练目的得到的,因此,针对任务提交节点提交的模型训练任务,调度节点可以根据该模型训练任务中包括的不同标注类型的标注训练样本,将该模型训练任务拆分成多个模型训练子任务,从而,将每个模型训练子任务作为一个独立的待处理任务进行调度处理,以达到使用同一训练样本数据,对用于完成不同模型训练任务的模型同时进行模型训练的目的,有利于提高针对模型训练任务的任务处理效率。
S202,将每一所述模型训练子任务作为一个独立的所述待处理任务进行调度处理。
这里,以餐饮场景作为目标业务场景为例,针对上述步骤S201-S202所示的模型训练任务拆分方式进行详细说明如下:
具体的,在餐饮场景中,任务提交节点在提交模型训练任务时,提交的训练样本数据可以是:在菜品完成之后,针对菜品进行拍摄之后得到的菜品图像数据;此时,可以基于不同的模型训练目的对该训练样本数据进行标注,从而得到提交的多种标注训练样本。例如,针对同一菜品图像数据,当标注训练样本是基于图像中菜品的生熟程度进行标注后得到的标注训练样本a时,则可以基于标注训练样本a训练模型学习输出针对输入图像数据中菜品的生熟程度进行识别的模型输出结果,以解决餐饮场景下识别菜品生熟程度的业务需求;当标注训练样本是基于图像中菜品的用料齐全程度进行标注后得到的标注训练样本b时,则可以基于标注训练样本b训练模型学习输出针对输入图像数据中菜品中是否包含菜单中备注的全部用料进行识别的模型输出结果,以解决餐饮场景下识别菜品的用料齐全程度的业务需求。
示例性的说明,若当前接收到任务提交节点提交的待处理任务A属于模型训练任务,且该待处理任务A中包括上述菜品图像数据、上述标注训练样本a以及上述标注训练样本b;则调度节点通过执行上述步骤S201-S202,可以将待处理任务A拆分为:模型训练子任务A1(其中,模型训练子任务A1中包括上述菜品图像数据以及上述标注训练样本a)和模型训练子任务A2(其中,模型训练子任务A2中包括上述菜品图像数据以及上述标注训练样本b),此时,若任务处理节点中的空闲处理节点数量较为充足(如,空闲处理节点的数量大于待处理任务的任务数量),则调度节点可以将拆分后的模型训练子任务A1发送至空闲处理节点p1进行任务处理,以通过空闲处理节点p1处的硬件资源(如GPU资源、CPU资源等)训练模型学习输出针对输入图像数据中菜品的生熟程度进行识别的模型输出结果(即在空闲处理节点p1处完成对模型训练子任务A1的任务处理);将拆分后的模型训练子任务A2发送至空闲处理节点p2进行任务处理,以通过空闲处理节点p2处的硬件资源(如GPU资源、CPU资源等)训练模型学习输出针对输入图像数据中菜品中是否包含菜单中备注的全部用料进行识别的模型输出结果(即在空闲处理节点p2处完成对模型训练子任务A2的任务处理)。
针对上述步骤S102的具体实施过程,以预设的任务调度策略的数量是3个为例,在利用预设的三个任务调度策略对待处理任务进行分级调度时,参照图3所示,图3示出了本申请实施例所提供的第一种确定目标任务调度策略的方法的流程示意图,该方法包括步骤S301-S304;具体的:
S301,计算所述多个任务处理节点中处于空闲状态的空闲处理节点的节点数量与所述待处理任务的任务数量之间的数量差值。
需要说明的是,在本申请实施例中,根据实际的任务调度需求,调度节点可以将未分配有待处理任务的任务处理节点确定为上述处于空闲状态的空闲处理节点;也可以将分配的待处理任务数量低于预设阈值的任务处理节点确定为上述处于空闲状态的空闲处理节点;对于上述空闲状态的具体定义方式,本申请实施例不作任何限定。
具体的,在调度节点处,上述空闲处理节点的节点数量相当于“当前可调度的硬件资源”的数字化表征值,上述待处理任务的任务数量则相当于“当前需要进行任务调度的负载压力”的数字化表征值;此时,调度节点通过计算上述数量差值,可以得到上述“负载压力”与上述“可调度硬件资源”之间的数字化的具体表征值,从而根据计算出的数量差值的大小,来从预设的多个任务调度策略中,确定出任务调度性能满足上述“负载压力”与上述“可调度硬件资源”之间平衡条件的目标任务调度策略,以使得按照目标任务调度策略对当前接收到的待处理任务进行任务调度时,能够满足基本的任务调度需求(如每个待处理任务的任务等待时间均小于预设等待时长等)。
S302,当所述数量差值属于非负数时,从预设的多个任务调度策略中,确定第一任务调度策略作为所述目标任务调度策略。
这里,第一任务调度策略用于表征利用空闲处理节点对接收到的每个所述待处理任务同时进行并行处理的任务调度策略。
具体的,当计算出的上述数量差值属于非负数时,则表示当前处于空闲状态的空闲处理节点的节点数量大于或者等于当前接收到的待处理任务的任务数量;此时,可以按照第一任务调度策略,将接收到的每个待处理任务随机分配给任意一个空闲处理节点进行处理,从而,实现对于接收到的每个待处理任务同时进行并行处理的任务调度效果。
示例性的说明,若空闲处理节点的节点数量为20个,当前接收到的待处理任务的任务数量为10个,则可以从20个空闲处理节点中随机抽取10个空闲处理节点,并为抽取出的每个空闲处理节点分配一个待处理任务,以使得空闲处理节点能够对当前接收到的10个待处理任务同时进行并行处理,提高对待处理任务的任务处理效率。
S303,当所述数量差值属于负数且所述数量差值的绝对值小于或者等于第一预设阈值时,从预设的多个任务调度策略中,确定第二任务调度策略作为所述目标任务调度策略。
这里,第二任务调度策略用于表征利用目标数量的空闲处理节点对接收到的所述待处理任务进行并行处理,利用除所述目标数量之外的剩余数量的空闲处理节点对接收到的所述待处理任务进行串行处理的任务调度策略。
具体的,当计算出的上述数量差值属于负数时,则表示当前处于空闲状态的空闲处理节点的节点数量小于当前接收到的待处理任务的任务数量(即无法按照上述第一任务调度策略进行任务调度);此时,上述数量差值的绝对值越大则表示可用的空闲处理节点的数量越少,也即,每个空闲处理节点需要处理的待处理任务越多,基于此,通过比较上述数量差值的绝对值与第一预设阈值之间的大小关系,当上述数量差值的绝对值小于或者等于第一预设阈值时,即可确定第二任务调度策略作为目标任务调度策略(相当于可以选择少量的空闲处理节点仍然只负责处理一个待处理任务,而为剩余的空闲处理节点分配多个待处理任务)。
需要说明的是,上述第一预设阈值的具体取值可以根据实际的任务调度需求进行自定义调整,对于上述第一预设阈值的具体取值,本申请实施例不作任何限定。
在本申请实施例中,当确定目标任务调度策略为上述第二任务调度策略时,在步骤S303中,至少可以按照以下3种不同的可选方式,来确定用于对接收到的待处理任务进行并行处理的所述目标数量的空闲处理节点,具体的:
可选方式1、按照预设的目标数量,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点。
可选方式2、从待处理任务一侧,基于不同难易程度的待处理任务对应的任务处理时间不同(如,任务难度系数低的待处理任务需要的任务处理时间较短,而任务难度系数高的待处理任务则需要更长的时间进行处理),可以按照以下步骤b1-b2来确定目标数量的空闲处理节点,具体的:
步骤b1、根据每个所述待处理任务的预测处理时间,从接收到的全部待处理任务中,确定所述预测处理时间大于预设处理时间阈值的待处理任务作为所述第二任务调度策略中需要进行并行处理的第一待处理任务。
步骤b2、以所述第一待处理任务的任务数量作为所述目标数量,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点。
可选方式3、根据每个任务处理节点的任务处理效率,按照优先抽取任务处理效率低的任务处理节点的方式,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,优先抽取得到所述目标数量的空闲处理节点。
这里,考虑到不同任务处理节点的任务处理效率可能存在不同,例如,硬件资源性能越高的任务处理节点(如GPU处理器的型号越先进则该任务处理节点的硬件资源性能越高),其对应的任务处理效率也越高(如,针对同一待处理任务,任务处理效率高的任务处理节点其处理任务所需花费的时间越少);因此,通过上述可选方式3的实施,调度节点可以优先为任务处理效率较低的任务处理节点分配较少的待处理任务,而为其他任务处理效率相对较高的任务处理节点去分配更多的待处理任务,从而,有利于缩短同一批次接收的待处理任务的任务完成总时长,提高整体的任务调度效率。
S304,当所述数量差值属于负数且所述数量差值的绝对值大于所述第一预设阈值时,从预设的多个任务调度策略中,确定第三任务调度策略作为所述目标任务调度策略。
这里,所述第三任务调度策略用于表征利用空闲处理节点对接收到的所述待处理任务全部进行串行处理的任务调度策略。
具体的,当计算出的上述数量差值属于负数时,则表示当前处于空闲状态的空闲处理节点的节点数量小于当前接收到的待处理任务的任务数量(即无法按照上述第一任务调度策略进行任务调度);此时,上述数量差值的绝对值越大则表示可用的空闲处理节点的数量越少,也即,每个空闲处理节点需要处理的待处理任务越多,基于此,通过比较上述数量差值的绝对值与第一预设阈值之间的大小关系,当上述数量差值的绝对值大于第一预设阈值时,即可确定第三任务调度策略作为目标任务调度策略(相当于为每一个空闲处理节点都分配多个待处理任务)。
针对上述步骤S101-S103的具体实施过程,在按照上述步骤S101-S103所述的任务调度方式已经可以满足目标业务场景下的基础任务调度需求,在此基础上,为了满足目标业务场景下对于任务调度的更高需求,本申请实施例还提供了如下所示的进阶版调度方案以及高阶版调度方案,具体的:
针对进阶版调度方案,在上述步骤S101-S103所述的基础版任务调度方案的基础上,进阶版调度方案中新增有“周期式任务调度”的步骤,也即,按照预设的周期长度,对任务调度时间进行分段,从而在每个调度周期开始进行任务调度之前,预先对下一调度周期的流量(相当于下一调度周期接收到的待处理任务的任务数量)进行预测,以便能够根据预测出的下一调度周期的流量值的高低,对当前调度周期内可调度的空闲处理节点的节点数量进行调整,从而达到在流量高峰期扩充硬件资源(即增加空闲处理节点),在流量低谷期适当缩减硬件资源(如减少空闲处理节点/不改变空闲处理节点数量)的动态调整结果,有利于进一步节约任务调度系统内的可用硬件资源,减轻任务调度过程中消耗的运维成本。
在上述进阶版调度方案中,接收多个任务提交节点提交的待处理任务包括:在当前调度周期内接收所述多个任务提交节点提交的待处理任务;此时,参照图4所示,图4示出了本申请实施例所提供的一种从多个任务处理节点中,确定出在当前调度周期内处于空闲状态的目标空闲处理节点的方法的流程示意图,该方法包括步骤S401-S403;具体的:
S401,将上一调度周期内统计得到的历史流量数据输入至预先训练好的流量预测模型中,得到所述流量预测模型输出的针对下一调度周期的流量预测结果。
这里,所述流量预测结果用于表征针对下一调度周期内接收到的待处理任务的任务数量预测结果。
具体的,以预设的周期长度是10分钟为例,则在当前调度周期(如13:00-13:10对应的调度周期)开始进行任务调度之前,可以将上一调度周期(即12:50-13:00对应的调度周期)累计接收到的待处理任务的任务数量换算为相应的历史流量数据,并将该历史流量数据输入至预先训练好的流量预测模型中,得到流量预测模型输出的针对下一调度周期(即13:10-13:20对应的调度周期)的流量预测结果。
这里,作为一可选实施例,本申请实施例可以使用开源python库内的Prophet微框架来构建上述流量预测模型,同时设置在线服务资源安全阈值,以保障任务调度过程中所需在线服务的稳定。
S402,根据针对下一调度周期的所述流量预测结果,对按照第一调度策略在所述下一调度周期内进行任务调度所需要的空闲处理节点的节点数量进行预测,得到针对所述下一调度周期的节点预测结果。
这里,所述第一调度策略用于表征任务调度性能与所述流量预测结果相匹配的任务调度策略;其中,第一调度策略的具体确定方式可以参照上述步骤S102的具体实施过程,重复之处在此不再赘述。
S403,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,去除所述节点预测结果表征的节点数量的空闲处理节点,将剩余的空闲处理节点作为当前调度周期内处于空闲状态的目标空闲处理节点。
具体的,调度节点通过执行上述步骤S401-S403,以通过划分调度周期的方式对任务调度时间进行分段,在每个调度周期开始进行任务调度之前,利用流量预测模型对下一调度周期的流量进行预测,其中,流量预测模型输出的是:下一个调度周期的流量预测结果(相当于预测出下一个调度周期大概会有多少需要调度的待处理任务);然后,根据流量预测结果去预估出在当前调度周期内需要预留出来的任务调度资源(即上述节点预测结果表征的节点数量的空闲处理节点);然后,在当前调度周期内,从可用的空闲处理节点中把预留的那一部分的空闲节点减去,得到当前调度周期内实际可调度的空闲处理节点(即上述目标空闲处理节点),从而,在当前调度周期内,利用上述目标空闲处理节点,为当前调度周期内接收到的待处理任务进行任务调度。
需要说明的是,在上述进阶版调度方案中,针对当前调度周期,在按照上述步骤S401-S403所述的方法确定出当前调度周期内处于空闲状态的目标空闲处理节点之后,只需将上述步骤S102中所述的“多个任务处理节点中处于空闲状态的空闲处理节点”适应性地替换为上述步骤S401-S403确定出的“当前调度周期内处于空闲状态的目标空闲处理节点”即可;当前调度周期内上述进阶版调度方案中的其他任务调度方式仍与上述步骤S101-S103所述的具体调度方式相同,重复之处在此不再赘述。
针对高阶版调度方案,在上述步骤S101-S103所述的基础版任务调度方案的基础上,与上述步骤S102中目标任务调度策略的方式不同的是,在高阶版调度方案中,调度节点中包含内置算法,以整体耗时最短来优化待处理任务组成的任务队列,从而根据任务属性、历史时刻硬件资源调度情况,结合当下硬件资源储备情况(即空闲处理节点的储备情况)以及任务提交情况,来动态调整任务队列中各待处理任务的任务处理优先级、以及针对待处理任务进行串行处理/并行处理的处理机制(如上述步骤S102中所示的多个分级调度的任务调度策略)等,以在保障当下以及未来硬件资源调度平稳过渡的同时,达到任务处理整体耗时最短的目的,从而极大限度的提高了对待处理任务的调度效率。
在上述高阶版调度方案中,在接收多个任务提交节点提交的待处理任务之后,参照图5所示,图5示出了本申请实施例所提供的第二种确定目标任务调度策略的方法的流程示意图,该方法包括步骤S501-S502;具体的:
S501,将接收到的所述待处理任务的任务数量、每一所述待处理任务的任务属性、历史同一接收时段内所述任务处理节点的占用信息以及当前接收时段处于空闲状态的空闲处理节点的节点数量输入至目标算法模型中,以任务调度结果符合每一所述待处理任务的任务属性要求作为输出约束条件,以对接收到的每一所述待处理任务进行任务调度的整体耗时最短作为输出目标,得到所述目标算法模型输出的针对所述输出目标的最优调度方案。
具体的,上述整体耗时最短用于表征:利用当前接收时段处于空闲状态的空闲处理节点执行接收到的每一所述待处理任务时,对于当前接收时段内接收到的所有待处理任务进行任务调度所消耗的整体时间最短。
需要说明的是,上述最优调度方案符合所述输出约束条件;其中,在上述输出约束条件中,上述待处理任务的任务属性要求可以包括但不限于:任务调度过程中的等待时间要求(如任务调度过程中的等待时间最多不超过20分钟),任务处理节点的性能要求(如任务处理节点中硬件资源的资源性能不能低于xx等);对于上述待处理任务的具体任务属性要求,本申请实施例不作任何限定。
S502,以所述最优调度方案作为所述目标任务调度策略,按照所述最优调度方案,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
具体的,在上述高阶版调度方案中,在确定出目标任务调度策略之后,上述步骤S502的具体任务调度方式仍与上述步骤S103所述的具体调度方式相同,重复之处在此不再赘述。
需要说明的是,在上述高阶版调度方案中,作为一可选实施例,可以只在上述步骤S101-S103所述的基础版调度方案的基础上,通过改变上述步骤S102中确定“目标任务调度策略”的方式,得到上述高阶版调度方案;作为另一可选实施例,也可以在上述进阶版调度方案的基础上(即在上述步骤S101-S103以及上述步骤S401-S403的基础上),通过改变上述步骤S102中确定“目标任务调度策略”的方式,得到上述高阶版调度方案。对于上述高阶版调度方案的具体制定方式,本申请实施例不作任何限定。
除上述各步骤之外,考虑到任务处理节点在实际处理待处理任务的过程中,可能会存在任务处理失败的情况,基于此,本申请实施例还提供了如图6所示的自动重试机制,以在任务处理失败时,控制任务处理节点自动发起对当前待处理任务的任务重试,以提高对待处理任务的处理成功率。
参照图6所示,图6示出了本申请实施例所提供的一种针对处理失败的待处理任务进行自动重试的方法的流程示意图,该方法包括步骤S601-S603;具体的:
S601,响应所述目标任务处理节点针对该待处理任务的处理出现异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理,得到所述目标任务处理节点针对该待处理任务的二次处理结果。
需要说明的是,上述处理出现异常既包括:针对该待处理任务进行任务处理过程中卡顿、中断、数据丢失等设备型异常;也包括:针对该待处理任务进行任务处理之后得到的任务处理结果异常等数据型异常;对于上述处理出现异常的具体定义方式,本申请实施例不作任何限定。
S602,响应所述二次处理结果的结果正常,控制所述目标任务处理节点结束针对该待处理任务的任务处理操作。
具体的,调度节点响应所述二次处理结果的结果正常,则可以控制目标任务处理节点结束针对该待处理任务的任务处理操作,并从目标任务处理节点处获取该待处理任务的任务处理结果,以将获取到的任务处理结果反馈给提交该待处理任务的任务提交节点。
S603,响应所述二次处理结果的结果异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理。
具体的,调度节点响应所述二次处理结果的结果异常,则可以控制目标任务处理节点自动对该待处理任务重新进行任务处理,其中,对于结果异常的待处理任务,调度节点可以重复发起上述步骤S601-S603所示的自动重试步骤,直至成功得到该待处理任务的正常处理结果为止;也可以按照预设的自动重试的重试次数上限,只在有限的重试次数内重复发起上述步骤S601-S603所示的自动重试步骤。对于调度节点可以发起的自动重试的具体重试次数,本申请实施例不作任何限定。
本申请实施例提供的上述任务的调度方法,通过调度节点接收多个任务提交节点提交的待处理任务;根据待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与待处理任务的任务数量相匹配的目标任务调度策略;按照目标任务调度策略,从多个任务处理节点中,为接收到的每个待处理任务分配用于处理该待处理任务的目标任务处理节点。
这样,本申请通过任务调度的方式,为每一个独立的任务提交节点提交的待处理任务分配能够执行该处理任务的硬件资源,以在任务调度过程中,节约每个任务提交节点对应的用户终端处需要落地的硬件资源,有利于减轻任务调度过程中消耗的运维成本,提高了对待处理任务的调度效率。
基于同一发明构思,本申请实施例中还提供了与上述实施例中任务的调度方法对应的调度装置,由于本申请实施例中的调度装置解决问题的原理与本申请上述实施例中的调度方法相似,因此,调度装置的实施可以参见前述调度方法的实施,重复之处不再赘述。
参照图7所示,图7示出了本申请实施例提供的一种任务的调度装置的结构示意图;所述调度装置应用于调度节点;所述调度装置包括:
接收模块701,用于接收多个任务提交节点提交的待处理任务;其中,所述待处理任务包括:目标业务场景下的模型训练任务和/或所述目标业务场景下的模型应用任务;
处理模块702,用于根据接收到的所述待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略;其中,所述任务调度性能与所述任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量相关;
调度模块703,用于按照所述目标任务调度策略,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
在一种可选的实施方式中,处理模块702,具体用于:
计算所述多个任务处理节点中处于空闲状态的空闲处理节点的节点数量与所述待处理任务的任务数量之间的数量差值;
当所述数量差值属于非负数时,从预设的多个任务调度策略中,确定第一任务调度策略作为所述目标任务调度策略;其中,所述第一任务调度策略用于表征利用空闲处理节点对接收到的每个所述待处理任务同时进行并行处理的任务调度策略;
当所述数量差值属于负数且所述数量差值的绝对值小于或者等于第一预设阈值时,从预设的多个任务调度策略中,确定第二任务调度策略作为所述目标任务调度策略;其中,所述第二任务调度策略用于表征利用目标数量的空闲处理节点对接收到的所述待处理任务进行并行处理,利用除所述目标数量之外的剩余数量的空闲处理节点对接收到的所述待处理任务进行串行处理的任务调度策略;
当所述数量差值属于负数且所述数量差值的绝对值大于所述第一预设阈值时,从预设的多个任务调度策略中,确定第三任务调度策略作为所述目标任务调度策略;其中,所述第三任务调度策略用于表征利用空闲处理节点对接收到的所述待处理任务全部进行串行处理的任务调度策略。
在一种可选的实施方式中,当所述目标任务调度策略为所述第二任务调度策略时,处理模块702,用于通过以下方法,确定用于对接收到的所述待处理任务进行并行处理的所述目标数量的空闲处理节点:
按照预设的目标数量,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点;
或者,
根据每个所述待处理任务的预测处理时间,从接收到的全部待处理任务中,确定所述预测处理时间大于预设处理时间阈值的待处理任务作为所述第二任务调度策略中需要进行并行处理的第一待处理任务;
以所述第一待处理任务的任务数量作为所述目标数量,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点;
或者,
根据每个任务处理节点的任务处理效率,按照优先抽取任务处理效率低的任务处理节点的方式,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,优先抽取得到所述目标数量的空闲处理节点。
在一种可选的实施方式中,当所述待处理任务为所述模型训练任务时,接收模块701,还用于:
针对每一所述模型训练任务,根据该模型训练任务中包括的不同标注类型的标注训练样本,将该模型训练任务拆分成多个模型训练子任务;其中,每一所述模型训练子任务对应一种标注类型的标注训练样本;
将每一所述模型训练子任务作为一个独立的所述待处理任务进行调度处理。
在一种可选的实施方式中,在所述接收多个任务提交节点提交的待处理任务时,接收模块701,还用于:在当前调度周期内接收所述多个任务提交节点提交的待处理任务;处理模块702,还用于通过以下方法,从所述多个任务处理节点中,确定出在当前调度周期内处于空闲状态的目标空闲处理节点:
将上一调度周期内统计得到的历史流量数据输入至预先训练好的流量预测模型中,得到所述流量预测模型输出的针对下一调度周期的流量预测结果;其中,所述流量预测结果用于表征针对下一调度周期内接收到的待处理任务的任务数量预测结果;
根据针对下一调度周期的所述流量预测结果,对按照第一调度策略在所述下一调度周期内进行任务调度所需要的空闲处理节点的节点数量进行预测,得到针对所述下一调度周期的节点预测结果;其中,所述第一调度策略用于表征任务调度性能与所述流量预测结果相匹配的任务调度策略;
从所述多个任务处理节点中处于空闲状态的空闲处理节点中,去除所述节点预测结果表征的节点数量的空闲处理节点,将剩余的空闲处理节点作为当前调度周期内处于空闲状态的目标空闲处理节点。
在一种可选的实施方式中,处理模块702,还用于通过以下方法,确定所述目标任务调度策略:
将接收到的所述待处理任务的任务数量、每一所述待处理任务的任务属性、历史同一接收时段内所述任务处理节点的占用信息以及当前接收时段处于空闲状态的空闲处理节点的节点数量输入至目标算法模型中,以任务调度结果符合每一所述待处理任务的任务属性要求作为输出约束条件,以对接收到的每一所述待处理任务进行任务调度的整体耗时最短作为输出目标,得到所述目标算法模型输出的针对所述输出目标的最优调度方案;其中,所述最优调度方案符合所述输出约束条件;
以所述最优调度方案作为所述目标任务调度策略,按照所述最优调度方案,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
在一种可选的实施方式中,在所述为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点之后,调度模块703还用于:
响应所述目标任务处理节点针对该待处理任务的处理出现异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理,得到所述目标任务处理节点针对该待处理任务的二次处理结果;
响应所述二次处理结果的结果正常,控制所述目标任务处理节点结束针对该待处理任务的任务处理操作;
响应所述二次处理结果的结果异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理。
本申请实施例提供的上述任务的调度装置,通过调度节点接收多个任务提交节点提交的待处理任务;根据待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与待处理任务的任务数量相匹配的目标任务调度策略;按照目标任务调度策略,从多个任务处理节点中,为接收到的每个待处理任务分配用于处理该待处理任务的目标任务处理节点。
这样,本申请通过任务调度的方式,为每一个独立的任务提交节点提交的待处理任务分配能够执行该处理任务的硬件资源,以在任务调度过程中,节约每个任务提交节点对应的用户终端处需要落地的硬件资源,有利于减轻任务调度过程中消耗的运维成本,提高了对待处理任务的调度效率。
基于同一发明构思,本申请实施例中还提供了与上述实施例中任务的调度方法对应的调度系统,由于本申请实施例中的调度系统解决问题的原理与本申请上述实施例中的调度方法相似,因此,调度系统的实施可以参见前述调度方法的实施,重复之处不再赘述。
参照图8所示,图8示出了本申请实施例提供的一种任务的调度系统的结构示意图;所述调度系统包括:多个任务提交节点801、多个任务处理节点802以及调度节点803;其中,调度节点803用于:
接收多个任务提交节点801提交的待处理任务;其中,所述待处理任务包括:目标业务场景下的模型训练任务和/或所述目标业务场景下的模型应用任务;
根据接收到的所述待处理任务的任务数量以及多个任务处理节点802中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略;其中,所述任务调度性能与所述任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量相关;
按照所述目标任务调度策略,从多个任务处理节点802中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
在一种可选的实施方式中,在所述根据接收到的所述待处理任务的任务数量以及多个任务处理节点802中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略时,调度节点803具体用于:
计算多个任务处理节点802中处于空闲状态的空闲处理节点的节点数量与所述待处理任务的任务数量之间的数量差值;
当所述数量差值属于非负数时,从预设的多个任务调度策略中,确定第一任务调度策略作为所述目标任务调度策略;其中,所述第一任务调度策略用于表征利用空闲处理节点对接收到的每个所述待处理任务同时进行并行处理的任务调度策略;
当所述数量差值属于负数且所述数量差值的绝对值小于或者等于第一预设阈值时,从预设的多个任务调度策略中,确定第二任务调度策略作为所述目标任务调度策略;其中,所述第二任务调度策略用于表征利用目标数量的空闲处理节点对接收到的所述待处理任务进行并行处理,利用除所述目标数量之外的剩余数量的空闲处理节点对接收到的所述待处理任务进行串行处理的任务调度策略;
当所述数量差值属于负数且所述数量差值的绝对值大于所述第一预设阈值时,从预设的多个任务调度策略中,确定第三任务调度策略作为所述目标任务调度策略;其中,所述第三任务调度策略用于表征利用空闲处理节点对接收到的所述待处理任务全部进行串行处理的任务调度策略。
在一种可选的实施方式中,当所述目标任务调度策略为所述第二任务调度策略时,调度节点803用于通过以下方法,确定用于对接收到的所述待处理任务进行并行处理的所述目标数量的空闲处理节点:
按照预设的目标数量,从多个任务处理节点802中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点;
或者,
根据每个所述待处理任务的预测处理时间,从接收到的全部待处理任务中,确定所述预测处理时间大于预设处理时间阈值的待处理任务作为所述第二任务调度策略中需要进行并行处理的第一待处理任务;
以所述第一待处理任务的任务数量作为所述目标数量,从多个任务处理节点802中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点;
或者,
根据每个任务处理节点802的任务处理效率,按照优先抽取任务处理效率低的任务处理节点的方式,从多个任务处理节点802中处于空闲状态的空闲处理节点中,优先抽取得到所述目标数量的空闲处理节点。
在一种可选的实施方式中,当所述待处理任务为所述模型训练任务时,调度节点803还用于:
针对每一所述模型训练任务,根据该模型训练任务中包括的不同标注类型的标注训练样本,将该模型训练任务拆分成多个模型训练子任务;其中,每一所述模型训练子任务对应一种标注类型的标注训练样本;
将每一所述模型训练子任务作为一个独立的所述待处理任务进行调度处理。
在一种可选的实施方式中,所述接收多个任务提交节点801提交的待处理任务包括:在当前调度周期内接收多个任务提交节点801提交的待处理任务;调度节点803还用于通过以下方法,从多个任务处理节点802中,确定出在当前调度周期内处于空闲状态的目标空闲处理节点:
将上一调度周期内统计得到的历史流量数据输入至预先训练好的流量预测模型中,得到所述流量预测模型输出的针对下一调度周期的流量预测结果;其中,所述流量预测结果用于表征针对下一调度周期内接收到的待处理任务的任务数量预测结果;
根据针对下一调度周期的所述流量预测结果,对按照第一调度策略在所述下一调度周期内进行任务调度所需要的空闲处理节点的节点数量进行预测,得到针对所述下一调度周期的节点预测结果;其中,所述第一调度策略用于表征任务调度性能与所述流量预测结果相匹配的任务调度策略;
从多个任务处理节点802中处于空闲状态的空闲处理节点中,去除所述节点预测结果表征的节点数量的空闲处理节点,将剩余的空闲处理节点作为当前调度周期内处于空闲状态的目标空闲处理节点。
在一种可选的实施方式中,在所述接收多个任务提交节点801提交的待处理任务之后,调度节点803还用于通过以下方法,确定所述目标任务调度策略:
将接收到的所述待处理任务的任务数量、每一所述待处理任务的任务属性、历史同一接收时段内任务处理节点802的占用信息以及当前接收时段处于空闲状态的空闲处理节点的节点数量输入至目标算法模型中,以任务调度结果符合每一所述待处理任务的任务属性要求作为输出约束条件,以对接收到的每一所述待处理任务进行任务调度的整体耗时最短作为输出目标,得到所述目标算法模型输出的针对所述输出目标的最优调度方案;其中,所述最优调度方案符合所述输出约束条件;
以所述最优调度方案作为所述目标任务调度策略,按照所述最优调度方案,从多个任务处理节点802中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
在一种可选的实施方式中,在所述为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点之后,调度节点803还用于:
响应所述目标任务处理节点针对该待处理任务的处理出现异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理,得到所述目标任务处理节点针对该待处理任务的二次处理结果;
响应所述二次处理结果的结果正常,控制所述目标任务处理节点结束针对该待处理任务的任务处理操作;
响应所述二次处理结果的结果异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理。
本申请实施例提供的上述任务的调度系统,通过调度节点接收多个任务提交节点提交的待处理任务;根据待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与待处理任务的任务数量相匹配的目标任务调度策略;按照目标任务调度策略,从多个任务处理节点中,为接收到的每个待处理任务分配用于处理该待处理任务的目标任务处理节点。
这样,本申请通过任务调度的方式,为每一个独立的任务提交节点提交的待处理任务分配能够执行该处理任务的硬件资源,以在任务调度过程中,节约每个任务提交节点对应的用户终端处需要落地的硬件资源,有利于减轻任务调度过程中消耗的运维成本,提高了对待处理任务的调度效率。
如图9所示,本申请实施例提供了一种计算机设备900,用于执行本申请中任务的调度方法,该设备包括存储器901、处理器902及存储在该存储器901上并可在该处理器902上运行的计算机程序,其中,上述处理器902执行上述计算机程序时实现上述任务的调度方法的步骤。
具体地,上述存储器901和处理器902可以为通用的存储器和处理器,这里不做具体限定,当处理器902运行存储器901存储的计算机程序时,能够执行上述任务的调度方法。
对应于本申请中任务的调度方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任务的调度方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述任务的调度方法。
在本申请所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种任务的调度方法,其特征在于,所述调度方法应用于调度节点;所述调度方法包括:
接收多个任务提交节点提交的待处理任务;其中,所述待处理任务包括:目标业务场景下的模型训练任务和/或所述目标业务场景下的模型应用任务;
根据接收到的所述待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略;其中,所述任务调度性能与所述任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量相关;
按照所述目标任务调度策略,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
2.根据权利要求1所述的调度方法,其特征在于,所述根据接收到的所述待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略,包括:
计算所述多个任务处理节点中处于空闲状态的空闲处理节点的节点数量与所述待处理任务的任务数量之间的数量差值;
当所述数量差值属于非负数时,从预设的多个任务调度策略中,确定第一任务调度策略作为所述目标任务调度策略;其中,所述第一任务调度策略用于表征利用空闲处理节点对接收到的每个所述待处理任务同时进行并行处理的任务调度策略;
当所述数量差值属于负数且所述数量差值的绝对值小于或者等于第一预设阈值时,从预设的多个任务调度策略中,确定第二任务调度策略作为所述目标任务调度策略;其中,所述第二任务调度策略用于表征利用目标数量的空闲处理节点对接收到的所述待处理任务进行并行处理,利用除所述目标数量之外的剩余数量的空闲处理节点对接收到的所述待处理任务进行串行处理的任务调度策略;
当所述数量差值属于负数且所述数量差值的绝对值大于所述第一预设阈值时,从预设的多个任务调度策略中,确定第三任务调度策略作为所述目标任务调度策略;其中,所述第三任务调度策略用于表征利用空闲处理节点对接收到的所述待处理任务全部进行串行处理的任务调度策略。
3.根据权利要求2所述的调度方法,其特征在于,当所述目标任务调度策略为所述第二任务调度策略时,通过以下方法,确定用于对接收到的所述待处理任务进行并行处理的所述目标数量的空闲处理节点:
按照预设的目标数量,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点;
或者,
根据每个所述待处理任务的预测处理时间,从接收到的全部待处理任务中,确定所述预测处理时间大于预设处理时间阈值的待处理任务作为所述第二任务调度策略中需要进行并行处理的第一待处理任务;
以所述第一待处理任务的任务数量作为所述目标数量,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,随机抽取得到所述目标数量的空闲处理节点;
或者,
根据每个任务处理节点的任务处理效率,按照优先抽取任务处理效率低的任务处理节点的方式,从所述多个任务处理节点中处于空闲状态的空闲处理节点中,优先抽取得到所述目标数量的空闲处理节点。
4.根据权利要求1所述的调度方法,其特征在于,当所述待处理任务为所述模型训练任务时,所述调度方法还包括:
针对每一所述模型训练任务,根据该模型训练任务中包括的不同标注类型的标注训练样本,将该模型训练任务拆分成多个模型训练子任务;其中,每一所述模型训练子任务对应一种标注类型的标注训练样本;
将每一所述模型训练子任务作为一个独立的所述待处理任务进行调度处理。
5.根据权利要求1所述的调度方法,其特征在于,所述接收多个任务提交节点提交的待处理任务包括:在当前调度周期内接收所述多个任务提交节点提交的待处理任务;通过以下方法,从所述多个任务处理节点中,确定出在当前调度周期内处于空闲状态的目标空闲处理节点:
将上一调度周期内统计得到的历史流量数据输入至预先训练好的流量预测模型中,得到所述流量预测模型输出的针对下一调度周期的流量预测结果;其中,所述流量预测结果用于表征针对下一调度周期内接收到的待处理任务的任务数量预测结果;
根据针对下一调度周期的所述流量预测结果,对按照第一调度策略在所述下一调度周期内进行任务调度所需要的空闲处理节点的节点数量进行预测,得到针对所述下一调度周期的节点预测结果;其中,所述第一调度策略用于表征任务调度性能与所述流量预测结果相匹配的任务调度策略;
从所述多个任务处理节点中处于空闲状态的空闲处理节点中,去除所述节点预测结果表征的节点数量的空闲处理节点,将剩余的空闲处理节点作为当前调度周期内处于空闲状态的目标空闲处理节点。
6.根据权利要求1所述的调度方法,其特征在于,在所述接收多个任务提交节点提交的待处理任务之后,确定所述目标任务调度策略的方法还包括:
将接收到的所述待处理任务的任务数量、每一所述待处理任务的任务属性、历史同一接收时段内所述任务处理节点的占用信息以及当前接收时段处于空闲状态的空闲处理节点的节点数量输入至目标算法模型中,以任务调度结果符合每一所述待处理任务的任务属性要求作为输出约束条件,以对接收到的每一所述待处理任务进行任务调度的整体耗时最短作为输出目标,得到所述目标算法模型输出的针对所述输出目标的最优调度方案;其中,所述最优调度方案符合所述输出约束条件;
以所述最优调度方案作为所述目标任务调度策略,按照所述最优调度方案,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
7.根据权利要求1所述的调度方法,其特征在于,在所述为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点之后,所述调度方法还包括:
响应所述目标任务处理节点针对该待处理任务的处理出现异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理,得到所述目标任务处理节点针对该待处理任务的二次处理结果;
响应所述二次处理结果的结果正常,控制所述目标任务处理节点结束针对该待处理任务的任务处理操作;
响应所述二次处理结果的结果异常,控制所述目标任务处理节点自动对该待处理任务重新进行任务处理。
8.一种任务的调度装置,其特征在于,所述调度装置应用于调度节点;所述调度装置包括:
接收模块,用于接收多个任务提交节点提交的待处理任务;其中,所述待处理任务包括:目标业务场景下的模型训练任务和/或所述目标业务场景下的模型应用任务;
处理模块,用于根据接收到的所述待处理任务的任务数量以及多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略;其中,所述任务调度性能与所述任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量相关;
调度模块,用于按照所述目标任务调度策略,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
9.一种任务的调度系统,其特征在于,所述调度系统包括:多个任务提交节点、多个任务处理节点以及调度节点;所述调度节点用于:
接收所述多个任务提交节点提交的待处理任务;其中,所述待处理任务包括:目标业务场景下的模型训练任务和/或所述目标业务场景下的模型应用任务;
根据接收到的所述待处理任务的任务数量以及所述多个任务处理节点中处于空闲状态的空闲处理节点的节点数量,从预设的多个任务调度策略中,确定任务调度性能与所述待处理任务的任务数量相匹配的目标任务调度策略;其中,所述任务调度性能与所述任务调度策略中每个空闲处理节点需要处理的所述待处理任务的任务数量相关;
按照所述目标任务调度策略,从所述多个任务处理节点中,为接收到的每个所述待处理任务分配用于处理该待处理任务的目标任务处理节点。
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的调度方法的步骤。
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210771504.8A CN115080212A (zh) | 2022-06-30 | 2022-06-30 | 一种任务的调度方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210771504.8A CN115080212A (zh) | 2022-06-30 | 2022-06-30 | 一种任务的调度方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080212A true CN115080212A (zh) | 2022-09-20 |
Family
ID=83257674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210771504.8A Pending CN115080212A (zh) | 2022-06-30 | 2022-06-30 | 一种任务的调度方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080212A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658269A (zh) * | 2022-11-01 | 2023-01-31 | 上海玫克生储能科技有限公司 | 一种用于任务调度的异构计算终端 |
CN116258352A (zh) * | 2023-05-15 | 2023-06-13 | 民航成都信息技术有限公司 | 一种航班保障任务的调度方法、装置及电子设备 |
CN117170873A (zh) * | 2023-09-12 | 2023-12-05 | 广州云硕科技发展有限公司 | 基于人工智能的资源池管理方法及系统 |
-
2022
- 2022-06-30 CN CN202210771504.8A patent/CN115080212A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658269A (zh) * | 2022-11-01 | 2023-01-31 | 上海玫克生储能科技有限公司 | 一种用于任务调度的异构计算终端 |
CN115658269B (zh) * | 2022-11-01 | 2024-02-27 | 上海玫克生储能科技有限公司 | 一种用于任务调度的异构计算终端 |
CN116258352A (zh) * | 2023-05-15 | 2023-06-13 | 民航成都信息技术有限公司 | 一种航班保障任务的调度方法、装置及电子设备 |
CN116258352B (zh) * | 2023-05-15 | 2023-08-18 | 中国民用航空总局第二研究所 | 一种航班保障任务的调度方法、装置及电子设备 |
CN117170873A (zh) * | 2023-09-12 | 2023-12-05 | 广州云硕科技发展有限公司 | 基于人工智能的资源池管理方法及系统 |
CN117170873B (zh) * | 2023-09-12 | 2024-06-07 | 广州云硕科技发展有限公司 | 基于人工智能的资源池管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115080212A (zh) | 一种任务的调度方法、装置、设备及存储介质 | |
CN109960585B (zh) | 一种基于kubernetes的资源调度方法 | |
EP3335119B1 (en) | Multi-priority service instance allocation within cloud computing platforms | |
CN109582433B (zh) | 一种资源调度方法、装置、云计算系统及存储介质 | |
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN106919445B (zh) | 一种在集群中并行调度容器的方法和装置 | |
CN109814997B (zh) | 一种分布式自主均衡人工智能任务调度方法及系统 | |
CN111338774A (zh) | 分布式定时任务调度系统及计算装置 | |
CN112380020A (zh) | 一种算力资源分配方法、装置、设备及存储介质 | |
CN114756347B (zh) | 基于集群的服务器资源调度方法、装置、云平台及介质 | |
CN109947532B (zh) | 一种教育云平台中的大数据任务调度方法 | |
CN113946431B (zh) | 一种资源调度方法、系统、介质及计算设备 | |
CN111045821A (zh) | 一种容器调度方法、装置、容器调度器及可读存储介质 | |
CN112463535A (zh) | 多集群异常处理方法及装置 | |
CN115794337A (zh) | 资源调度方法、装置、云平台、设备及存储介质 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN105610986A (zh) | 一种服务调度方法、负载均衡服务器及服务调度系统 | |
Sanjeevi et al. | DTCF: deadline task consolidation first for energy minimisation in cloud data centres | |
CN116089477B (zh) | 分布式训练方法及系统 | |
US12028269B2 (en) | Method for optimal resource selection based on available GPU resource analysis in large-scale container platform | |
CN117221326A (zh) | 软件负载均衡调度方法、系统、电子设备和存储介质 | |
CN113849295A (zh) | 模型训练的方法、装置及计算机可读存储介质 | |
WO2019119951A1 (zh) | 设备资源管理 | |
CN117632461A (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 |