时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质与流程

文档序号:22626634发布日期:2020-10-23 19:35阅读:143来源:国知局
时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质与流程
本发明涉及机器学习
技术领域
,特别是涉及时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质。
背景技术
:具有计算能力的电子设备或系统在执行任务时,需要为该任务分配一定的系统资源,如计算资源、存储资源等。如果为一个任务分配的系统资源过少,则可能导致效率较低,需要花费较多时间才能完成该任务,如果为一个任务分配的系统资源过多,则可能导致系统资源的利用率较低,即系统资源的浪费。相关技术中,可以根据系统资源的利用率弹性的为任务分配系统资源,以优化为该一个任务所分配的系统资源。但是系统资源的总量往往是有限的,为一个任务分配系统资源,会造成能够为其他任务分配的系统资源减少,因此上述方法无法应用于多个任务的应用场景。在多个任务的应用场景中,如何进行系统资源的调度,以为每个任务分配合理的系统资源,成为亟待解决的技术问题。技术实现要素:本发明实施例的目的在于提供时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质,以在多个任务的应用场景下,实现系统资源的优化分配。具体技术方案如下:在本发明实施例的第一方面,提供了一种时长预估模型生成方法,所述方法包括:获取已完成任务的任务特征、完成所述已完成任务时为所述已完成任务分配的系统资源以及完成所述已完成任务所消耗的时长;根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,所述时长预估模型用于根据任务的任务特征预估为该任务所分配的系统资源与完成该任务还需要消耗的剩余时长之间的映射关系。在一种可能的实施例中,所述根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,包括:将获取到的任务特征输入至预设初始模型,得到所述预设初始模型输出的预估时长数据,所述预估时长数据用于表示系统资源与时长之间的映射关系;根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,调整所述预设初始模型的模型参数,得到时长预估模型。在一种可能的实施例中,所述根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,调整所述预设初始模型的模型参数,得到时长预估模型,包括:根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,构建损失函数,所述损失函数与所述匹配程度负相关;根据所述损失函数,利用梯度下降法调整所述预设初始模型的模型参数,得到时长预估模型。在本发明实施例的第二方面,提供了一种系统资源调度方法,所述方法包括:获取多个未完成任务的任务特征,所述任务特征用于表示所述未完成任务的算法复杂度;针对每个所述未完成任务,将该未完成任务的任务特征输入时长预估模型,得到完成该未完成任务的预估时长数据,所述预估时长数据用于表示为该未完成任务所分配的系统资源,与完成该未完成任务还需要消耗的剩余时长之间的映射关系,所述时长预估模型用于根据任务特征确定所述映射关系,所述时长预估模型为通过前述任一所述的预估模型生成方法生成的;根据各个所述未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式;按照所述目标系统资源分配方式,为各个所述未完成任务分配系统资源。在一种可能的实施例中,在所述按照所述目标系统资源分配方式,为各个所述未完成任务分配系统资源之后,所述方法还包括:当所述未完成任务执行完成时,对应保存所述未完成任务的任务特征、所分配的系统资源以及完成所述未完成任务消耗的时长,作为新的样本数据;根据新的样本数据,对所述时长预估模型进行训练,得到新的时长预估模型。在一种可能的实施例中,所述未完成任务为未完成的训练任务,所述任务特征包括以下特征中的一个或多个特征:任务类型、所训练的模型的模型参数总量、所训练的模型中所采用的算子、所训练的模型所包括的层数、用于训练模型的训练数据的分布统计特征,其中,所述分布统计特征用于表示所述训练数据的分布情况。在一种可能的实施例中,所述获取多个未完成任务的任务特征,包括:获取所有正在执行的任务,以及待执行任务中按照优先级从高到低的顺序排序时位于前预设数目位的任务的任务特征,所述待执行任务包括尚未执行的未执行任务以及当前处于挂起状态的已执行任务。在一种可能的实施例中,所述根据各个所述未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式,包括:根据所述系统资源总量,确定所有可行系统资源分配方式,其中,所述可行系统资源分配方式为:为所有所述未完成任务分配的系统资源的总和不大于所述系统资源总量的系统资源分配方式;按照预设规则选取一个可行系统资源分配方式作为当前系统资源分配方式;依次针对所述当前系统资源分配方式的每个相邻系统资源分配方式,根据各个所述未完成任务的预估时长数据,判断所述当前系统资源分配方式的效率是否小于该相邻系统资源分配方式的效率,其中,所述相邻系统资源分配方式为与所述当前系统资源分配方式的差异程度小于预设阈值的可行系统资源分配方式;如果所述当前系统资源分配方式的效率小于该相邻系统资源分配方式的效率,将该相邻系统资源分配方式作为新的当前系统资源分配方式,并重新执行所述针对所述当前系统资源分配方式的每个相邻系统资源分配方式,根据各个所述未完成任务的预估时长,判断所述当前系统资源分配方式的效率是否小于该相邻系统资源分配方式的效率的步骤;如果所述当前系统资源分配方式的效率不小于任一相邻系统资源分配方式的效率,将所述当前系统资源分配方式确定为目标系统资源分配方式。在本发明实施例的第三方面,提供了一种时长预估模型生成装置,所述装置包括:样本数据获取模块,用于获取已完成任务的任务特征、完成所述已完成任务时为所述已完成任务分配的系统资源以及完成所述已完成任务所消耗的时长;模型训练模块,用于根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,所述时长预估模型用于根据任务的任务特征预估为该任务所分配的系统资源与完成该任务还需要消耗的剩余时长之间的映射关系。在本发明实施例的第四方面,提供了一种系统资源调度装置,所述装置包括:特征提取模块,用于获取多个未完成任务的任务特征,所述任务特征用于表示所述未完成任务的算法复杂度;时长预估模块,用于针对每个所述未完成任务,将该未完成任务的任务特征输入时长预估模型,得到完成该未完成任务的预估时长数据,所述预估时长数据用于表示为该未完成任务所分配的系统资源,与完成该未完成任务还需要消耗的剩余时长之间的映射关系,所述时长预估模型用于根据任务特征确定所述映射关系,所述时长预估模型为通过前述任一预估模型生成方法生成的;分配优化模块,用于根据各个所述未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式;资源管理模块,用于按照所述目标系统资源分配方式,为各个所述未完成任务分配系统资源。在本发明实施例的第五方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面或第二方面任一所述的方法步骤。在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面任一所述的方法步骤。本发明实施例提供的时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质,可以通过时长预估模型预估完成未完成任务在不同系统资源配置下所需要的剩余时长,以确定出在系统资源总量有限的情况下效率最高的系统资源配置,实现对系统资源配置的优化。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的时长预估模型生成方法的一种流程示意图;图2为本发明实施例提供的系统资源调度方法的一种流程示意图;图3为本发明实施例提供的最优化算法的一种流程示意图;图4为本发明实施例提供的分布式计算集群的系统资源调度系统的一种原理示意图;图5为本发明实施例提供的时长预估模型生成装置的一种结构示意图;图6a为本发明实施例提供的系统资源调度装置的一种结构示意图;图6b为本发明实施例提供的系统资源调度装置的另一种结构示意图;图7为本发明实施例提供的电子设备的一种结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,图1所示为本发明实施例提供的时长预估模型生成方法的一种流程示意图,可以包括:s101,获取已完成任务的任务特征、完成已完成任务时为已完成任务分配的系统资源以及完成已完成任务所消耗的时长。s102,根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,时长预估模型用于根据任务的任务特征预估为该任务所分配的系统资源与完成该任务还需要消耗的剩余时长之间的映射关系。选用该实施例,可以通过时长预估模型预估完成未完成任务在不同系统资源配置下所需要的剩余时长,以确定出在系统资源总量有限的情况下效率最高的系统资源配置,实现对系统资源配置的优化。其中,在s101中,任务特征用于表示任务的算法复杂度,可以理解的是,理论上分配相同的系统资源的情况下,完成算法复杂度越低的任务所花费的时间越少,完成算法复杂度越高的任务所花费的时间越长,也就是说,算法复杂度与完成任务所花费的时间呈正比例关系。根据未完成任务的类型的不同,任务特征可以不同。示例性的,以已完成任务为训练任务为例,任务特征可以包括任务类型、模型参数总量、算子、层数、用于训练模型的训练数据的分布统计特征中的一种或多种。其中,任务类型表示该训练任务的训练方式,例如,训练方式可以为监督式学习、无监督式学习、强化学习。模型参数总量表示该训练任务所训练的模型中需要通过训练确定的参数的总个数,算子用于表示该训练任务所训练的模型中所采用的算子,如智能乘积算子、激活算子等,层数用于表示该训练任务所训练的模型所包括的层数,以所训练的模型为卷积神经网络模型为例,层数可以是指卷积神经网络中卷积层与池化层的层数之和,也可以是指卷积神经网络中卷积层的层数。训练数据的分布统计特征用于表示该训练任务所使用的训练数据的分布情况,例如可以包括各训练数据的类型、偏差、均值、分布、交叉熵等。为已完成任务分配的系统资源,可以包括:为已完成任务分配的cpu数量、cpu型号,gpu数量、gpu型号、存储空间、带宽、内存等资源中的一种或多种。在s102中,可以是将获取到的任务特征输入至预设初始模型,得到预设初始模型输出的预估时长数据,根据获取到的系统资源和时长与预估时长数据所表示的映射关系的匹配程度,调整预设初始模型的模型参数,得到时长预估模型,其中,预估时长数据用于表示系统资源与时长之间的映射关系。预设初始模型可以是经过一定程度训练的模型,也可以是所有参数完全预设的模型。获取到的系统资源和时长与预估时长数据所表示的映射关系的匹配程度,可以是指获取到的系统资源和时长之间的关系与预估时长数据所表示的映射关系的接近程度。示例性的,假设为已完成任务分配的系统资源是以系统资源分配比的形式表示的,其中,系统资源分配比表示为已完成任务分配的系统资源与系统资源总量的比值,并且假设获取到的系统资源为10%,预估时长数据所表示的映射关系中,10%与30分钟相对应,则如果获取到的时长为越接近30分钟,那么获取到的系统资源和时长与预估时长数据所表示的映射关系的匹配程度越高。根据匹配程度调整预设初始模型的方式,可以是根据获取到的系统资源和时长与预估时长数据所表示的映射关系的匹配程度,构建损失函数,损失函数用于反映该匹配程度,并且与该匹配程度负相关,即在除匹配程度以外其他影响损失函数的因素不变的情况下,匹配程度越高,损失函数越小,匹配程度越低,损失函数越大。损失函数的构建可以是根据差值、交叉熵等方式构建的,本实施例对此不做限制。根据构建得到的损失函数,利用梯度下降法调整预设初始模型的模型参数,得到时长预估模型,即朝着损失函数梯度下降方向调整模型参数,直至达到预设收敛条件时,将调整得到的模型作为时长预估模型。其中,预设收敛条件可以是损失函数随模型参数的变化达到收敛,也可以是调整次数达到预设次数阈值。下面将对如何利用时长预估模型进行系统资源调度进行说明,可以参见图2,图2所示为本发明实施例提供的系统资源调度方法的一种流程示意图,可以包括:s201,获取多个未完成任务的任务特征。关于任务特征可以参见前述s101中的相关描述,在此不再赘述。可以理解的是,该步骤中获取的任务特征的类别理论上应当与训练时长预估模型时获取的已完成任务的任务特征的类别相同或相近。s202,针对每个未完成任务,将该未完成任务的任务特征输入时长预估模型,得到完成该未完成任务的预估时长数据。其中,预估时长数据用于表示为该未完成任务所分配的系统资源,与完成该未完成任务还需要消耗的剩余时长间的映射关系。其中,完成该未完成任务还需要消耗的剩余时长是指在该未完成任务的当前执行进度基础上完成该未完成任务还需要的时长,示例性的,假设在当前时刻之前已经消耗一定时长用于执行一未完成任务,并且完成了该未完成任务的40%进度,则剩余时长是指完成该未完成任务的剩余60%进度所需要消耗的时长。时长预估模型用于根据任务特征确定映射关系,时长预估模型的生成可以参见前述相关说明,在此不再赘述。可以理解的是,对于一个未完成任务,当分配的系统资源越多时,理论上完成该未完成任务所需要的时长越短,当分配的系统资源越少时,理论上完成该未完成任务所需要的时长越长,也就是说,所分配的系统资源量与未完成任务所需要的时长呈反比例关系。示例性的,对于一个未完成任务,如果分配一个cpu用于执行该未完成任务,则可能需要30分钟完成该未完成任务。如果分配两个cpu用于执行该未完成任务,则可能需要20分钟完成该未完成任务。预估时长数据用于表示为该未完成任务所分配的系统资源,与完成该未完成任务所需要的时长间的映射关系,可以是利用多个不同的系统资源分配方式,以及每种系统资源分配方式对应的完成该未完成任务还需要消耗的剩余时长表示的,示例性的,该映射关系可以是以表1所示的形式表示的:系统资源分配比(%)完成任务需要时长(分钟)103020203012408表1以表1中第二行为例,表1中第二行表示当为该未完成任务分配系统资源总量的10%的系统资源时,完成该未完成任务需要30分钟。表1中的其他行所表示的意义同理可知,不再赘述。预估时长数据用于表示为该未完成任务所分配的系统资源,与完成该未完成任务还需要消耗的剩余时长间的映射关系也可以是函数关系式的形式表示的,还可以是其他形式表示的,本实施例对此不做限制。s203,根据各个未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式。根据实际需求的不同,效率的定义可以不同。在一种可能的实施例中,可以认为每个任务的工作量是相等的,则效率可以定义为单位时间内能够完成的任务数。在其他可能的实施例中,也可以认为不同的任务的工作量是不相等的,则效率可以定义为单位时间内能够完成的工作量,每个任务的工作量可以是用户预先设定的,也可以是利用预设算法计算得到的。为描述方便,假设效率定义为单位时间内能够完成的任务数,对于其他情况原理是相同的,因此不再赘述。假设一共有3个未完成任务,分别记为未完成任务1、2、3,假设存在一种系统资源分配方式,该分配方式中未完成任务1分配到的系统资源为x1,未完成任务2分配到的系统资源为x2,未完成任务3分配到系统资源为x3,并且根据未完成任务1的预估时长数据,确定x1对应的时长为t1,根据未完成任务2的预估时长数据,确定x2对应的时长为t2,根据未完成任务3的预估时长数据,确定x3对应的时长为t3。则此时效率可以按照下式计算:q=1/t1+1/t2+1/t3其中,q为效率。虽然q与t1、t2以及t3负相关,因此q无法取到理论上的最大值(当为每个未完成任务分配的系统资源越趋近于无穷大时,q趋近于理论上的最大值),但是x1、x2、以及x3之和不能超过系统资源总量,即存在约束条件x1+x2+x3≤xtot,其中xtot为系统资源总量,因此在该约束条件下q存在理论上的极大值,当q取到该极大值时,对应的x1、x2以及x3即为目标系统资源分配方式。极大值的计算可以采用任一最优化算法得到,如启发式算法、动态规划算法等。下文将对最优化算法进行详细的示例性说明,在此不再赘述。s204,按照目标系统资源分配方式,为各个未完成任务分配系统资源。如果目标系统资源分配方式中,为每个未完成任务所分配的系统资源不为0,则按照目标系统资源分配方式,为每个未完成任务分配相应的系统资源,以执行这些未完成任务。示例性的,假设一共有3个未完成任务,分别记为未完成任务1、2、3,并且假设目标系统资源分配方式中为未完成任务1分配的系统资源为30%,为未完成任务2分配的系统资源为20%,为未完成任务3分配的系统资源为50%,则可以是调用系统资源总量的30%用于执行未完成任务1,调用系统资源总量的20%用于执行未完成任务2,调用系统资源总量的50%用于执行未完成任务3。如果目标系统资源分配方式中,为部分未完成任务所分配的系统资源为0,则按照目标系统资源分配方式,为每个未完成任务分配相应的系统资源,以执行其中分配的系统资源不为0的未完成任务。对于所分配的系统资源为0的未完成任务,由于分配的系统资源为0,因此无法执行这些未完成任务。示例性的,假设一共有3个未完成任务,分别记为未完成任务1、2、3,并且假设目标系统资源分配方式中为未完成任务1分配的系统资源为30%,为未完成任务2分配的系统资源为70%,为未完成任务3分配的系统资源为0%,则可以是调用系统资源总量的30%用于执行未完成任务1,调用系统资源总量的70%用于执行未完成任务2,并且由于目标系统资源分配方式中未完成任务3未被分配到任何系统资源,因此可以是将待未完成任务3挂起以待之后再进行处理。选用该实施例,可以通过预估完成未完成任务在不同系统资源配置下所需要的时长,以确定出在系统资源总量有限的情况下效率最高的系统资源配置,实现对系统资源配置的优化。下面将对前述s203中的最优化算法进行示例性的说明,可以参见图3,图3所示为本发明实施例提供的最优化算法的一种流程示意图,可以包括:s301,根据系统资源总量,确定所有可行系统资源分配方式。其中,可行系统资源分配方式为:为所有未完成任务分配的系统资源的总和不大于系统资源总量的系统资源方式。假设共计有n个未完成任务,为描述方便,下文以(x1,x2…,xn)的形式表示一种系统资源分配方式,其中,x1表示该系统资源分配方式中为未完成任务1分配的系统资源,x2表示该系统资源分配方式中为未完成任务2分配的系统资源,依次类推。则可行系统资源分配方式应当满足:其中xtot为系统资源总量,xi为该系统资源分配方式中为未完成任务i分配的系统资源,i为取值范围为[1,n]的正整数。可以理解的是,如果一种系统资源分配方式不满足则受限制于系统资源有限,该系统资源分配方式无法实现,因此无需考虑该系统资源分配方式。s302,按照预设规则选取一个可行系统资源分配方式作为当前系统资源分配方式。预设规则可以根据实际需求进行设置,例如预设规则可以是随机选取。s303,依次针对当前系统资源分配方式的每个相邻系统资源分配方式,根据各个未完成的预估时长数据,判断当前系统资源分配方式的效率是否小于该相邻系统资源分配方式的效率。其中,相邻系统资源分配方式为与当前系统资源分配方式的差异程度小于预设阈值的可行系统资源分配方式。示例性的,一种系统资源分配方式为(x1,x2…,xn),另一种系统资源分配方式为(x1',x2'…,xn'),则这两种系统资源分配方式的差异程度可以是按照下式计算得到:其中,δ为两种资源分配方式之间的差异程度。差异程度也可以是按照下式计算得到的:在其他可能的实施例中,也可以是按照其他距离公式计算得到的,本实施例对此不做限制。预设阈值可以根据实际需求进行设置,如1%、5%等。可以理解的是,如果当前系统资源分配方式为效率最高的系统资源分配方式,则当前系统资源分配方式应当不小于任一相邻系统资源分配方式。如果当前系统资源分配方式不为效率最高的系统资源分配方式,则存在至少一种可行系统资源分配的效率大于当前系统资源分配方式的效率。s304,如果当前系统资源分配方式的效率小于该相邻系统资源分配方式的效率,将该相邻系统资源分配方式作为新的当前系统资源分配方式,并重新执行s303。如果当前系统资源分配方式的效率小于相邻系统资源分配方式,则当前系统资源分配方式显然并非效率最高的系统资源分配方式,而如果一种系统资源分配方式与效率最高的系统资源分配方式之间的差异程度越小,则该系统资源分配方式的效率理论上越高,因此如果当前系统资源分配方式的效率小于相邻系统资源分配方式,则该相邻系统分配方式相比于当前系统资源分配方式更接近于效率最高的系统资源分配方式,因此按照该方式循环执行s303、s304可以使得当前系统资源分配方式逐步逼近效率最高的系统资源分配方式。s305,如果当前系统资源分配方式的效率不小于任一相邻系统资源分配方式的效率,将当前系统资源分配方式确定为目标系统资源分配方式。如前述分析,如果当前系统资源分配方式的效率不小于任一相邻系统资源分配方式,则可以认为当前系统资源分配方式相比于任一相邻系统资源分配方式更接近于效率最高的系统资源分配方式,即当前系统资源分配方式为效率最高的系统资源分配方式,因此可以将当前系统资源分配方式确定为目标系统资源分配方式。可以理解的是,图3所示只是一种可能的最优化算法,在其他可能的实施例中,也可以是选用其他可能的最优化算法。例如,可以是将所有系统资源按照预设规则划分为多份系统资源,例如可以将所有系统资源等分为10份。依次针对划分出的每份系统资源,计算将该份系统资源分配至每个未完成任务时效率的变化幅度,并将该份系统资源分配至变化幅度最大的未完成任务。直至分配完划分出的所有系统资源,即可得到目标系统资源分配方式。本发明实施例提供的系统资源调度方法可以应用于任一具有系统资源调度功能的电子设备,为更清楚对本发明实施例提供的系统资源调度方法以及时长预估模型生成方法进行说明,可以参见图4,图4所示为本发明实施例提供的分布式计算集群的系统资源调度系统的一种原理示意图,可以包括:任务监控子系统410、历史任务建模子系统420以及任务管理与调度子系统430。下面将结合各个子系统的业务逻辑,对分布式计算集群中系统资源的调度进行详细说明。任务监控子系统410用于监控分布式计算集群中任务的执行情况。可以定期获取各个计算集群中各个任务的任务特征,以及所分配的系统资源,以及运行时长作为各个任务的元数据。其中,一个未完成任务的运行时长是指从开始执行该任务的时刻开始,至当前时刻这一时间段内该任务处于正在执行状态的时长,可以理解的是,任务开始执行后可能处于挂起状态而没有被执行。元数据中所包括的数据,根据应用场景的不同可以不同。示例性的,在一种可能的应用场景中,元数据中可以包括:任务编号、任务类型、模型参数总量、算子、层数、训练数据分布统计特征、gpu/cpu计算资源型号与数量、计算资源使用率、任务起始点以及各保存点的已运行时长。任务编号为任务的一种标识信息,gpu/cpu计算资源型号与数量用于表示分布式集群中包括的gpu/cpu计算资源的型号,以及各个型号的gpu/cpu计算资源的数量,计算资源使用率用于表示分布式集群中计算资源的使用情况。任务起始点用于表示以及各保存点的已运行时长,用于表示该任务已经运行的时长。当任务完成时,任务监控子系统410可以将完成的任务的元数据发送至历史任务建模子系统420,已完成任务的元数据中的运行时长是指从开始执行该任务的时刻开始,至该任务完成的时刻这一时间段内该任务处于正在执行状态的时长。历史任务建模子系统420接收并保存这些元数据,并将这些元数据作为样本数据,以根据这些元数据中的任务特征、所分配的系统资源以及运行时长,构建时长预估模型。将构建得到的预估时长模型发送至任务管理与调度子系统。任务管理与调度子系统430中维护有任务队列,该任务队列中用于存储待执行任务,待执行任务可以是用户提交的尚未执行的未执行任务,也可以是当前处于挂起状态的已执行任务。任务管理与调度子系统430接收并保存历史任务建模子系统发送的时长预估模型,并从任务监控子系统410中获取所有当前正在执行的任务的元数据(也可以只获取元数据中的任务特征)。任务管理与调度子系统430,将所有当前正在执行的任务的任务特征,以及任务队列中的一个或多个待执行任务的任务特征输入至时长预估模型,得到所有当前正在执行的任务以及任务队列中的该一个或多个待执行任务的时长预估数据。任务队列中的一个或多个待执行任务,可以是指从任务队列中选取的部分待执行任务,也可以是任务队列中的所有待执行任务。从任务队列中选取部分待执行任务的方式根据应用场景的不同可以不同,示例性的,可以是从任务队列中随机选取预设数目个待执行任务,也可以是从任务队列中按照预设顺序依次选取预设数目个待执行任务,预设顺序可以是按照加入任务队列的时间由早到晚的顺序,也可以是按照加入任务队列的时间由晚到早的顺序,还可以是按照优先级由高到低的顺序,本实施例对此不做限制。当预设顺序为按照加入任务队列的时间由早到晚的顺序时,可以使得先进入任务队列的待执行任务被优先执行,实现任务的先进先出。当预设顺序为按照加入任务队列的时间由晚到早的顺序时,可以使得后进入任务队列的待执行任务被优先执行,实现任务的后进先出。任务管理与调度子系统430中的调度中心根据得到的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式。确定效率最高的系统资源分配方式的方法根据可以根据实际需求的不同而不同,示例性的,调度中心可以是通过动态规划或者启发式算法,搜索得出当前计算效率最优的任务组合及各任务资源配置,作为效率最高的系统资源分配方式,关于如何确定效率最高的系统资源分配方式可以参见前述相关描述,在此不再赘述。任务管理与调度的发起可以是定期的,例如可以是每间隔预设间隔时长发起一次任务管理与调度,预设间隔时长可以是一个小时、一天等。任务管理与调度的发起也可以是人为或者其他条件触发的,例如可以是在资源使用率过高或过低时发起任务管理与调度,又例如可以是基于深度学习训练得到的神经网络模型确定是否需要触发任务管理与调度,本实施例对此不做限制。对于当前正在执行的任务,如果目标系统资源分配方式中该任务分配的系统资源不为0,则按照该目标系统资源分配方式为该任务分配系统资源,并继续执行该任务,如果目标系统资源分配方式中该任务分配的系统资源为0,则挂起该任务。对于处于挂起状态的已执行任务,如果目标系统资源分配方式中该任务分配的系统资源不为0,则按照该目标系统资源分配方式为该任务分配系统资源,并恢复执行该任务,如果目标系统资源分配方式中该任务分配的系统资源为0,则继续挂起该任务。对于未执行任务,如果目标系统资源分配方式中该任务分配的系统资源不为0,则按照该目标系统资源分配方式为该任务分配系统资源,并开始执行该任务,如果目标系统资源分配方式中该任务分配的系统资源为0,则拒绝执行该任务。参见图5,图5所示为本发明实施例提供的时长预估模型生成装置的一种结构示意图,可以包括:样本数据获取模块501,用于获取已完成任务的任务特征、完成所述已完成任务时为所述已完成任务分配的系统资源以及完成所述已完成任务所消耗的时长;模型训练模块502,用于根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,所述时长预估模型用于根据任务的任务特征预估为该任务所分配的系统资源与完成该任务还需要消耗的剩余时长之间的映射关系。在一种可能的实施例中,所述模型训练模块502根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,包括:将获取到的任务特征输入至预设初始模型,得到所述预设初始模型输出的预估时长数据,所述预估时长数据用于表示系统资源与时长之间的映射关系;根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,调整所述预设初始模型的模型参数,得到时长预估模型。在一种可能的实施例中,所述模型训练模块502根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,调整所述预设初始模型的模型参数,得到时长预估模型,包括:根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,构建损失函数,所述损失函数与所述匹配程度负相关;根据所述损失函数,利用梯度下降法调整所述预设初始模型的模型参数,得到时长预估模型。参见图6a,图6a所示为本发明实施例提供的系统资源调度装置的一种结构示意图,所述装置包括:特征提取模块601,用于获取多个未完成任务的任务特征,所述任务特征用于表示所述未完成任务的算法复杂度;时长预估模块602,用于针对每个所述未完成任务,将该未完成任务的任务特征输入时长预估模型,得到完成该未完成任务的预估时长数据,所述预估时长数据用于表示为该未完成任务所分配的系统资源,与完成该未完成任务还需要消耗的剩余时长之间的映射关系,所述时长预估模型用于根据任务特征确定所述映射关系,所述时长预估模型为通过前述任一所述的预估模型生成方法生成的;分配优化模块603,用于根据各个所述未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式;资源管理模块604,用于按照所述目标系统资源分配方式,为各个所述未完成任务分配系统资源。在一种可能的实施例中,如图6b,所述装置还包括在线训练模块605,用于在所述按照所述目标系统资源分配方式,为各个所述未完成任务分配系统资源之后,当所述未完成任务执行完成时,对应保存所述未完成任务的任务特征、所分配的系统资源以及完成所述未完成任务消耗的时长,作为新的样本数据;根据新的样本数据,对所述时长预估模型进行训练,得到新的时长预估模型。在一种可能的实施例中,所述未完成任务为未完成的训练任务,所述任务特征包括以下特征中的一个或多个特征:任务类型、所训练的模型的模型参数总量、所训练的模型中所采用的算子、所训练的模型所包括的层数、用于训练模型的训练数据的分布统计特征,其中,所述分布统计特征用于表示所述训练数据的分布情况。在一种可能的实施例中,所述特征提取模块601获取多个未完成任务的任务特征,包括:获取所有正在执行的任务,以及待执行任务中按照优先级从高到低的顺序排序时位于前预设数目位的任务的任务特征,所述待执行任务包括尚未执行的未执行任务以及当前处于挂起状态的已执行任务。在一种可能的实施例中,所述分配优化模块603根据各个所述未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式,包括:根据所述系统资源总量,确定所有可行系统资源分配方式,其中,所述可行系统资源分配方式为:为所有所述未完成任务分配的系统资源的总和不大于所述系统资源总量的系统资源分配方式;按照预设规则选取一个可行系统资源分配方式作为当前系统资源分配方式;依次针对所述当前系统资源分配方式的每个相邻系统资源分配方式,根据各个所述未完成任务的预估时长数据,判断所述当前系统资源分配方式的效率是否小于该相邻系统资源分配方式的效率,其中,所述相邻系统资源分配方式为与所述当前系统资源分配方式的差异程度小于预设阈值的可行系统资源分配方式;如果所述当前系统资源分配方式的效率小于该相邻系统资源分配方式的效率,将该相邻系统资源分配方式作为新的当前系统资源分配方式,并重新执行所述针对所述当前系统资源分配方式的每个相邻系统资源分配方式,根据各个所述未完成任务的预估时长,判断所述当前系统资源分配方式的效率是否小于该相邻系统资源分配方式的效率的步骤;如果所述当前系统资源分配方式的效率不小于任一相邻系统资源分配方式的效率,将所述当前系统资源分配方式确定为目标系统资源分配方式。本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器403通过通信总线704完成相互间的通信,存储器703,用于存放计算机程序;处理器701,用于执行存储器703上所存放的程序时,可以实现如下步骤:获取已完成任务的任务特征、完成所述已完成任务时为所述已完成任务分配的系统资源以及完成所述已完成任务所消耗的时长;根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,所述时长预估模型用于根据任务的任务特征预估为该任务所分配的系统资源与完成该任务还需要消耗的剩余时长之间的映射关系。在一种可能的实施例中,所述根据获取到的任务特征、系统资源以及时长,训练得到时长预估模型,包括:将获取到的任务特征输入至预设初始模型,得到所述预设初始模型输出的预估时长数据,所述预估时长数据用于表示系统资源与时长之间的映射关系;根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,调整所述预设初始模型的模型参数,得到时长预估模型。在一种可能的实施例中,所述根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,调整所述预设初始模型的模型参数,得到时长预估模型,包括:根据获取到的系统资源和时长与所述预估时长数据所表示的映射关系的匹配程度,构建损失函数,所述损失函数与所述匹配程度负相关;根据所述损失函数,利用梯度下降法调整所述预设初始模型的模型参数,得到时长预估模型。也可以实现如下步骤:获取多个未完成任务的任务特征,所述任务特征用于表示所述未完成任务的算法复杂度;针对每个所述未完成任务,将该未完成任务的任务特征输入时长预估模型,得到完成该未完成任务的预估时长数据,所述预估时长数据用于表示为该未完成任务所分配的系统资源,与完成该未完成任务还需要消耗的剩余时长之间的映射关系,所述时长预估模型用于根据任务特征确定所述映射关系,所述时长预估模型为通过前述任一所述的预估模型生成方法生成的;根据各个所述未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式;按照所述目标系统资源分配方式,为各个所述未完成任务分配系统资源。在一种可能的实施例中,在所述按照所述目标系统资源分配方式,为各个所述未完成任务分配系统资源之后,所述方法还包括:当所述未完成任务执行完成时,对应保存所述未完成任务的任务特征、所分配的系统资源以及完成所述未完成任务消耗的时长,作为新的样本数据;根据新的样本数据,对所述时长预估模型进行训练,得到新的时长预估模型。在一种可能的实施例中,所述未完成任务为未完成的训练任务,所述任务特征包括以下特征中的一个或多个特征:任务类型、所训练的模型的模型参数总量、所训练的模型中所采用的算子、所训练的模型所包括的层数、用于训练模型的训练数据的分布统计特征,其中,所述分布统计特征用于表示所述训练数据的分布情况。在一种可能的实施例中,所述获取多个未完成任务的任务特征,包括:获取所有正在执行的任务,以及待执行任务中按照优先级从高到低的顺序排序时位于前预设数目位的任务的任务特征,所述待执行任务包括尚未执行的未执行任务以及当前处于挂起状态的已执行任务。在一种可能的实施例中,所述根据各个所述未完成任务的预估时长数据以及系统资源总量,确定效率最高的系统资源分配方式,作为目标系统资源分配方式,包括:根据所述系统资源总量,确定所有可行系统资源分配方式,其中,所述可行系统资源分配方式为:为所有所述未完成任务分配的系统资源的总和不大于所述系统资源总量的系统资源分配方式;按照预设规则选取一个可行系统资源分配方式作为当前系统资源分配方式;依次针对所述当前系统资源分配方式的每个相邻系统资源分配方式,根据各个所述未完成任务的预估时长数据,判断所述当前系统资源分配方式的效率是否小于该相邻系统资源分配方式的效率,其中,所述相邻系统资源分配方式为与所述当前系统资源分配方式的差异程度小于预设阈值的可行系统资源分配方式;如果所述当前系统资源分配方式的效率小于该相邻系统资源分配方式的效率,将该相邻系统资源分配方式作为新的当前系统资源分配方式,并重新执行所述针对所述当前系统资源分配方式的每个相邻系统资源分配方式,根据各个所述未完成任务的预估时长,判断所述当前系统资源分配方式的效率是否小于该相邻系统资源分配方式的效率的步骤;如果所述当前系统资源分配方式的效率不小于任一相邻系统资源分配方式的效率,将所述当前系统资源分配方式确定为目标系统资源分配方式。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、图形处理器(graphicsprocessingunit,gpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一时长预估模型生成方法。在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一时长预估模型生成方法。在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一系统资源调度方法。在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一系统资源调度方法。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1