CN114416313A - 基于资源预测模型的任务调度方法和装置 - Google Patents
基于资源预测模型的任务调度方法和装置 Download PDFInfo
- Publication number
- CN114416313A CN114416313A CN202210009635.2A CN202210009635A CN114416313A CN 114416313 A CN114416313 A CN 114416313A CN 202210009635 A CN202210009635 A CN 202210009635A CN 114416313 A CN114416313 A CN 114416313A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- period
- task
- target
- reserved
- 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
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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Abstract
本申请公开了一种基于资源预测模型的任务调度方法和装置。其中,该方法包括:获取第一任务调度历史信息和第一资源占用状态信息,根据第一任务调度历史信息和第一资源占用状态信息,确定目标训练样本集合,每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型。本申请解决了任务调度的资源占用预测不够准确的技术问题。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种基于资源预测模型的任务调度方法和装置。
背景技术
目前,关于任务调度的资源占用预测,主要利用过去历史数据对各个任务的资源占用进行单独预测。
但是,任务调度过程中,由于存在上下相互依赖的任务,也即,当前任务的运行要受到上一任务运行的影响,而下一任务的运行状态(设置的启动时间等),也影响到当前任务的资源占用。由于任务调度的过程中上一任务完成后,才能启动当期任务,而当期任务的运行,又影响下一期的任务调度。因此,相关技术中存在任务调度的资源占用预测不够准确的技术问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于资源预测模型的任务调度方法和装置,以至少解决任务调度的资源占用预测不够准确的技术问题。
根据本申请实施例的一个方面,提供了一种基于资源预测模型的任务调度方法,包括:获取第一任务调度历史信息和第一资源占用状态信息,其中,所述第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,所述第一资源占用状态信息包括所述被调度的任务的资源占用状态标签,所述资源占用状态标签用于表示所述被调度的任务的资源占用状态;根据所述第一任务调度历史信息和所述第一资源占用状态信息,确定目标训练样本集合,其中,所述目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述N个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,所述待训练的资源预测模型用于根据通过所述目标训练样本集合中的每个训练样本,确定所述多个时段中的每一个时段上的预测资源占用状态。
根据本申请实施例的另一方面,还提供了一种基于资源预测模型的任务调度装置,包括:
获取模块,用于获取第一任务调度历史信息和第一资源占用状态信息,其中,所述第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,所述第一资源占用状态信息包括所述被调度的任务的资源占用状态标签,所述资源占用状态标签用于表示所述被调度的任务的资源占用状态;
确定模块,用于根据所述第一任务调度历史信息和所述第一资源占用状态信息,确定目标训练样本集合,其中,所述目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述N个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;
训练模块,用于根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,所述待训练的资源预测模型用于根据通过所述目标训练样本集合中的每个训练样本,确定所述多个时段中的每一个时段上的预测资源占用状态。
可选地,所述装置用于通过如下方式根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型:将所述目标训练样本集合中的每个训练样本依次输入到所述待训练的资源预测模型中,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件,其中,在所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足所述预设的损失条件的情况下,对所述待训练的资源预测模型中的参数进行调整,所述多个时段中的每一个时段上的实际资源占用状态是根据所述每个训练样本中的所述一个任务在所述一个历史周期中的所述一个时段上的调度特征和资源占用状态标签确定得到的资源占用状态;其中,所述待训练的资源预测模型用于根据所述每个训练样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态。
可选地,所述装置用于通过如下方式将所述目标训练样本集合中的每个训练样本依次输入到所述待训练的资源预测模型中,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件:重复执行以下步骤,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件:在所述目标训练样本集合中选择当前训练样本,并将所述当前训练样本输入到待训练的BERT模型中,其中,所述待训练的资源预测模型为所述待训练的BERT模型;在所述待训练的BERT模型中,根据所述每个训练样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态;确定所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值是否满足所述预设的损失条件;在所述待训练的BERT模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足所述预设的损失条件的情况下,对所述待训练的BERT模型中的参数进行调整。
可选地,所述装置还用于:在根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型之后,获取在目标未来周期中预约调度的目标任务集合以及预约调度时段集合,其中,所述预约调度时段集合中的每个预约调度时段是所述目标任务集合中的任务在所述目标未来周期上的调度时段;获取目标调度时段集合中的每个目标调度时段上的预测资源占用状态、以及获取所述目标调度时段上的平均调度任务数量,其中,所述每个目标调度时段上的预测资源占用状态是根据所述目标资源预测模型确定得到的资源占用状态;根据所述预约调度时段集合、所述每个目标调度时段上的预测资源占用状态、以及所述平均调度任务数量,调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量。
可选地,所述装置还用于:获取第二任务调度历史信息和第二资源占用状态信息,其中,所述第二任务调度历史信息包括所述目标未来周期之前的M个历史周期中被调度的任务的调度特征,所述M个历史周期中的每个历史周期包括所述多个时段,M为大于或等于1的整数,所述第二资源占用状态信息包括所述M个历史周期中被调度的任务的资源占用状态标签;根据所述第二任务调度历史信息和所述第二资源占用状态信息,确定目标测试样本集合,其中,所述目标测试样本集合中的每个测试样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述M个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;将所述目标测试样本集合输入到所述目标资源预测模型,得到所述多个时段中的每一个时段上的预测资源占用状态,其中,所述目标资源预测模型用于根据通过所述目标测试样本集合中的每个测试样本,确定所述多个时段中的每一个时段上的预测资源占用状态,所述目标调度时段集合为所述多个时段,所述目标调度时段集合中的每个目标调度时段上的预测资源占用状态为所述多个时段中的每一个时段上的预测资源占用状态。
可选地,所述装置用于通过如下方式将所述目标测试样本集合输入到所述目标资源预测模型,得到所述多个时段中的每一个时段上的预测资源占用状态:将所述目标测试样本集合中的每个测试样本依次输入到所述目标资源预测模型;在所述目标资源预测模型中,根据所述每个测试样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态。
可选地,所述装置用于通过如下方式获取所述目标调度时段上的平均调度任务数量:在所述目标调度时段集合为所述多个时段、以及所述多个时段为P个时段的情况下,获取所述目标未来周期之前的1个历史周期中调度的任务的总数量,其中,P为大于或等于2的整数;将所述平均调度任务数量确定为等于所述总数量除以P所得到的取值;或者在所述目标调度时段集合为所述多个时段、以及所述多个时段为P个时段的情况下,获取所述目标未来周期之前的Q个历史周期中的每个历史周期中调度的任务的总数量,得到Q个总数量,其中,P为大于或等于2的整数,Q为大于或等于2的整数;将所述Q个总数量中的每个总数量分别除以P,得到Q个取值;将所述平均调度任务数量确定为等于所述Q个取值的平均值,或者,等于所述Q个取值的加权之和。
可选地,所述装置用于通过如下方式根据所述预约调度时段集合、所述每个目标调度时段上的预测资源占用状态、以及所述平均调度任务数量,调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量:对所述预约调度时段集合中的每个预约调度时段,执行以下操作,其中,执行以下操作时,所述每个预约调度时段为当前预约调度时段:获取所述目标任务集合中在所述当前预约调度时段上预约调度的任务的数量;在所述预约调度的任务的数量小于或等于所述平均调度任务数量的情况下,保持在所述当前预约调度时段上预约调度的任务的数量不变;在所述预约调度的任务的数量大于所述平均调度任务数量的情况下,在所述当前预约调度时段上预约调度的任务中确定目标数量的任务,其中,所述目标数量等于所述预约调度的任务的数量与所述平均调度任务数量之间的差值;根据所述当前预约调度时段之后的所述目标调度时段上的预测资源占用状态,将所述目标数量的任务的预约调度时段调整为所述当前预约调度时段之后的一个或多个预约调度时段。
可选地,所述装置用于通过如下方式根据所述当前预约调度时段之后的所述目标调度时段上的预测资源占用状态,将所述目标数量的任务的预约调度时段调整为所述当前预约调度时段之后的一个或多个预约调度时段:查找在所述当前预约调度时段之后的满足第一预设条件的第一个预约调度时段,其中,所述第一预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值、且所述第一个预约调度时段上预约调度的任务的数量与所述目标数量之和小于或等于所述平均调度任务数量;在查找到满足所述第一预设条件的所述第一个预约调度时段的情况下,将所述目标数量的任务的预约调度时段调整为满足所述第一预设条件的所述第一个预约调度时段;或者查找在所述当前预约调度时段之后的满足第二预设条件的第一组预约调度时段,其中,所述第二预设条件包括:与所述第一组预约调度时段中的每个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值、所述第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于所述平均调度任务数量、且所述每个预约调度时段上预约调度的任务的数量与所述平均调度任务数量之间的差值的总和大于或等于所述目标数量;在查找到满足所述第二预设条件的所述第一组预约调度时段的情况下,将所述目标数量的任务中的每个任务的预约调度时段分别调整为所述第一组预约调度时段中对应的预约调度时段,其中,调整完之后的所述第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于或等于所述平均调度任务数量。
可选地,所述装置还用于:在调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,在所述目标未来周期中的当前预约调度时段上,检测所述当前预约调度时段上预约调度的任务是否都运行完毕;在检测出所述当前预约调度时段上预约调度的任务都运行完毕、且所述当前预约调度时段上仍存在剩余资源时,从所述当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务;在所述当前预约调度时段上调度所述一个或多个任务。
可选地,所述装置用于通过如下方式从所述当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务:查找在所述当前预约调度时段之后的满足第三预设条件的第一个预约调度时段,其中,所述第三预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率大于或等于预设阈值;在查找到所述满足第三预设条件的第一个预约调度时段的情况下,在满足所述第三预设条件的所述第一个预约调度时段中确定所述一个或多个任务。
可选地,所述装置还用于:在调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,在所述目标未来周期中的当前预约调度时段上,检测所述当前预约调度时段上的资源是否少于所述当前预约调度时段上预约调度的任务运行所需的资源;在检测出所述当前预约调度时段上的资源少于所述当前预约调度时段上预约调度的任务运行所需的资源时,在所述当前预约调度时段上预约调度的任务中确定一个或多个任务;将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述当前预约调度时段之后的预约调度时段。
可选地,所述装置用于通过如下方式将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述当前预约调度时段之后的预约调度时段:查找在所述当前预约调度时段之后的满足第四预设条件的第一个预约调度时段,其中,所述第四预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值;在查找到所述满足第四预设条件的第一个预约调度时段的情况下,将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述满足第四预设条件的第一个预约调度时段。
根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述基于资源预测模型的任务调度方法。
根据本申请实施例的又一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上基于资源预测模型的任务调度方法。
根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的基于资源预测模型的任务调度方法。
在本申请实施例中,采用获取第一任务调度历史信息和第一资源占用状态信息,其中,第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,第一资源占用状态信息包括被调度的任务的资源占用状态标签,资源占用状态标签用于表示被调度的任务的资源占用状态,根据第一任务调度历史信息和第一资源占用状态信息,确定目标训练样本集合,其中,目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,N个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务,根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,待训练的资源预测模型用于根据通过目标训练样本集合中的每个训练样本,确定多个时段中的每一个时段上的预测资源占用状态的方式,通过利用具有上下依赖关系的任务进行资源占用状态预测,根据调度任务的时间顺序特征及标签,达到了能够确定多个时段上具有上下依赖关系的任务的资源占用预测状态的目的,从而实现了提高任务调度的资源占用预测准确率的技术效果,进而解决了任务调度的资源占用预测不够准确的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的基于资源预测模型的任务调度方法的应用环境的示意图;
图2是根据本申请实施例的一种可选的基于资源预测模型的任务调度方法的流程示意图;
图3是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图;
图4是本申请实施例提供的区块结构(Block Structure)一个可选的示意图;
图5是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图;
图6是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图;
图7是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图;
图8是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图;
图9是根据本申请实施例的一种可选的基于资源预测模型的任务调度装置的结构示意图;
图10是根据本申请实施例的一种可选的基于资源预测模型的任务调度产品的结构示意图;
图11是根据本申请实施例的一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
任务调度:系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程,通过任务调度即可解放更多的人力由系统自动去执行任务。
循环神经网络(RNN):是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络,其目的是为了处理时间序列数据。
BERT算法:即双向Transformer的Encoder,模型主要用了Masked LM和NextSentence Prediction两种方法分别捕捉词语和句子级别的representation,并采用P(wi|w1,...,wi-1,wi+1,...,wn)作为目标函数训练LM。
上下依赖:当前周期的任务需要依赖上一周期的任务完成情况,且当前周期的任务完成情况同样也影响下一周期的任务开启时间。
激活函数:一种定义当前节点在给定的输入或输入的集合下的输出函数,如逻辑函数、反正切函数。
Sigmoid函数:一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单调递增以及反函数单调递增等性质,Sigmoid函数常被用作神经网络的激活函数,将变量映射到0,1之间,常见的如:逻辑回归函数。
下面结合实施例对本申请进行说明:
根据本申请实施例的一个方面,提供了一种基于资源预测模型的任务调度方法,可选地,在本实施例中,上述基于资源预测模型的任务调度方法可以应用于如图1所示的由服务器101和终端设备103所构成的硬件环境中。如图1所示,服务器101通过网络与终端103进行连接,可用于为终端设备或终端设备上安装的应用程序提供服务,应用程序可以是视频应用程序、即时通信应用程序、浏览器应用程序、教育应用程序、游戏应用程序等。可在服务器上或独立于服务器设置数据库105,用于为服务器101提供数据存储服务,例如,游戏数据存储服务器,上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络,终端设备103可以是配置有应用程序的终端,可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等计算机设备,上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。
结合图1所示,上述基于资源预测模型的任务调度方法可以通过如下步骤实现:
S1,在服务器101上获取终端设备103上应用程序107的第一任务调度历史信息和第一资源占用状态信息,其中,第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,第一资源占用状态信息包括被调度的任务的资源占用状态标签,资源占用状态标签用于表示被调度的任务的资源占用状态;
S2,在服务器101上根据第一任务调度历史信息和第一资源占用状态信息,确定目标训练样本集合,其中,目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,N个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务;
S3,在服务器101上根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,待训练的资源预测模型用于根据通过目标训练样本集合中的每个训练样本,确定多个时段中的每一个时段上的预测资源占用状态。
可选地,在本实施例中,上述基于资源预测模型的任务调度方法还可以通过终端设备实现,例如,图1所示的终端设备103中实现;或由终端设备和服务器共同实现。
上述仅是一种示例,本实施例不做具体的限定。
可选地,作为一种可选的实施方式,如图2所示,上述基于资源预测模型的任务调度方法包括:
S202,获取第一任务调度历史信息和第一资源占用状态信息,其中,第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,第一资源占用状态信息包括被调度的任务的资源占用状态标签,资源占用状态标签用于表示被调度的任务的资源占用状态;
S204,根据第一任务调度历史信息和第一资源占用状态信息,确定目标训练样本集合,其中,目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,N个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务;
S206,根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,待训练的资源预测模型用于根据通过目标训练样本集合中的每个训练样本,确定多个时段中的每一个时段上的预测资源占用状态。
可选地,在本实施例中,上述基于资源预测模型的任务调度方法可以基于分布式系统实现。
例如,本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图3,图3是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图3示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图4,图4是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
需要说明的是,上述仅是分布式系统的一种示例,本实施例对于分布式系统的具体构成,不做任何具体的限定。
可选地,在本实施例中,上述基于资源预测模型的任务调度方法的应用场景可以包括但不限于医疗、金融、征信、银行、能源、教育、安防、楼宇、游戏、交通、物联、工业等多种应用场景的任务调度过程中。
例如,某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。
某银行系统需要在信用卡到期还款日的前三天进行短信提醒。
某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。
车票系统会根据车次的不同,而设置某几个时间点进行分批放票。
某网站为了实现天气实时展示,每隔5分钟就去天气服务器获取最新的实时天气信息。
以上场景就是任务调度所需要解决的问题。
图5是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图,如图5所示,在xx应用中,通过任务调度后台实现任务调度,任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力由系统自动去执行任务。通过获取原始各个任务节点中的运行数据至管理端,为下一步数据预测做好准备工作。任务管理后台包括任务的心跳检测、任务执行后的执行轨迹上报,以及任务注册以及服务治理的过程。任务在启动后会注册到管理后台,管理后台根据该任务的分配策略将分片数据给到服务器,服务器拿到分块信息进行执行。最终完成任务数据到事件数据的转换。
可选地,在本实施例中,上述第一任务调度历史信息可以包括但不限于从集群监测数据库中获取的集群数据,例如,从集群监测数据库中(mysql、oracle等)获取集群数据(获取T-n,…,T-n+1天,每天0~24小时,每个小时的数据),包括但不限于:每个任务的id、每个任务实际调度时间、每个任务提交时间、每个任务设定开始时间、每个任务结束时间、每个任务报错时间、每个任务重启时间等。
可选地,在本实施例中,上述第一资源占用状态信息包括但不限于资源占用标识所指示的被调度的任务的资源占用状态,例如,每个时段资源占用率、每个任务调度占用资源率、每个历史周期的资源占用率等。
可选地,在本实施例中,上述N个历史周期可以包括但不限于N个时间周期,例如,N天、N月、N年等,上述每个历史周期包括多个时段可以包括但不限于在历史周期为天时,则时段可以包括但不限于小时、分钟等,在历史周期为月时,则时段可以包括但不限于周、天、小时,在历史周期为年时,则时段可以包括但不限于半年、季度、月等。
需要说明的是,上述第一任务调度历史信息可以采用矩阵表示,以历史周期为天,时段为小时为例,则上述第一任务调度历史信息可以表示为:
上述第一资源占用状态信息可以采用矩阵表示,以历史周期为天,时段为小时为例,上述第一资源占用状态信息可以表示为:
可选地,在本实施例中,上述目标训练样本集合可以包括但不限于多个任务中每个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务对应的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,N个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务。
例如,图6是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图,如图6所示,X(Task2)表示任务Task2在T-1历史周期中的0时段上的调度特征,Y(Task2)表示任务Task2在T-1历史周期中的1时段上的资源占用状态标签,Task1是Task2的父任务,Task3是Task1的子任务,X(Task1)表示任务Task1在T-1历史周期中的0时段(1时段的上一个时段)上的调度特征,Y(Task1)表示任务Task1在T-1历史周期中的0时段(1时段的上一个时段)上的资源占用状态标签,X(Task3)表示任务Task3在T-2历史周期中的2时段(1时段的下一个时段)上的调度特征,Y(Task3)表示任务Task3在T-2历史周期中的2时段(1时段的下一个时段)上的资源占用状态标签,则X(Task1)、Y(Task1)、X(Task2)、Y(Task2)以及X(Task3)、Y(Task3)即为上述目标训练样本集合中的一个目标训练样本。
可选地,在本实施例中,上述一个任务的父任务和子任务可以直接从任务代码中确定,具体而言,可以从根据任务代码生成的关系库中确定。
例如,图7是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图,如图7所示,当前任务ID为Task_00003的任务的父任务即为Task_00002,子任务即为Task_00004,,可以根据任务调度历史信息确定任务ID以及具有上下依赖关系的任务ID,具体而言,可以从集群监测数据库中获取调度任务的ID及上下依赖关系的调度任务ID构成具有上下依赖关系的任务ID对应关系库D。
可选地,在本实施例中,上述待训练的资源预测模型可以包括但不限于BERT模型,BERT的全称是Bidirectional Encoder Representations from Transformer,也就是基于Transformer的双向编码器表征。顾名思义,BERT采用的是Transformer,并且在处理一个单词的时候,还能够考虑到该词前面的和后面的单词,得到它在上下文中的含义。我们知道,Transformer的attention机制在对语境中的单词进行特征抽取时有着很好的效果,而且从直觉上看,考虑上下文的双向编码要比只考虑上文(或下文)的单向效果更好。
可选地,在本实施例中,上述待训练的资源预测模型的训练样本即为上述目标训练样本集合,上述目标资源预测模型的输入即为上述第一任务调度历史信息,上述目标资源预测模型的输出即为多个时段中每一个时段的预测概率向量,根据上述预测概率向量可以得到上述多个时段中的每一个时段上的预测资源占用状态。
在本申请实施例中,采用获取第一任务调度历史信息和第一资源占用状态信息,其中,第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,第一资源占用状态信息包括被调度的任务的资源占用状态标签,资源占用状态标签用于表示被调度的任务的资源占用状态,根据第一任务调度历史信息和第一资源占用状态信息,确定目标训练样本集合,其中,目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,N个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务,根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,待训练的资源预测模型用于根据通过目标训练样本集合中的每个训练样本,确定多个时段中的每一个时段上的预测资源占用状态的方式,通过利用具有上下依赖关系的任务进行资源占用状态预测,根据调度任务的时间顺序特征及标签,达到了能够确定多个时段上具有上下依赖关系的任务的资源占用预测状态的目的,从而实现了提高任务调度的资源占用预测准确率的技术效果,进而解决了任务调度的资源占用预测不够准确的技术问题。
作为一种可选的方案,根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,包括:
将目标训练样本集合中的每个训练样本依次输入到待训练的资源预测模型中,直到待训练的资源预测模型输出的多个时段中的每一个时段上的预测资源占用状态与多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件,
其中,在待训练的资源预测模型输出的多个时段中的每一个时段上的预测资源占用状态与多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足预设的损失条件的情况下,对待训练的资源预测模型中的参数进行调整,多个时段中的每一个时段上的实际资源占用状态是根据每个训练样本中的一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签确定得到的资源占用状态;
其中,待训练的资源预测模型用于根据每个训练样本中的一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,确定一个任务在一个历史周期中的一个时段上的预测资源占用状态,并根据确定出的多个时段中的每个时段上的任务的预测资源占用状态,确定多个时段中的每一个时段上的预测资源占用状态。
可选地,在本实施例中,上述目标训练样本集合中的样本可以是构造得到的训练样本,具体的构造方式如下:
输入具有上下依赖关系任务的标签数据和具有上下依赖关系任务的特征数据将特征数据矩阵中的T-n,…,T-1部分记为特征数据中的T-n+1,…,T部分记为将标签数据矩阵Y与特征数据XT-1和XT按照任务ID和每个任务当前周期的一个时段的上一时段及上一历史周期的一个时段的下一时段的相应的任务进行匹配,得到T-1期的时间序列样本集ST-1,该样本集用于构建训练样本和测试样本。对于ST-1按一定比例随机切分为训练样本(比例为а)和测试样本(比例为1-а),例如,按照通用经验将样本随机切分为训练样本:测试样本=8:2(即,按8:2的比例随机切分训练样本和测试样本)。对于XT用于构建预测样本。
可选地,在本实施例中,上述多个时段中的每一个时段上的预测资源占用状态与多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件可以包括但不限于待训练的资源预测模型输出的预测资源占用状态与历史数据中记录的实际资源占用状态之间的差值满足预设阈值。
可选地,在本实施例中,上述对待训练的资源预测模型中的参数进行调整可以包括但不限于对资源预测模型中的超参数进行调整,上述根据确定出的多个时段中的每个时段上的任务的预测资源占用状态,确定多个时段中的每一个时段上的预测资源占用状态可以包括但不限于多个时段中的每个时段上的任务的预测资源占用状态作为隐藏层输出,以确定上述多个时段中的每一个时段上的预测资源占用状态。
作为一种可选的方案,将目标训练样本集合中的每个训练样本依次输入到待训练的资源预测模型中,直到待训练的资源预测模型输出的多个时段中的每一个时段上的预测资源占用状态与多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件,包括:
重复执行以下步骤,直到待训练的资源预测模型输出的多个时段中的每一个时段上的预测资源占用状态与多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件:
在目标训练样本集合中选择当前训练样本,并将当前训练样本输入到待训练的BERT模型中,其中,待训练的资源预测模型为待训练的BERT模型;
在待训练的BERT模型中,根据每个训练样本中的一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,确定一个任务在一个历史周期中的一个时段上的预测资源占用状态,并根据确定出的多个时段中的每个时段上的任务的预测资源占用状态,确定多个时段中的每一个时段上的预测资源占用状态;
确定多个时段中的每一个时段上的预测资源占用状态与多个时段中的每一个时段上的实际资源占用状态之间的损失值是否满足预设的损失条件;
在待训练的BERT模型输出的多个时段中的每一个时段上的预测资源占用状态与多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足预设的损失条件的情况下,对待训练的BERT模型中的参数进行调整。
可选地,在本实施例中,以BERT模型为例,构建BERT模型,
其中,表示输入向量,表示隐藏层向量,表示输出向量;WY,WH,W′H,UH,U′H分别表示参数矩阵;BH,BY分别表示参数向量;表示隐含层的激活函数,sig modY分别表示输出层激活函数。初始状态,隐藏层采用第一期(T-n期)的真实输出向量的概率变换隐藏层采用第一期(T-n期)的真实输出向量的概率变换
作为一种可选的方案,在根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型之后,方法还包括:
获取在目标未来周期中预约调度的目标任务集合以及预约调度时段集合,其中,预约调度时段集合中的每个预约调度时段是目标任务集合中的任务在目标未来周期上的调度时段;
获取目标调度时段集合中的每个目标调度时段上的预测资源占用状态、以及获取目标调度时段上的平均调度任务数量,其中,每个目标调度时段上的预测资源占用状态是根据目标资源预测模型确定得到的资源占用状态;
根据预约调度时段集合、每个目标调度时段上的预测资源占用状态、以及平均调度任务数量,调整目标未来周期中的每个预约调度时段上预约调度的任务的数量。
可选地,在本实施例中,上述目标未来周期可以包括但不限于当前周期的下一个周期,例如,在当前周期为2月2日时,则上述目标未来周期即为2月3日。
可选地,在本实施例中,上述目标任务集合可以包括但不限于在目标未来周期中待调度的任务组成的任务集合,上述预约调度时段包括但不限于上述目标任务集合中的任务所预约调度的时段。
可选地,在本实施例中,上述获取目标调度时段集合中的每个目标调度时段上的预测资源占用状态可以包括但不限于根据目标资源预测模型确定,例如,输入一个任务在当前周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在当前周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在当前周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,则上述目标资源预测模型的输出即为上述目标未来周期中每个目标调度时段上的预测资源占用状态。
可选地,在本实施例中,上述目标调度时段上的平均调度任务数量可以包括但不限于根据目标未来周期所需要调度的任务总数除以目标调度时段的数量得到,换言之,上述平均调度任务数量表示每个目标调度时段所调度的任务数量。
作为一种可选的方案,方法还包括:
获取第二任务调度历史信息和第二资源占用状态信息,其中,第二任务调度历史信息包括目标未来周期之前的M个历史周期中被调度的任务的调度特征,M个历史周期中的每个历史周期包括多个时段,M为大于或等于1的整数,第二资源占用状态信息包括M个历史周期中被调度的任务的资源占用状态标签;
根据第二任务调度历史信息和第二资源占用状态信息,确定目标测试样本集合,其中,目标测试样本集合中的每个测试样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,M个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务;
将目标测试样本集合输入到目标资源预测模型,得到多个时段中的每一个时段上的预测资源占用状态,其中,目标资源预测模型用于根据通过目标测试样本集合中的每个测试样本,确定多个时段中的每一个时段上的预测资源占用状态,目标调度时段集合为多个时段,目标调度时段集合中的每个目标调度时段上的预测资源占用状态为多个时段中的每一个时段上的预测资源占用状态。
可选地,在本实施例中,上述第二任务调度历史信息包括但不限于目标未来周期之前的M个历史周期中被调度的任务的调度特征,上述第二资源占用状态信息可以包括但不限于M个历史周期中被调度的任务的资源占用状态标签。
可选地,在本实施例中,上述目标测试样本集合可以包括但不限于与上述目标训练样本集合相同,还可以是构造的样本集合中除目标训练样本集合之外的其他样本组成的集合。
作为一种可选的方案,将目标测试样本集合输入到目标资源预测模型,得到多个时段中的每一个时段上的预测资源占用状态,包括:
将目标测试样本集合中的每个测试样本依次输入到目标资源预测模型;
在目标资源预测模型中,根据每个测试样本中的一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,确定一个任务在一个历史周期中的一个时段上的预测资源占用状态,并根据确定出的多个时段中的每个时段上的任务的预测资源占用状态,确定多个时段中的每一个时段上的预测资源占用状态。
可选地,在本实施例中,如图6所示,X(Task2)表示任务Task2在T-1历史周期中的0时段上的调度特征,Y(Task2)表示任务Task2在T-1历史周期中的1时段上的资源占用状态标签,Task1是Task2的父任务,Task3是Task1的子任务,X(Task1)表示任务Task1在T-1历史周期中的0时段(1时段的上一个时段)上的调度特征,Y(Task1)表示任务Task1在T-1历史周期中的0时段(1时段的上一个时段)上的资源占用状态标签,X(Task3)表示任务Task3在T-2历史周期中的2时段(1时段的下一个时段)上的调度特征,Y(Task3)表示任务Task3在T-2历史周期中的2时段(1时段的下一个时段)上的资源占用状态标签,则X(Task1)、Y(Task1)、X(Task2)、Y(Task2)以及X(Task3)、Y(Task3)即为上述目标测试样本集合中的一个目标测试样本。
作为一种可选的方案,获取目标调度时段上的平均调度任务数量,包括:
在目标调度时段集合为多个时段、以及多个时段为P个时段的情况下,获取目标未来周期之前的1个历史周期中调度的任务的总数量,其中,P为大于或等于2的整数;将平均调度任务数量确定为等于总数量除以P所得到的取值;或者
在目标调度时段集合为多个时段、以及多个时段为P个时段的情况下,获取目标未来周期之前的Q个历史周期中的每个历史周期中调度的任务的总数量,得到Q个总数量,其中,P为大于或等于2的整数,Q为大于或等于2的整数;将Q个总数量中的每个总数量分别除以P,得到Q个取值;将平均调度任务数量确定为等于Q个取值的平均值,或者,等于Q个取值的加权之和。
可选地,在本实施例中,上述目标未来周期之前的1个历史周期可以包括但不限于最靠近目标未来周期的1个历史周期,例如,在目标未来周期表示明天时,则上述1个历史周期可以包括但不限于今天或者昨天。
可选地,在本实施例中,上述目标未来周期之前的Q个历史周期可以包括但不限于最靠近目标未来周期的Q个历史周期,例如,在目标未来周期表示明天时,则上述1个历史周期可以包括但不限于今天和昨天。
作为一种可选的方案,根据预约调度时段集合、每个目标调度时段上的预测资源占用状态、以及平均调度任务数量,调整目标未来周期中的每个预约调度时段上预约调度的任务的数量,包括:
对预约调度时段集合中的每个预约调度时段,执行以下操作,其中,执行以下操作时,每个预约调度时段为当前预约调度时段:
获取目标任务集合中在当前预约调度时段上预约调度的任务的数量;
在预约调度的任务的数量小于或等于平均调度任务数量的情况下,保持在当前预约调度时段上预约调度的任务的数量不变;
在预约调度的任务的数量大于平均调度任务数量的情况下,在当前预约调度时段上预约调度的任务中确定目标数量的任务,其中,目标数量等于预约调度的任务的数量与平均调度任务数量之间的差值;根据当前预约调度时段之后的目标调度时段上的预测资源占用状态,将目标数量的任务的预约调度时段调整为当前预约调度时段之后的一个或多个预约调度时段。
可选地,在本实施例中,上述每个预约调度时段即为一个待调度任务的预约调度时段,上述在预约调度的任务的数量小于或等于平均调度任务数量的情况下,保持在当前预约调度时段上预约调度的任务的数量不变可以包括但不限于在当前预约调度时段上预约调度的任务数量小于或等于平均值的情况下,则按照预约调度时段与任务的对应关系实现任务调度。在预约调度的任务的数量大于平均调度任务数量的情况下,确定预约调度的任务的数量与平均调度任务数量之间的差值,并将目标数量的任务调整为当前预约调度时段之后的一个或多个预约调度时段,其中,调整的具体方式可以根据当前预约调度时段之后的预约调度时段上的预测资源占用状态确定。
例如,获取第T+1天调度任务ID及预约调度时间,输入目标调度时段集合中的每个目标调度时段上的预测资源占用状态,获取历史每个目标调度时段的调度任务数,并计算目标调度时段的平均调度任务数,按照时间优先原则将任务预约调度时段与目标调度时段进行匹配,将第T+1天调度任务按照平均任务数分配到第T+1天中的每一个目标调度时段,如果该目标调度时段所调度的任务已超过平均任务数,则按时间顺序顺延至下一目标调度时段。
作为一种可选的方案,根据当前预约调度时段之后的目标调度时段上的预测资源占用状态,将目标数量的任务的预约调度时段调整为当前预约调度时段之后的一个或多个预约调度时段,包括:
查找在当前预约调度时段之后的满足第一预设条件的第一个预约调度时段,其中,第一预设条件包括:与第一个预约调度时段相同的目标调度时段上的预测资源占用状态表示目标调度时段上的预测资源利用率小于预设阈值、且第一个预约调度时段上预约调度的任务的数量与目标数量之和小于或等于平均调度任务数量;在查找到满足第一预设条件的第一个预约调度时段的情况下,将目标数量的任务的预约调度时段调整为满足第一预设条件的第一个预约调度时段;或者
查找在当前预约调度时段之后的满足第二预设条件的第一组预约调度时段,其中,第二预设条件包括:与第一组预约调度时段中的每个预约调度时段相同的目标调度时段上的预测资源占用状态表示目标调度时段上的预测资源利用率小于预设阈值、第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于平均调度任务数量、且每个预约调度时段上预约调度的任务的数量与平均调度任务数量之间的差值的总和大于或等于目标数量;在查找到满足第二预设条件的第一组预约调度时段的情况下,将目标数量的任务中的每个任务的预约调度时段分别调整为第一组预约调度时段中对应的预约调度时段,其中,调整完之后的第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于或等于平均调度任务数量。
可选地,在本实施例中,上述与第一个预约调度时段相同的目标调度时段上的预测资源占用状态表示目标调度时段上的预测资源利用率小于预设阈值、且第一个预约调度时段上预约调度的任务的数量与目标数量之和小于或等于平均调度任务数量,则将该目标调度时段作为目标数量的任务调整后的预约调度时段。
例如,当任务A的当前预约调度时段为1:00,而1:00所预约的任务数量为10,平均调度任务数量为5,则由于10>5,需要将任务A调整至1:00之后的时段中,此时,获取1:00之后的时段中,预测资源利用率小于预设阈值的时段为3:00,且3:00所调度的任务数量为3,则将任务A调整至3:00调度,也即,3:00所对应的时段即为任务A的第一个预约调度时段。
可选地,在本实施例中,上述与第一组预约调度时段中的每个预约调度时段相同的目标调度时段上的预测资源占用状态表示目标调度时段上的预测资源利用率小于预设阈值、第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于平均调度任务数量、且每个预约调度时段上预约调度的任务的数量与平均调度任务数量之间的差值的总和大于或等于目标数量,则将第一组预约调度时段中对应的预约调度时段作为目标数量的任务调整后的预约调度时段。
例如,当任务A、任务B的当前预约调度时段为1:00,而1:00所预约的任务数量为10,平均调度任务数量为5,则由于10>5,需要将任务A调整至1:00之后的时段中,此时,获取1:00之后的时段中,预测资源利用率小于预设阈值的时段为3:00,5:00,其中,3:00所调度的任务数量为4,5:00所调度的任务数量为3,则将任务A调整至3:00调度,则将任务B调整至5:00调度,也即,3:00和5:00所对应的时段即为任务A之后的第一组预约调度时段中对应的预约调度时段。
作为一种可选的方案,在调整目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,方法还包括:
在目标未来周期中的当前预约调度时段上,检测当前预约调度时段上预约调度的任务是否都运行完毕;
在检测出当前预约调度时段上预约调度的任务都运行完毕、且当前预约调度时段上仍存在剩余资源时,从当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务;在当前预约调度时段上调度一个或多个任务。
可选地,在本实施例中,上述检测当前预约调度时段上预约调度的任务是否运行完毕可以包括但不限于接收到任务完成的反馈信息或者触发信息。上述当前预约调度时段上仍存在剩余资源时可以包括但不限于当前预约调度时段的资源占用率小于预设阈值,此时,将当前预约调度时段之后的预约调度时段上预约的任务提前调度到当前预约调度时段以运行。
作为一种可选的方案,从当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务,包括:
查找在当前预约调度时段之后的满足第三预设条件的第一个预约调度时段,其中,第三预设条件包括:与第一个预约调度时段相同的目标调度时段上的预测资源占用状态表示目标调度时段上的预测资源利用率大于或等于预设阈值;
在查找到满足第三预设条件的第一个预约调度时段的情况下,在满足第三预设条件的第一个预约调度时段中确定一个或多个任务。
可选地,在本实施例中,上述满足第三预设条件的第一个预约调度时段可以包括但不限于预测资源利用率大于或等于预设阈值的预约调度时段,因此,在需要减少第一个预约调度时段中的任务数量时,通过确定该时段中一个或多个任务,以提前调度至当前预约调度时段运行,提高了资源利用效率。
作为一种可选的方案,在调整目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,方法还包括:
在目标未来周期中的当前预约调度时段上,检测当前预约调度时段上的资源是否少于当前预约调度时段上预约调度的任务运行所需的资源;
在检测出当前预约调度时段上的资源少于当前预约调度时段上预约调度的任务运行所需的资源时,在当前预约调度时段上预约调度的任务中确定一个或多个任务;将一个或多个任务的预约调度时段从当前预约调度时段调整为当前预约调度时段之后的预约调度时段。
可选地,在本实施例中,上述检测当前预约调度时段上预约调度的任务是否运行完毕可以包括但不限于接收到任务完成的反馈信息或者触发信息。上述当前预约调度时段上的资源少于当前预约调度时段上预约调度的任务运行所需的资源时可以包括但不限于当前预约调度时段的资源占用率大于或等于预设阈值,此时,将当前预约调度时段的任务向后调度至当前预约调度时段之后的预约调度时段上运行。
作为一种可选的方案,将一个或多个任务的预约调度时段从当前预约调度时段调整为当前预约调度时段之后的预约调度时段,包括:
查找在当前预约调度时段之后的满足第四预设条件的第一个预约调度时段,其中,第四预设条件包括:与第一个预约调度时段相同的目标调度时段上的预测资源占用状态表示目标调度时段上的预测资源利用率小于预设阈值;
在查找到满足第四预设条件的第一个预约调度时段的情况下,将一个或多个任务的预约调度时段从当前预约调度时段调整为满足第四预设条件的第一个预约调度时段。
可选地,在本实施例中,上述满足第四预设条件的第一个预约调度时段可以包括但不限于预测资源利用率小于预设阈值的预约调度时段,因此,在需要减少当前预约调度时段中的任务数量时,通过确定当前预约时段中一个或多个任务,以向后调度至当前预约调度时段之后的第一个预约调度时段运行,提高了资源利用效率。
下面结合具体的示例,对本申请进行进一步的解释说明:
现有关于任务调度的资源占用预测问题,主要是利用过去历史数据进行各个任务资源占用预测,然而,对于具有上下文相互依赖的资源占用问题,目前并没有相关方案解决。
由于上下相互依赖的调度任务,是一个关于任务调度时间先后的问题,即当前任务的运行要受到上一任务运行的影响,而下一任务的运行状态(设置的启动时间等),也影响到当前任务的资源占用。本申请通过BERT算法,解决具有上下相互依赖关系的任务调度的资源预测问题。由于该任务调度是基于上一任务完成后,才能启动当期任务,而当期任务的运行,又影响下一期的任务调度问题。因此,BERT算法满足具有上下依赖关系的业务场景,解决了每个时间段内具有上下依赖关系的调度任务的资源占用预测问题。
本申请的技术流程主要分为以下11个阶段:集群数据获取阶段、上下依赖任务ID构建阶段、上下依赖关系任务样本标签提取阶段、具有上下依赖关系的调度任务特征数据构建阶段、样本构建阶段、BERT模型构建阶段、BERT模型训练测试阶段、BERT模型预测阶段、预测分类阶段、任务预约与资源预测匹配阶段、任务调度阶段。
图8是根据本申请实施例的又一种可选的基于资源预测模型的任务调度方法的示意图,如图8所示,包括但不限于如下步骤:
Step1、集群数据获取阶段。从集群监测数据库中(mysql、oracle等)获取集群数据(获取T-n,…,T n+1天,每天0~24小时,每个小时的数据),包括但不限于:每个任务的id、每个任务实际调度时间、每个任务提交时间、每个任务设定开始时间、每个任务结束时间、每个任务报错时间、每个任务重启时间、每个时间段资源占用率、每个任务调度占用资源率。
Step2、上下依赖任务ID构建阶段。从集群监测数据库中获取调度任务的ID及上下依赖关系的调度任务ID构成具有上下依赖关系的任务ID对应关系库D。
Step3、上下依赖关系任务样本标签提取阶段。输入Step1获取的数据,任务上下依赖任务ID对应关系库D。将每天每个时段集群资源利用率转化为分类标签(其中,资源利用率超过70%(专家意见),标记为0(负样本);否则,标记为1(正样本))。根据任务ID,将分类标签与任务上下依赖任务ID对应关系库D进行匹配,得到具有上下依赖关系任务的样本标签矩阵其中,表示第i天第j个小时段内集群资源利用率分类标签。
Step4、具有上下依赖关系的调度任务特征数据构建阶段。特征数据包括但不限于:过去n+1天(T,T-1,T-2,…,T-n)每一个小时粒度的集群的占用率、调度任务数、调度任务平均等待时间、任务平均运行时间、任务平均占用资源数、每个时间区域集群资源总量、平均关联任务数、关联任务平均完成时间、关联任务平均占用资源数、任务下发时间与任务启动时间差、任务下发时间是否落入该下发时间所在时间区间等作为样本特征数据矩阵。根据任务ID将具有上下依赖关系的任务库D与样本特征数据进行匹配,得到具有上下依赖关系的调度任务特征数据矩阵表示第i天第j个小时段内的样本特征数据。
Step5、样本构建阶段。输入Step4的具有上下依赖关系任务的标签数据和具有上下依赖关系任务的特征数据 将特征数据矩阵中的T-n,…,T-1部分记为特征数据中的T-n+1,…,T部分记为将标签数据矩阵Y与特征数据XT-1和XT按照任务ID和及每个任务当前主节点(对应于前述的周期)的上一子节点(对应于前述的时段)及上一主节点的下一子节点的相应的任务进行匹配,得到T-1期的时间序列样本集ST-1,该样本集用于构建训练样本和测试样本。对于ST-1按一定比例随机切分为训练样本(比例为а)和测试样本(比例为1-а),例如,按照通用经验将样本随机切分为训练样本:测试样本=8:2(即,按8:2的比例随机切分训练样本和测试样本)。对于XT用于构建预测样本。
Step6、BERT模型构建阶段。构建BERT模型,
其中,表示输入向量,表示隐藏层向量,表示输出向量;WY,WH,W′H,UH,U′H分别表示参数矩阵;BH,BY分别表示参数向量;tanhH表示隐含层的激活函数,sigmodY分别表示输出层激活函数。初始状态,隐藏层采用第一期(T-n期)的真实输出向量的概率变换隐藏层采用第一期(T-n期)的真实输出向量的概率变换
Step8、BERT模型预测阶段。输入Step5的预测样本XT,Step7的参数矩阵WY,WH,W′H,UH,U′H分别表示参数矩阵;BH,BY分别表示参数向量;t期第i个小时段的隐藏层利用代入上述参数得到第t天第i+1个小时段的任务调度的概率向量P{Yt+1}。
Step9、预测分类阶段。对Step6预测得到的分类概率按照一定阈值(一般为0.5)进行目标划分(其中,目标时段表示集群资源占用率低于70%的时段,其对应的分类概率大于0.5,标记为1,否则标记为0)。
Step10、任务预约与资源预测匹配阶段。获取任务第T+1天调度任务ID及预约调度时间,输入Step9中任务调度目标时段,获取历史每个目标时间段的调度任务数,并计算目标时间段的平均调度任务数,按照时间优先原则将调度任务预约时间与任务调配目标时段进行匹配,将第T+1天调度任务按照平均任务数分配到第T+1天中的每一个时间段,如果该时间段已超过其平均任务数,则按时间顺序顺延至下一时间段。
Step11、任务调度。按照时间的先后顺序及Step8预分配的调度任务顺序先后启动任务,如果当前时间段任务已经运行完毕,且资源仍然有剩余,则将下一时间段的任务按照Step8的排序,往前顺移至当前时间段进行调度;如果当前时间段出现资源紧张,则将当前时间段的调度任务,按照Step8的排序,往后推移至下一时间段进行调度。
本申请通过BERT算法,解决具有上下相互依赖关系的任务调度的资源预测问题。由于该任务调度是基于上一任务完成后,才能启动当期任务,而当期任务的运行,又影响下一期的任务调度问题。因此,BERT算法满足具有上下依赖关系的业务场景,解决了每个时间段内具有上下依赖关系的调度任务的资源占用预测问题。
本申请构建了调度任务的上下依赖关系库,将每个任务的父任务和子任务进行匹配,并与样本标签及样本特征数据进行匹配,得到具有上下依赖关系的调度任务样本标签和样本特征。有效刻画了任务调度的相互依赖关系及特征。
本申请方案在构建BERT算法时,采用当前主节点的上一子节点的特征数据,及上一主节点对应下一子节点的资源占用状态标签预测当前主节点对应当前子节点的资源占用状态(例如,采用当天10时的特征数据,及上一天12时的特征数据,预测当天11时的资源占用状态)。
本申请根据上下依赖关系的样本数据重新构建BERT算法模型,能够有效反映上下依赖关系的样本特征对标签状态的量化影响关系。
本申请能够充分利用BERT的特性,利用双向特征进行状态预测,根据调度任务的时间顺序特征及标签,解决上下相关依赖关系的任务调度的资源占用预测问题,也有效提高预测的准确度。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
根据本申请实施例的另一个方面,还提供了一种用于实施上述基于资源预测模型的任务调度方法的基于资源预测模型的任务调度装置。如图9所示,该装置包括:
获取模块902,用于获取第一任务调度历史信息和第一资源占用状态信息,其中,所述第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,所述第一资源占用状态信息包括所述被调度的任务的资源占用状态标签,所述资源占用状态标签用于表示所述被调度的任务的资源占用状态;
确定模块904,用于根据所述第一任务调度历史信息和所述第一资源占用状态信息,确定目标训练样本集合,其中,所述目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述N个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;
训练模块906,用于根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,所述待训练的资源预测模型用于根据通过所述目标训练样本集合中的每个训练样本,确定所述多个时段中的每一个时段上的预测资源占用状态。
作为一种可选的方案,所述装置用于通过如下方式根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型:将所述目标训练样本集合中的每个训练样本依次输入到所述待训练的资源预测模型中,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件,其中,在所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足所述预设的损失条件的情况下,对所述待训练的资源预测模型中的参数进行调整,所述多个时段中的每一个时段上的实际资源占用状态是根据所述每个训练样本中的所述一个任务在所述一个历史周期中的所述一个时段上的调度特征和资源占用状态标签确定得到的资源占用状态;其中,所述待训练的资源预测模型用于根据所述每个训练样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态。
作为一种可选的方案,所述装置用于通过如下方式将所述目标训练样本集合中的每个训练样本依次输入到所述待训练的资源预测模型中,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件:重复执行以下步骤,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件:在所述目标训练样本集合中选择当前训练样本,并将所述当前训练样本输入到待训练的BERT模型中,其中,所述待训练的资源预测模型为所述待训练的BERT模型;在所述待训练的BERT模型中,根据所述每个训练样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态;确定所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值是否满足所述预设的损失条件;在所述待训练的BERT模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足所述预设的损失条件的情况下,对所述待训练的BERT模型中的参数进行调整。
作为一种可选的方案,所述装置还用于:在根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型之后,获取在目标未来周期中预约调度的目标任务集合以及预约调度时段集合,其中,所述预约调度时段集合中的每个预约调度时段是所述目标任务集合中的任务在所述目标未来周期上的调度时段;获取目标调度时段集合中的每个目标调度时段上的预测资源占用状态、以及获取所述目标调度时段上的平均调度任务数量,其中,所述每个目标调度时段上的预测资源占用状态是根据所述目标资源预测模型确定得到的资源占用状态;根据所述预约调度时段集合、所述每个目标调度时段上的预测资源占用状态、以及所述平均调度任务数量,调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量。
作为一种可选的方案,所述装置还用于:获取第二任务调度历史信息和第二资源占用状态信息,其中,所述第二任务调度历史信息包括所述目标未来周期之前的M个历史周期中被调度的任务的调度特征,所述M个历史周期中的每个历史周期包括所述多个时段,M为大于或等于1的整数,所述第二资源占用状态信息包括所述M个历史周期中被调度的任务的资源占用状态标签;根据所述第二任务调度历史信息和所述第二资源占用状态信息,确定目标测试样本集合,其中,所述目标测试样本集合中的每个测试样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述M个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;将所述目标测试样本集合输入到所述目标资源预测模型,得到所述多个时段中的每一个时段上的预测资源占用状态,其中,所述目标资源预测模型用于根据通过所述目标测试样本集合中的每个测试样本,确定所述多个时段中的每一个时段上的预测资源占用状态,所述目标调度时段集合为所述多个时段,所述目标调度时段集合中的每个目标调度时段上的预测资源占用状态为所述多个时段中的每一个时段上的预测资源占用状态。
作为一种可选的方案,所述装置用于通过如下方式将所述目标测试样本集合输入到所述目标资源预测模型,得到所述多个时段中的每一个时段上的预测资源占用状态:将所述目标测试样本集合中的每个测试样本依次输入到所述目标资源预测模型;在所述目标资源预测模型中,根据所述每个测试样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态。
作为一种可选的方案,所述装置用于通过如下方式获取所述目标调度时段上的平均调度任务数量:在所述目标调度时段集合为所述多个时段、以及所述多个时段为P个时段的情况下,获取所述目标未来周期之前的1个历史周期中调度的任务的总数量,其中,P为大于或等于2的整数;将所述平均调度任务数量确定为等于所述总数量除以P所得到的取值;或者在所述目标调度时段集合为所述多个时段、以及所述多个时段为P个时段的情况下,获取所述目标未来周期之前的Q个历史周期中的每个历史周期中调度的任务的总数量,得到Q个总数量,其中,P为大于或等于2的整数,Q为大于或等于2的整数;将所述Q个总数量中的每个总数量分别除以P,得到Q个取值;将所述平均调度任务数量确定为等于所述Q个取值的平均值,或者,等于所述Q个取值的加权之和。
作为一种可选的方案,所述装置用于通过如下方式根据所述预约调度时段集合、所述每个目标调度时段上的预测资源占用状态、以及所述平均调度任务数量,调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量:对所述预约调度时段集合中的每个预约调度时段,执行以下操作,其中,执行以下操作时,所述每个预约调度时段为当前预约调度时段:获取所述目标任务集合中在所述当前预约调度时段上预约调度的任务的数量;在所述预约调度的任务的数量小于或等于所述平均调度任务数量的情况下,保持在所述当前预约调度时段上预约调度的任务的数量不变;在所述预约调度的任务的数量大于所述平均调度任务数量的情况下,在所述当前预约调度时段上预约调度的任务中确定目标数量的任务,其中,所述目标数量等于所述预约调度的任务的数量与所述平均调度任务数量之间的差值;根据所述当前预约调度时段之后的所述目标调度时段上的预测资源占用状态,将所述目标数量的任务的预约调度时段调整为所述当前预约调度时段之后的一个或多个预约调度时段。
作为一种可选的方案,所述装置用于通过如下方式根据所述当前预约调度时段之后的所述目标调度时段上的预测资源占用状态,将所述目标数量的任务的预约调度时段调整为所述当前预约调度时段之后的一个或多个预约调度时段:查找在所述当前预约调度时段之后的满足第一预设条件的第一个预约调度时段,其中,所述第一预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值、且所述第一个预约调度时段上预约调度的任务的数量与所述目标数量之和小于或等于所述平均调度任务数量;在查找到满足所述第一预设条件的所述第一个预约调度时段的情况下,将所述目标数量的任务的预约调度时段调整为满足所述第一预设条件的所述第一个预约调度时段;或者查找在所述当前预约调度时段之后的满足第二预设条件的第一组预约调度时段,其中,所述第二预设条件包括:与所述第一组预约调度时段中的每个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值、所述第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于所述平均调度任务数量、且所述每个预约调度时段上预约调度的任务的数量与所述平均调度任务数量之间的差值的总和大于或等于所述目标数量;在查找到满足所述第二预设条件的所述第一组预约调度时段的情况下,将所述目标数量的任务中的每个任务的预约调度时段分别调整为所述第一组预约调度时段中对应的预约调度时段,其中,调整完之后的所述第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于或等于所述平均调度任务数量。
作为一种可选的方案,所述装置还用于:在调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,在所述目标未来周期中的当前预约调度时段上,检测所述当前预约调度时段上预约调度的任务是否都运行完毕;在检测出所述当前预约调度时段上预约调度的任务都运行完毕、且所述当前预约调度时段上仍存在剩余资源时,从所述当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务;在所述当前预约调度时段上调度所述一个或多个任务。
作为一种可选的方案,所述装置用于通过如下方式从所述当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务:查找在所述当前预约调度时段之后的满足第三预设条件的第一个预约调度时段,其中,所述第三预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率大于或等于预设阈值;在查找到所述满足第三预设条件的第一个预约调度时段的情况下,在满足所述第三预设条件的所述第一个预约调度时段中确定所述一个或多个任务。
作为一种可选的方案,所述装置还用于:在调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,在所述目标未来周期中的当前预约调度时段上,检测所述当前预约调度时段上的资源是否少于所述当前预约调度时段上预约调度的任务运行所需的资源;在检测出所述当前预约调度时段上的资源少于所述当前预约调度时段上预约调度的任务运行所需的资源时,在所述当前预约调度时段上预约调度的任务中确定一个或多个任务;将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述当前预约调度时段之后的预约调度时段。
作为一种可选的方案,所述装置用于通过如下方式将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述当前预约调度时段之后的预约调度时段:查找在所述当前预约调度时段之后的满足第四预设条件的第一个预约调度时段,其中,所述第四预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值;在查找到所述满足第四预设条件的第一个预约调度时段的情况下,将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述满足第四预设条件的第一个预约调度时段。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理器1001执行时,执行本申请实施例提供的各种功能。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
图10示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理器1001(Central Processing Unit,CPU),其可以根据存储在只读存储器1002(Read-Only Memory,ROM)中的程序或者从存储部分1008加载到随机访问存储器1003(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器1003中,还存储有系统操作所需的各种程序和数据。中央处理器1001、在只读存储器1002以及随机访问存储器1003通过总线1004彼此相连。输入/输出接口1005(Input/Output接口,即I/O接口)也连接至总线1004。
以下部件连接至输入/输出接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1100也根据需要连接至输入/输出接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1100上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理器1001执行时,执行本申请的系统中限定的各种功能。
根据本申请实施例的又一个方面,还提供了一种用于实施上述基于资源预测模型的任务调度方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图11所示,该电子设备包括存储器1102和处理器1104,该存储器1102中存储有计算机程序,该处理器1104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一任务调度历史信息和第一资源占用状态信息,其中,第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,第一资源占用状态信息包括被调度的任务的资源占用状态标签,资源占用状态标签用于表示被调度的任务的资源占用状态;
S2,根据第一任务调度历史信息和第一资源占用状态信息,确定目标训练样本集合,其中,目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,N个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务;
S3,根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,待训练的资源预测模型用于根据通过目标训练样本集合中的每个训练样本,确定多个时段中的每一个时段上的预测资源占用状态。
可选地,本领域普通技术人员可以理解,图11所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图11中所示更多或者更少的组件(如网络接口等),或者具有与图11所示不同的配置。
其中,存储器1102可用于存储软件程序以及模块,如本申请实施例中的基于资源预测模型的任务调度方法和装置对应的程序指令/模块,处理器1104通过运行存储在存储器1102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于资源预测模型的任务调度方法。存储器1102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1102可进一步包括相对于处理器1104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1102具体可以但不限于用于存储任务的样本特征等信息。作为一种示例,如图11所示,上述存储器1102中可以但不限于包括上述基于资源预测模型的任务调度装置中的获取模块902、确定模块904以及训练模块906。此外,还可以包括但不限于上述基于资源预测模型的任务调度装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1106为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1108,用于显示上述任务数据;和连接总线1110,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机可读存储介质,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于资源预测模型的任务调度方面的各种可选实现方式中提供的基于资源预测模型的任务调度方法。
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取第一任务调度历史信息和第一资源占用状态信息,其中,第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,第一资源占用状态信息包括被调度的任务的资源占用状态标签,资源占用状态标签用于表示被调度的任务的资源占用状态;
S2,根据第一任务调度历史信息和第一资源占用状态信息,确定目标训练样本集合,其中,目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、一个任务的父任务在一个历史周期中一个时段的上一个时段上的调度特征和资源占用状态标签、以及一个任务的子任务在一个历史周期的上一个历史周期中一个时段的下一个时段上的调度特征和资源占用状态标签,N个历史周期包括一个历史周期和上一个历史周期,被调度的任务包括一个任务、父任务和子任务;
S3,根据目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,待训练的资源预测模型用于根据通过目标训练样本集合中的每个训练样本,确定多个时段中的每一个时段上的预测资源占用状态。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (17)
1.一种基于资源预测模型的任务调度方法,其特征在于,包括:
获取第一任务调度历史信息和第一资源占用状态信息,其中,所述第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,所述第一资源占用状态信息包括所述被调度的任务的资源占用状态标签,所述资源占用状态标签用于表示所述被调度的任务的资源占用状态;
根据所述第一任务调度历史信息和所述第一资源占用状态信息,确定目标训练样本集合,其中,所述目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述N个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;
根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,所述待训练的资源预测模型用于根据通过所述目标训练样本集合中的每个训练样本,确定所述多个时段中的每一个时段上的预测资源占用状态。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,包括:
将所述目标训练样本集合中的每个训练样本依次输入到所述待训练的资源预测模型中,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件,
其中,在所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足所述预设的损失条件的情况下,对所述待训练的资源预测模型中的参数进行调整,所述多个时段中的每一个时段上的实际资源占用状态是根据所述每个训练样本中的所述一个任务在所述一个历史周期中的所述一个时段上的调度特征和资源占用状态标签确定得到的资源占用状态;
其中,所述待训练的资源预测模型用于根据所述每个训练样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标训练样本集合中的每个训练样本依次输入到所述待训练的资源预测模型中,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件,包括:
重复执行以下步骤,直到所述待训练的资源预测模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值满足预设的损失条件:
在所述目标训练样本集合中选择当前训练样本,并将所述当前训练样本输入到待训练的BERT模型中,其中,所述待训练的资源预测模型为所述待训练的BERT模型;
在所述待训练的BERT模型中,根据所述每个训练样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态;
确定所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值是否满足所述预设的损失条件;
在所述待训练的BERT模型输出的所述多个时段中的每一个时段上的预测资源占用状态与所述多个时段中的每一个时段上的实际资源占用状态之间的损失值不满足所述预设的损失条件的情况下,对所述待训练的BERT模型中的参数进行调整。
4.根据权利要求1所述的方法,其特征在于,在根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型之后,所述方法还包括:
获取在目标未来周期中预约调度的目标任务集合以及预约调度时段集合,其中,所述预约调度时段集合中的每个预约调度时段是所述目标任务集合中的任务在所述目标未来周期上的调度时段;
获取目标调度时段集合中的每个目标调度时段上的预测资源占用状态、以及获取所述目标调度时段上的平均调度任务数量,其中,所述每个目标调度时段上的预测资源占用状态是根据所述目标资源预测模型确定得到的资源占用状态;
根据所述预约调度时段集合、所述每个目标调度时段上的预测资源占用状态、以及所述平均调度任务数量,调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取第二任务调度历史信息和第二资源占用状态信息,其中,所述第二任务调度历史信息包括所述目标未来周期之前的M个历史周期中被调度的任务的调度特征,所述M个历史周期中的每个历史周期包括所述多个时段,M为大于或等于1的整数,所述第二资源占用状态信息包括所述M个历史周期中被调度的任务的资源占用状态标签;
根据所述第二任务调度历史信息和所述第二资源占用状态信息,确定目标测试样本集合,其中,所述目标测试样本集合中的每个测试样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述M个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;
将所述目标测试样本集合输入到所述目标资源预测模型,得到所述多个时段中的每一个时段上的预测资源占用状态,其中,所述目标资源预测模型用于根据通过所述目标测试样本集合中的每个测试样本,确定所述多个时段中的每一个时段上的预测资源占用状态,所述目标调度时段集合为所述多个时段,所述目标调度时段集合中的每个目标调度时段上的预测资源占用状态为所述多个时段中的每一个时段上的预测资源占用状态。
6.根据权利要求5所述的方法,其特征在于,所述将所述目标测试样本集合输入到所述目标资源预测模型,得到所述多个时段中的每一个时段上的预测资源占用状态,包括:
将所述目标测试样本集合中的每个测试样本依次输入到所述目标资源预测模型;
在所述目标资源预测模型中,根据所述每个测试样本中的所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,确定所述一个任务在所述一个历史周期中的所述一个时段上的预测资源占用状态,并根据确定出的所述多个时段中的每个时段上的任务的预测资源占用状态,确定所述多个时段中的每一个时段上的预测资源占用状态。
7.根据权利要求4所述的方法,其特征在于,所述获取所述目标调度时段上的平均调度任务数量,包括:
在所述目标调度时段集合为所述多个时段、以及所述多个时段为P个时段的情况下,获取所述目标未来周期之前的1个历史周期中调度的任务的总数量,其中,P为大于或等于2的整数;将所述平均调度任务数量确定为等于所述总数量除以P所得到的取值;或者
在所述目标调度时段集合为所述多个时段、以及所述多个时段为P个时段的情况下,获取所述目标未来周期之前的Q个历史周期中的每个历史周期中调度的任务的总数量,得到Q个总数量,其中,P为大于或等于2的整数,Q为大于或等于2的整数;将所述Q个总数量中的每个总数量分别除以P,得到Q个取值;将所述平均调度任务数量确定为等于所述Q个取值的平均值,或者,等于所述Q个取值的加权之和。
8.根据权利要求4所述的方法,其特征在于,所述根据所述预约调度时段集合、所述每个目标调度时段上的预测资源占用状态、以及所述平均调度任务数量,调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量,包括:
对所述预约调度时段集合中的每个预约调度时段,执行以下操作,其中,执行以下操作时,所述每个预约调度时段为当前预约调度时段:
获取所述目标任务集合中在所述当前预约调度时段上预约调度的任务的数量;
在所述预约调度的任务的数量小于或等于所述平均调度任务数量的情况下,保持在所述当前预约调度时段上预约调度的任务的数量不变;
在所述预约调度的任务的数量大于所述平均调度任务数量的情况下,在所述当前预约调度时段上预约调度的任务中确定目标数量的任务,其中,所述目标数量等于所述预约调度的任务的数量与所述平均调度任务数量之间的差值;根据所述当前预约调度时段之后的所述目标调度时段上的预测资源占用状态,将所述目标数量的任务的预约调度时段调整为所述当前预约调度时段之后的一个或多个预约调度时段。
9.根据权利要求8所述的方法,其特征在于,所述根据所述当前预约调度时段之后的所述目标调度时段上的预测资源占用状态,将所述目标数量的任务的预约调度时段调整为所述当前预约调度时段之后的一个或多个预约调度时段,包括:
查找在所述当前预约调度时段之后的满足第一预设条件的第一个预约调度时段,其中,所述第一预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值、且所述第一个预约调度时段上预约调度的任务的数量与所述目标数量之和小于或等于所述平均调度任务数量;在查找到满足所述第一预设条件的所述第一个预约调度时段的情况下,将所述目标数量的任务的预约调度时段调整为满足所述第一预设条件的所述第一个预约调度时段;或者
查找在所述当前预约调度时段之后的满足第二预设条件的第一组预约调度时段,其中,所述第二预设条件包括:与所述第一组预约调度时段中的每个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值、所述第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于所述平均调度任务数量、且所述每个预约调度时段上预约调度的任务的数量与所述平均调度任务数量之间的差值的总和大于或等于所述目标数量;在查找到满足所述第二预设条件的所述第一组预约调度时段的情况下,将所述目标数量的任务中的每个任务的预约调度时段分别调整为所述第一组预约调度时段中对应的预约调度时段,其中,调整完之后的所述第一组预约调度时段中的每个预约调度时段上预约调度的任务的数量均小于或等于所述平均调度任务数量。
10.根据权利要求4至9中任一项所述的方法,其特征在于,在调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,所述方法还包括:
在所述目标未来周期中的当前预约调度时段上,检测所述当前预约调度时段上预约调度的任务是否都运行完毕;
在检测出所述当前预约调度时段上预约调度的任务都运行完毕、且所述当前预约调度时段上仍存在剩余资源时,从所述当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务;在所述当前预约调度时段上调度所述一个或多个任务。
11.根据权利要求10所述的方法,其特征在于,所述从所述当前预约调度时段之后的预约调度时段上预约调度的任务中确定一个或多个任务,包括:
查找在所述当前预约调度时段之后的满足第三预设条件的第一个预约调度时段,其中,所述第三预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率大于或等于预设阈值;
在查找到所述满足第三预设条件的第一个预约调度时段的情况下,在满足所述第三预设条件的所述第一个预约调度时段中确定所述一个或多个任务。
12.根据权利要求4至9中任一项所述的方法,其特征在于,在调整所述目标未来周期中的每个预约调度时段上预约调度的任务的数量之后,所述方法还包括:
在所述目标未来周期中的当前预约调度时段上,检测所述当前预约调度时段上的资源是否少于所述当前预约调度时段上预约调度的任务运行所需的资源;
在检测出所述当前预约调度时段上的资源少于所述当前预约调度时段上预约调度的任务运行所需的资源时,在所述当前预约调度时段上预约调度的任务中确定一个或多个任务;将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述当前预约调度时段之后的预约调度时段。
13.根据权利要求12所述的方法,其特征在于,所述将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述当前预约调度时段之后的预约调度时段,包括:
查找在所述当前预约调度时段之后的满足第四预设条件的第一个预约调度时段,其中,所述第四预设条件包括:与所述第一个预约调度时段相同的所述目标调度时段上的预测资源占用状态表示所述目标调度时段上的预测资源利用率小于预设阈值;
在查找到所述满足第四预设条件的第一个预约调度时段的情况下,将所述一个或多个任务的预约调度时段从所述当前预约调度时段调整为所述满足第四预设条件的第一个预约调度时段。
14.一种基于资源预测模型的任务调度装置,其特征在于,包括:
获取模块,用于获取第一任务调度历史信息和第一资源占用状态信息,其中,所述第一任务调度历史信息包括N个历史周期中被调度的任务的调度特征,每个历史周期包括多个时段,N为大于或等于1的整数,所述第一资源占用状态信息包括所述被调度的任务的资源占用状态标签,所述资源占用状态标签用于表示所述被调度的任务的资源占用状态;
确定模块,用于根据所述第一任务调度历史信息和所述第一资源占用状态信息,确定目标训练样本集合,其中,所述目标训练样本集合中的每个训练样本包括一个任务在一个历史周期中的一个时段上的调度特征和资源占用状态标签、所述一个任务的父任务在所述一个历史周期中所述一个时段的上一个时段上的调度特征和资源占用状态标签、以及所述一个任务的子任务在所述一个历史周期的上一个历史周期中所述一个时段的下一个时段上的调度特征和资源占用状态标签,所述N个历史周期包括所述一个历史周期和所述上一个历史周期,所述被调度的任务包括所述一个任务、所述父任务和所述子任务;
训练模块,用于根据所述目标训练样本集合,对待训练的资源预测模型进行训练,得到目标资源预测模型,其中,所述待训练的资源预测模型用于根据通过所述目标训练样本集合中的每个训练样本,确定所述多个时段中的每一个时段上的预测资源占用状态。
15.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序可被终端设备或计算机运行时执行所述权利要求1至13任一项中所述的方法。
16.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至13任一项中所述方法的步骤。
17.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至13任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210009635.2A CN114416313A (zh) | 2022-01-05 | 2022-01-05 | 基于资源预测模型的任务调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210009635.2A CN114416313A (zh) | 2022-01-05 | 2022-01-05 | 基于资源预测模型的任务调度方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416313A true CN114416313A (zh) | 2022-04-29 |
Family
ID=81270835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210009635.2A Pending CN114416313A (zh) | 2022-01-05 | 2022-01-05 | 基于资源预测模型的任务调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416313A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168016A (zh) * | 2022-09-07 | 2022-10-11 | 浙江大华技术股份有限公司 | 任务调度方法及相关装置、芯片、器件和介质 |
CN115391042A (zh) * | 2022-08-29 | 2022-11-25 | 北京达佳互联信息技术有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN116757650A (zh) * | 2023-08-21 | 2023-09-15 | 欧特朗(日照)云科技有限公司 | 一种基于机器学习的项目管理及资源调度的方法 |
-
2022
- 2022-01-05 CN CN202210009635.2A patent/CN114416313A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391042A (zh) * | 2022-08-29 | 2022-11-25 | 北京达佳互联信息技术有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN115391042B (zh) * | 2022-08-29 | 2024-03-19 | 北京达佳互联信息技术有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN115168016A (zh) * | 2022-09-07 | 2022-10-11 | 浙江大华技术股份有限公司 | 任务调度方法及相关装置、芯片、器件和介质 |
CN116757650A (zh) * | 2023-08-21 | 2023-09-15 | 欧特朗(日照)云科技有限公司 | 一种基于机器学习的项目管理及资源调度的方法 |
CN116757650B (zh) * | 2023-08-21 | 2023-11-14 | 欧特朗(日照)云科技有限公司 | 一种基于机器学习的项目管理及资源调度的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114416313A (zh) | 基于资源预测模型的任务调度方法和装置 | |
US10762564B2 (en) | Autonomous peer-to-peer energy networks operating on a blockchain | |
US20190362263A1 (en) | Machine learning and prediction using graph communities | |
CN110765353B (zh) | 项目推荐模型的处理方法、装置、计算机设备和存储介质 | |
CN108763389B (zh) | 数据的整合方法及装置、存储介质、终端 | |
CN110322093B (zh) | 信息处理方法、信息显示方法、装置及计算设备 | |
AU2022201721A1 (en) | Blockchain-based transaction system for green certificate | |
CN110991789B (zh) | 置信区间的确定方法和装置、存储介质及电子装置 | |
US9342787B2 (en) | Sensor based truth maintenance | |
CN112686717B (zh) | 一种广告召回的数据处理方法及系统 | |
CN113065843A (zh) | 一种模型处理方法、装置、电子设备和存储介质 | |
CN114971748A (zh) | 预测数据生成、模型训练方法、计算机设备以及存储介质 | |
CN113706211B (zh) | 基于神经网络的广告点击率预测方法及系统 | |
Zhang et al. | A peer-to-peer smart food delivery platform based on smart contract | |
Nigam et al. | The integration of blockchain and IoT edge devices for smart agriculture: Challenges and use cases | |
CN110852809A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN110866698A (zh) | 用于评定服务提供方的服务分值的装置 | |
WO2017000014A1 (en) | Improved delivery systems and methods | |
EP3696766A1 (en) | Program, system and method for determining credit worthiness of a user | |
CN110602215A (zh) | 基于联盟区块链的资源处理方法及联盟区块链系统 | |
CN115480843A (zh) | 业务处理方法、装置、电子设备及非易失性存储介质 | |
CN111882436B (zh) | 一种基于区块链的数据处理方法、装置及设备 | |
CN110278524B (zh) | 用户位置确定方法、图模型生成方法、装置及服务器 | |
CN110300961A (zh) | 统一智能连接器 | |
Doe et al. | Incentive mechanism design for mitigating frontrunning and transaction reordering in decentralized exchanges |
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 |