一种集群任务调度方法、装置、计算机设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种集群任务调度方法、装置、计算机设备及存储介质。
背景技术
通过由多个处理设备组成的服务器集群,可以接收和执行多个任务,为了提高任务处理效率,需要对各个任务进行合理分配,提高任务处理效率和集群资源利用率。
一般地,在分配处理任务时,会选择当前剩余的处理器等资源较多的处理设备,这种分配方式存在一定程度上的片面性,无法保证集群整体上对各个处理任务的处理效率。
发明内容
本公开实施例至少提供一种集群任务调度方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种集群任务调度方法,包括:
获取针对待分配任务的多个分配策略;所述分配策略用于指示将所述待分配任务分配至集群中的指定设备,不同的所述分配策略下的指定设备不同;
针对所述多个分配策略中的每个分配策略,确定在每个所述分配策略下所述集群中的各个设备各自的状态信息;
基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时;
根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略;
基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备。
一种可能的实施方式中,在每个所述分配策略下的各指定设备各自的状态信息包括:
指定设备在所述分配策略下所承接任务的任务类型、任务执行进度以及指定设备的资源占用程度。
一种可能的实施方式中,所述状态信息还包括以下信息中的任意一种:
硬盘利用率、网络信息、用户交互信息。
一种可能的实施方式中,所述基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,包括:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵;
将每个分配策略对应的所述状态矩阵输入到所述任务执行耗时预测模型,得到所述各个设备处理完成在该分配策略下所承接任务的预期耗时。
一种可能的实施方式中,所述针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵,包括:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,以及每一个状态信息对应的排列方法,将该分配策略下各个设备的状态信息进行排列,生成该分配策略对应的状态矩阵。
一种可能的实施方式中,所述根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略,包括:
针对每个分配策略,将该所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,按照各个任务对应的预设权重进行加权求和,得到各个分配策略对应的总耗时;
选择总耗时最短的分配策略作为所述目标分配策略。
一种可能的实施方式中,在基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备之后,所述方法还包括:
获取各个设备处理完成在所述目标分配策略下所承接任务的真实耗时;
基于所述真实耗时和在所述目标分配策略下所述集群中的各个设备各自的状态信息优化所述任务执行耗时预测模型。
第二方面,本公开实施例还提供一种集群任务调度装置,包括:
获取模块,用于获取针对待分配任务的多个分配策略;所述分配策略用于指示将所述待分配任务分配至集群中的指定设备,不同的所述分配策略下的指定设备不同;
确定模块,用于针对所述多个分配策略中的每个分配策略,确定在每个所述分配策略下所述集群中的各个设备各自的状态信息;
预测模块,用于基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时;
选择模块,用于根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略;
分配模块,用于基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备。
一种可能的实施方式中,在每个所述分配策略下的各指定设备各自的状态信息包括:
指定设备在所述分配策略下所承接任务的任务类型、任务执行进度以及指定设备的资源占用程度。
一种可能的实施方式中,所述状态信息还包括以下信息中的任意一种:
硬盘利用率、网络信息、用户交互信息。
一种可能的实施方式中,所述预测模块,在基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时时,用于:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵;
将每个分配策略对应的所述状态矩阵输入到所述任务执行耗时预测模型,得到所述各个设备处理完成在该分配策略下所承接任务的预期耗时。
一种可能的实施方式中,所述预测模块,在针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵时,用于:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,以及每一个状态信息对应的排列方法,将该分配策略下各个设备的状态信息进行排列,生成该分配策略对应的状态矩阵。
一种可能的实施方式中,所述选择模块,在根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略时,用于:
针对每个分配策略,将该所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,按照各个任务对应的预设权重进行加权求和,得到各个分配策略对应的总耗时;
选择总耗时最短的分配策略作为所述目标分配策略。
一种可能的实施方式中,所述装置还包括训练模块,在基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备之后,所述训练模块用于:
获取各个设备处理完成在所述目标分配策略下所承接任务的真实耗时;
基于所述真实耗时和在所述目标分配策略下所述集群中的各个设备各自的状态信息优化所述任务执行耗时预测模型。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的集群任务调度方法、装置、计算机设备及存储介质,通过预先训练好的任务执行耗时预测模型和集群中多个处理设备的状态信息,可以预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,然后再基于预期耗时,选择目标分配策略,由于任务执行耗时预测模型在预测预期耗时时,综合考虑了集群中多个处理设备的状态信息和正在执行的各个任务的处理需求,因此基于预期耗时所选择的目标分配结果能够最大程度的满足当前各个任务的处理需求,从而实现了对各个任务的及时处理。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种集群任务调度方法的流程图;
图2示出了本公开实施例所提供的集群任务调度方法中,任务执行耗时预测模型的优化过程的流程图;
图3示出了本公开实施例所提供的一种集群任务调度装置的示意图;
图4示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,通过由多个处理设备组成的服务器集群,可以接收和执行多个任务,为了提高任务处理效率,需要对各个任务进行合理分配,提高任务处理效率和集群资源利用率。
一般地,在分配处理任务时,会选择当前剩余的处理器等资源较多的处理设备,这种分配方式存在一定程度上的片面性,无法保证集群整体上对各个处理任务的处理效率。
基于上述研究,本公开提供了一种集群任务调度方法、装置、计算机设备及存储介质,通过预先训练好的任务执行耗时预测模型和集群中多个处理设备的状态信息,可以预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,然后再基于预期耗时,选择目标分配策略,由于任务执行耗时预测模型在预测预期耗时时,综合考虑了集群中多个处理设备的状态信息和正在执行的各个任务的处理需求,因此基于预期耗时所选择的目标分配结果能够最大程度的满足当前各个任务的处理需求,从而实现了对各个任务的及时处理。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种集群任务调度方法进行详细介绍,本公开实施例所提供的集群任务调度方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该集群任务调度方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
需要说明的是,下文中“处理设备”、“指定设备”和“设备”均指集群中的指定设备。
参见图1所示,为本公开实施例提供的集群任务调度方法的流程图,所述方法包括步骤S101~S105,其中:
S101:获取针对待分配任务的多个分配策略;所述分配策略用于指示将所述待分配任务分配至集群中的指定设备,不同的所述分配策略下的指定设备不同。
S102:针对所述多个分配策略中的每个分配策略,确定在每个所述分配策略下所述集群中的各个设备各自的状态信息。
S103:基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时。
S104:根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略。
S105:基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备。
以下是针对上述步骤的详细说明:
一种可能的实施方式中,所述针对待分配任务的多个分配策略,可以是随机生成的分配策略,比如,对所述待分配任务和可执行所述待分配任务的处理设备,进行排列组合,从而获取针对待分配任务的多个分配策略,其中,所述可执行所述待分配任务的处理设备可以是当前没有任务正在处理的处理设备,或者是处理器使用率小于预设值,比如50%的处理设备。
示例性的,当所述待分配任务为任务A和任务B,所述可执行所述待分配任务的处理设备为设备A和设备B时,进行所述排列组合可以得到如下4种分配策略:
任务A分配给设备A,任务B分配给设备B;任务B分配给设备A,任务A分配给设备B;任务A和任务B都分配给设备A;任务A和任务B都分配给设备B。
另一种可能的实施方式中,所述待分配任务可以是特征任务,获取的针对待分配任务的分配策略可以是针对特定任务设置的特定的分配策略。
其中,所述特定任务可以是与处理设备存在对应关系的任务,比如A类型设备执行1类任务,B类型设备执行2类任务,这里A类型设备和B类型设备可以包括多个设备。
一种可能的实施方式中,在每个所述分配策略下,各指定设备各自的状态信息包括:
指定设备在所述分配策略下所承接任务的任务类型、任务执行进度以及指定设备的资源占用程度。
这里,每个分配策略下的指定设备可以是将待分配任务拟分配的集群中的设备。
所述指定设备的资源占用程度可以是处理器使用率,用于表征该处理设备中处理器的使用状态,其数值通常是小于1的百分数,比如,所述处理器使用率可以为60%。
在每个分配策略下,指定设备所承接任务的任务类型可以是,该指定设备上运行的任务的任务类型;例如处理设备A上当前正在运行的任务为任务A和任务B,待分配任务为任务C,分配策略为将任务C分配给处理设备A,则处理设备A对应的所承接任务的任务类型可以包括任务A、任务B和任务C。
具体实施中,可以预先为不同任务类型的任务设置不同的编号,然后在确定处理设备被分配的任务类型之后,通过预先设置好的编号,表征所承接任务的任务类型。
延续上例,若任务A对应的编号为1001,任务B对应的编号为1002,任务C对应的编号为1003,则处理设备A对应的所承接任务的任务类型可以包括1001、1002、1003。
一种可能的实施方式中,所述状态信息还包括以下信息中的任意一种:
硬盘利用率、网络信息、用户交互信息。
所述硬盘利用率包括读取带宽利用率、写入带宽利用率、空间利用率,其中,读取带宽利用率可以表征读取硬盘数据时占用的带宽占全部带宽的百分比;写入带宽利用率可以表征写入硬盘数据时占用的带宽占全部带宽的百分比;空间利用率可以表征已存储的数据量占硬盘总空间的百分比。其数值通常都是小于1的百分数,比如,所述空间利用率可以为40%。
所述网络信息包括流量信息、已用网络带宽、剩余网络带宽,处理设备的流量信息可以表征该处理设备在执行分配给该处理设备的任务的过程中所消耗的流量的信息,所述流量信息可以包括当前流量信息、平均流量信息、最小流量信息、最大流量信息、总流量信息。实际应用中,可以采用网络流量实时监控工具nload,执行对所述流量信息的监控。
所述交互信息包括所述处理设备被分配的每一个任务的发起时间和/或发起用户信息,发起时间可以表征所述分配的每一个任务的具体发起时间,用于根据所述具体发起时间,记录所述任务需要消耗的所述计算资源。不同的时间背景下,所述任务需要消耗的所述计算资源不同,比如产品发行日、周末、圣诞节、传统节假日等特殊日期,或者每日的早、中、晚不同的时间段,同样的任务可能需要消耗不同的所述计算资源。
处理设备的状态信息对于后续预测所承接任务的预期耗时的精度会产生影响,处理设备的状态信息越多,S103中在预测所承接任务的预期耗时的精度越高,然而为了提高计算速度,可以选取上述状态信息中的部分状态信息进行后续计算。
其中,当基于所述任务类型、任务执行进度、资源占用程度,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,其精度可以满足用户需求,且计算量较少;若基于所述任务类型、任务执行进度、资源占用程度、以及硬盘利用率、网络信息、用户交互信息中的至少一种信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,其精度较高,但计算量较大。
实际应用中,可以根据不同用户对于精度的需求,动态的调整选取的处理设备的状态信息。
每一个处理设备上可能被分配的任务有多个,所述设备处理完成在该分配策略下所承接任务的预期耗时,可以包括处理设备完成分配该处理设备的各个任务所需的时间,所述处理设备在处理分配给该处理设备的任务时,可以是并行执行的。
一种可能的实施方式中,针对每个所述分配策略,在基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时时,可以基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵;然后将每个分配策略对应的所述状态矩阵输入到所述任务执行耗时预测模型,得到所述各个设备处理完成在该分配策略下所承接任务的预期耗时。
实际应用中,由于所述分配策略往往分配的待分配任务不止一个,且需要输入的每种所述状态信息也不止一种,因此在确定分配策略对应的状态矩阵时,可以针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,以及每一个状态信息对应的排列方法,将该分配策略下各个设备的状态信息进行排列,生成该分配策略对应的状态矩阵。
针对所承接任务的任务类型,假设此时的任务1至任务4的所述任务类型分别是10005、10005、10007、10008,则所承接任务的任务类型的状态矩阵为:
针对处理器使用率,假设此时的处理设备A的处理器使用率是40%,处理设备B的处理器使用率是20%,则被分配的任务的处理器使用率的状态矩阵为:
针对所承接任务的任务处理进度,假设任务1的进度10%,任务2的进度50%,任务3的进度60%,待分配任务为任务4,则所承接任务的任务处理进度的状态矩阵为:
其中,0.0表示该待分配任务刚被分配到对应的处理设备上,因此对应的所述任务处理进度为0.0。
在一种可能的实施方式中,任一分配策略下每个处理设备的状态信息还可以包括被分配的任务在处理设备上的分布关系。
示例性的,假设任务1在处理设备A上,任务2在处理设备A,任务3在处理设备B上,待分配任务为任务4,分配策略为将任务4分配到处理设备B上,则被分配的任务在处理设备上的分布关系的矩阵为:
上述矩阵中,“1”代表任务分配给处理设备A,“2”代表任务分配给处理设备B。
在另外一种可能的实施方式中,还可以结合多个状态信息,生成一个状态矩阵,例如可以结合所承接任务在处理设备上的分布关系和所承接任务的任务处理进度,生成一个状态矩阵,状态矩阵可以使用M*N阶矩阵表示,M*N阶矩阵表示M个任务在N个处理设备上的分布关系,若第T个任务分配在第N-1个处理设备上,则在对应位置处的取值为第T个任务的任务处理进度,其他值为0。
示例性的,若任务1在处理设备A上,任务2在处理设备A,任务3在处理设备B上,待分配任务为任务4,分配策略为将任务4分配到处理设备B上,任务1的进度10%,任务2的进度50%,任务3的进度60%,则对应的状态矩阵可以为:
其中,第一列表示处理设备A,第二列表示处理设备B,“-1”表示该任务不在对应的处理设备上。
将上述各矩阵输入所述任务执行耗时预测模型中,可以得到所述任务执行耗时预测模型输出的,基于该分配策略下所承接的至少一个任务的预期耗时。任务执行耗时预测模型在输出预期耗时时,也可以通过耗时矩阵表示,比如4个任务的预期耗时分别是20秒、40秒、5秒、500秒,任务执行耗时预测模型可以直接输出该分配策略下所承接任务的预期耗时对应的耗时矩阵:
在预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时后,可以根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略。
示例性的,针对每个分配策略,可以将该分配策略对应的多个预期耗时求和,并选择对应的求和结果最小的分配策略作为所述目标分配策略。
实际应用中,由于任务的重要程度不同,导致任务执行的优先级也有所不同,理想的任务执行情况是在确保重要任务尽可能优先完成的前提下,所有任务的耗时总和最少,实现对于各个任务的及时处理。
一种可能的实施方式中,在根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略时,可以针对每个分配策略,将该所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,按照各个任务对应的预设权重进行加权求和,得到各个分配策略对应的总耗时;然后,选择总耗时最短的分配策略作为所述目标分配策略。
其中,各个任务对应的权重可以是预先设置好的,也可以是基于各个任务的任务类型确定的,具体的,不同类型的任务重要程度可能不同,根据所述任务的重要程度,可以对任务的等级进行划分,比如可以划分为A级、B级、C级、D级,每个等级对应至少一种任务类型,每一级的重要程度依次递减,为了便于量化的计算和标准的统一,可以将每一级的任务的初始权重依次设定为0.4、0.3、0.2、0.1,基于任一任务的任务类型,可以确定该任务的等级,然后基于该任务的等级,确定该任务对应的权重。
进一步的,可以基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备。
在一种可能的实施方式中,所述任务执行耗时预测模型的优化过程可以如图2所示,包括以下几个步骤:
S201、获取各个设备处理完成在所述目标分配策略下所承接任务的真实耗时。
S202、基于所述真实耗时和在所述目标分配策略下所述集群中的各个设备各自的状态信息优化所述任务执行耗时预测模型。
具体的,可以先获取多个处理设备的样本状态信息,以及每一个处理设备完成分配给该处理设备的至少一个任务所需的样本处理耗时;然后,基于所述多个处理设备的样本状态信息,确定状态矩阵。再将所述状态矩阵输入至任务执行耗时预测模型中,得到每一个处理设备完成分配给该处理设备的至少一个任务的预测处理耗时;最后,基于所述样本处理耗时和所述预测处理耗时,对所述任务执行耗时预测模型进行优化。
实际应用中,所述任务执行耗时预测模型在训练完成之后,也可以在应用过程中进行多次优化。具体的,在确定所述目标分配策略并分配给对应的处理设备进行处理后,可以得到所述目标分配策略下完成各个任务所用的实际耗时,然后将集群中多个处理设备的状态信息和在目标分配策略下完成各个任务所用的实际耗时,分别作为所述样本状态信息和样本处理耗时,以完善样本数据;然后基于完善后的样本数据,然后重新对所述任务执行耗时预测模型进行训练,以实现对于任务执行耗时预测模型的优化。
本公开实施例提供的集群任务调度方法,通过预先训练好的任务执行耗时预测模型和集群中多个处理设备的状态信息,可以预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,然后再基于预期耗时,选择目标分配策略,由于任务执行耗时预测模型在预测预期耗时时,综合考虑了集群中多个处理设备的状态信息和正在执行的各个任务的处理需求,因此基于预期耗时所选择的目标分配结果能够最大程度的满足当前各个任务的处理需求,从而实现了对各个任务的及时处理。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与集群任务调度方法对应的集群任务调度装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述集群任务调度方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图3所示,为本公开实施例提供的一种集群任务调度装置的示意图,所述装置包括:获取模块301、确定模块302、预测模块303、选择模块304、分配模块305;其中,
获取模块301,用于获取针对待分配任务的多个分配策略;所述分配策略用于指示将所述待分配任务分配至集群中的指定设备,不同的所述分配策略下的指定设备不同;
确定模块302,用于针对所述多个分配策略中的每个分配策略,确定在每个所述分配策略下所述集群中的各个设备各自的状态信息;
预测模块303,用于基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时;
选择模块304,用于根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略;
分配模块305,用于基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备。
一种可能的实施方式中,在每个所述分配策略下的各指定设备各自的状态信息包括:
指定设备在所述分配策略下所承接任务的任务类型、任务执行进度以及指定设备的资源占用程度。
一种可能的实施方式中,所述状态信息还包括以下信息中的任意一种:
硬盘利用率、网络信息、用户交互信息。
一种可能的实施方式中,所述预测模块303,在基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时时,用于:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵;
将每个分配策略对应的所述状态矩阵输入到所述任务执行耗时预测模型,得到所述各个设备处理完成在该分配策略下所承接任务的预期耗时。
一种可能的实施方式中,所述预测模块303,在针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵时,用于:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,以及每一个状态信息对应的排列方法,将该分配策略下各个设备的状态信息进行排列,生成该分配策略对应的状态矩阵。
一种可能的实施方式中,所述选择模块304,在根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略时,用于:
针对每个分配策略,将该所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,按照各个任务对应的预设权重进行加权求和,得到各个分配策略对应的总耗时;
选择总耗时最短的分配策略作为所述目标分配策略。
一种可能的实施方式中,所述装置还包括训练模块306,在基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备之后,所述训练模块306,用于:
获取各个设备处理完成在所述目标分配策略下所承接任务的真实耗时;
基于所述真实耗时和在所述目标分配策略下所述集群中的各个设备各自的状态信息优化所述任务执行耗时预测模型。
本公开实施例提供的集群任务调度装置,通过预先训练好的任务执行耗时预测模型和集群中多个处理设备的状态信息,可以预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,然后再基于预期耗时,选择目标分配策略,由于任务执行耗时预测模型在预测预期耗时时,综合考虑了集群中多个处理设备的状态信息和正在执行的各个任务的处理需求,因此基于预期耗时所选择的目标分配结果能够最大程度的满足当前各个任务的处理需求,从而实现了对各个任务的及时处理。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图4所示,为本公开实施例提供的计算机设备400的结构示意图,包括处理器401、存储器402、和总线403。其中,存储器402用于存储执行指令,包括内存4021和外部存储器4022;这里的内存4021也称内存储器,用于暂时存放处理器401中的运算数据,以及与硬盘等外部存储器4022交换的数据,处理器401通过内存4021与外部存储器4022进行数据交换,当计算机设备400运行时,处理器401与存储器402之间通过总线403通信,使得处理器401在执行以下指令:
获取针对待分配任务的多个分配策略;所述分配策略用于指示将所述待分配任务分配至集群中的指定设备,不同的所述分配策略下的指定设备不同;
针对所述多个分配策略中的每个分配策略,确定在每个所述分配策略下所述集群中的各个设备各自的状态信息;
基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时;
根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略;
基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备。
一种可能的实施方式中,处理器401执行的指令中,在每个所述分配策略下的各指定设备各自的状态信息包括:
指定设备在所述分配策略下所承接任务的任务类型、任务执行进度以及指定设备的资源占用程度。
一种可能的实施方式中,处理器401执行的指令中,所述状态信息还包括以下信息中的任意一种:
硬盘利用率、网络信息、用户交互信息。
一种可能的实施方式中,处理器401执行的指令中,所述基于每个所述分配策略下所述集群中各个设备各自的状态信息,通过预训练的任务执行耗时预测模型,预测所述各个设备处理完成在该分配策略下所承接任务的预期耗时,包括:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵;
将每个分配策略对应的所述状态矩阵输入到所述任务执行耗时预测模型,得到所述各个设备处理完成在该分配策略下所承接任务的预期耗时。
一种可能的实施方式中,处理器401执行的指令中,所述针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,生成与该分配策略对应的状态矩阵,包括:
针对每个分配策略,基于该分配策略下所述集群中各个设备各自的状态信息,以及每一个状态信息对应的排列方法,将该分配策略下各个设备的状态信息进行排列,生成该分配策略对应的状态矩阵。
一种可能的实施方式中,处理器401执行的指令中,所述根据每个所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,从多个分配策略中选择出预期耗时符合预设条件的分配策略作为所述待分配任务对应的目标分配策略,包括:
针对每个分配策略,将该所述分配策略下的各个设备处理完成在该分配策略下所承接任务的预期耗时,按照各个任务对应的预设权重进行加权求和,得到各个分配策略对应的总耗时;
选择总耗时最短的分配策略作为所述目标分配策略。
一种可能的实施方式中,处理器401执行的指令中,在基于所述目标分配策略将所述待分配任务分配给所述目标分配策略下的指定设备之后,还包括:
获取各个设备处理完成在所述目标分配策略下所承接任务的真实耗时;
基于所述真实耗时和在所述目标分配策略下所述集群中的各个设备各自的状态信息优化所述任务执行耗时预测模型。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的集群任务调度方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的集群任务调度方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的集群任务调度方法的步骤,具体可参见上述方法实施例,在此不再赘述。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。