一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多服务器作业的优化调度方法与流程

2022-04-20 22:04:30 来源:中国专利 TAG:
一种多服务器作业的优化调度方法与流程

本发明涉及云计算相关技术领域,特别涉及一种多服务器作业的优化调度方法。

背景技术

如今的计算集群中充斥着各种“多服务器作业(Multi-Server Jobs,以下简称MSJ)”,MSJ具有多个需要同时运行的任务(Tasks),这些任务的运行需要同时使用多个服务器的CPU核心、GPU、FPGA板卡或其他协处理器,以谷歌公布的cluster-data数据集为例,其中有90%的任务需要一个以上的CPU核心,并且近20%的任务需要不少于1000个CPU核心,对于一个MSJ,它的所有任务必须要同时被正确调度和启动,它才可以正常运行。

在中国发明专利申请号:CN201910424159.9中公开有一种计及用户效用的机组组合调度的决策,该计及用户效用的机组组合调度的决策,虽然,综合考虑用户参与需求响应的效益和成本,并将需求响应补偿纳入分析社会效益的决策中,即将用户参与DR的补偿机制纳入到考虑用户效用的机组组合优化决策中,建立了计及用户效用补偿的机组组合优化策略,以实现社会效益最大化,但是,该计及用户效用的机组组合调度的决策,在分布式云计算集群中,对于多服务器作业,如何在任务执行时间无法准确预测和需要遵守群组调度原则的条件下,最大化服务质量或群体收益。

因此,提出一种多服务器作业的优化调度方法来解决上述问题很有必要。



技术实现要素:

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种多服务器作业的优化调度方法,解决了在分布式云计算集群中,对于多服务器作业,如何在任务执行时间无法准确预测和需要遵守群组调度原则的条件下,最大化服务质量或群体收益的问题。

(二)技术方案

为实现以上目的,本发明通过以下技术方案予以实现:

一种多服务器作业的优化调度方法,包括以下步骤:

1)提出一种通用的、基于二分图的群组调度模型,优化目标为Asw最大化,MSJ包括并行深度学习训练任务组成和并行深度学习训练的工作流程;

2)基于该模型,提出一种通过历史奖励数据来学习MSJ在不同服务器上运行时间的期望和方差的框架,针对MSJ的调度称为群组调度吗,按照输入数据的不同,调度问题可以划分为如下两大类:批处理作业的调度和流式作业的调度;

3)基于该学习框架,提出一种基于遗传算法的Asw最大化策略,能够在保证多种类型的约束成立的条件下使得社会整体收益最大。

可选的,所述并行深度学习训练任务组成为:一个参数服务器(Parameter Server,是一个运行在某台物理机或虚拟机的进程,以下简称PS),多个工作节点(Worker,是执行反向传播的进程)。

可选的,所述并行深度学习训练的工作流程为:在每一轮迭代中,每一个Worker根据自己分得的局部数据集通过反向传播算法更新自己的局部梯度,然后各自将局部梯度通过网络传送给PS。

可选的,所述PS收集到全部的局部梯度后,通过取平均值的操作得到本轮的全局梯度,PS将全局梯度通过网络再传送给每一个Worker,进入下一轮迭代。

可选的,所述批处理作业:指“只需要单次输入、运行结束后自动释放资源”的任务,这些任务在不同时间抵达之后,调度器需要为每个任务指定一台可以运行它的服务器并为该任务分配计算资源(如一个CPU核心、500Mi的内存),调度器在指定服务器时,只能选择能满足资源需求的服务器,考虑到作业运行完毕后主动释放占用的资源,因此调度策略通常以最小化全体作业的完成时间(从第一个作业抵达到最后一个作业运行完毕所花费时间)为目标。

可选的,所述流式作业:指任务在不同的时间窗口会被输入不同数据,从而执行相应计算的作业,典型的流式作业是实时大数据分析,这些作业必须一直处于运行状态,并需要对实时输入的数据进行处理,此时,需要调度的是输入数据流,调度策略需要决定输入的数据流分发给后台多个可以处理本数据流的任务中的一个,被称为负载均衡。

(三)有益效果

本发明提供了一种多服务器作业的优化调度方法,具备以下有益效果:

1、本发明针对多服务器作业,提出了一种可以主动式学习作业完成速率、并同时最大化累积社会效益的群组调度方法。

2、本发明可优化累积社会效益,平衡社会各方利益,追求社会整体利益最大化,所设计的调度策略,企业可显著节省计算成本,提高生产收益比。

附图说明

图1为本发明结构的基于二分图的多服务器作业调度场景示意图;

图2为本发明结构的调度算法的流程示意图;

图3为本发明结构的遗传算法子程序流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

根据如图1-3所示,本发明提供了一种技术方案:

一种多服务器作业的优化调度方法,包括以下步骤:

1)提出一种通用的、基于二分图的群组调度模型,优化目标为Asw最大化,MSJ包括并行深度学习训练任务组成和并行深度学习训练的工作流程;

2)基于该模型,提出一种通过历史奖励数据来学习MSJ在不同服务器上运行时间的期望和方差的框架,针对MSJ的调度称为群组调度吗,按照输入数据的不同,调度问题可以划分为如下两大类:批处理作业的调度和流式作业的调度;

3)基于该学习框架,提出一种基于遗传算法的Asw最大化策略,能够在保证多种类型的约束成立的条件下使得社会整体收益最大。

作为本发明的一种可选技术方案:所述并行深度学习训练任务组成为:一个参数服务器(Parameter Server,是一个运行在某台物理机或虚拟机的进程,以下简称PS),多个工作节点(Worker,是执行反向传播的进程)。

作为本发明的一种可选技术方案:所述并行深度学习训练的工作流程为:在每一轮迭代中,每一个Worker根据自己分得的局部数据集通过反向传播算法更新自己的局部梯度,然后各自将局部梯度通过网络传送给PS。

作为本发明的一种可选技术方案:所述PS收集到全部的局部梯度后,通过取平均值的操作得到本轮的全局梯度,PS将全局梯度通过网络再传送给每一个Worker,进入下一轮迭代,可以看到,只有当PS和至少一个Worker被成功调度和启动时,这个作业才可以正常运行。

作为本发明的一种可选技术方案:所述批处理作业:指“只需要单次输入、运行结束后自动释放资源”的任务,这些任务在不同时间抵达之后,调度器需要为每个任务指定一台可以运行它的服务器并为该任务分配计算资源(如一个CPU核心、500Mi的内存),调度器在指定服务器时,只能选择能满足资源需求的服务器,考虑到作业运行完毕后主动释放占用的资源,因此调度策略通常以最小化全体作业的完成时间(从第一个作业抵达到最后一个作业运行完毕所花费时间)为目标。

作为本发明的一种可选技术方案:所述流式作业:指任务在不同的时间窗口会被输入不同数据,从而执行相应计算的作业,典型的流式作业是实时大数据分析,这些作业必须一直处于运行状态,并需要对实时输入的数据进行处理,此时,需要调度的是输入数据流,调度策略需要决定输入的数据流分发给后台多个可以处理本数据流的任务中的一个,被称为负载均衡。

步骤(1)中考虑通用的异构服务器集群R,该集群内有多个服务器,用r∈R表示一台服务器,考虑K种不同类型的计算设备,例如CPU核心、GPU、NPU、FPGA等,每一个服务器被安装了不同种类、不同数量的计算设备,对于服务器r,记它所装配的第k种计算设备的个数为c(k,r),用向量c=[c(k,r)]k∈K,r∈R表示集群内各个服务器所装配的各类计算设备的个数。

本发明考虑通用的多服务器作业,每个多服务器由至少一个任务所组成,记多服务器作业的种类集合为L,用l∈L表示一个特定类型的多服务器作业,不同类型的多服务器作业的区别主要体现在如下两个方面:一、它们可能对不同种类的资源有不同的需求,例如,并行深度学习训练这种作业可能对GPU有较大需求,而图计算任务可能对内存和CPU有较大需求;二、它们可能具有不同数量和类型的任务组件、记作业类型l的任务个数为Ql,对于任意一个任务q∈Ql,记它对第k种资源的需求个数为

将调度模型建模为一个二分图(L,R,E),在二分图(L,R,E)中,L为多服务器作业的种类集合,R为集群内异构服务器的集合,E是二分图中的边,其物理意义为:任意一条边e=(l,r)∈E存在当且仅当第l种类型的作业可以被分发到第r个服务器执行,将作业类型称之为“港口”,等待作业抵达,并将边称为“通道”,是每个作业的单个任务可以被分发的路径,一条边e=(l,r)∈E是存在的当且仅当如下两个条件可以同时被满足:服务器r满足作业类型l的节点亲和性;节点r所装配的计算设备数量满足作业类型l的需求。

其中,节点亲和性是指:作业类型l由于业务需求,必须被转发到某些特定的服务器节点上执行,而服务器r在其中,在实际生产环境中,并非所有的l∈L都能与所有的r∈R相连,本发明将这种现象称之为“服务约束”。

本发明考虑的是一个连续的时间域T,具体地,将该时间域切分成一个个等长的时间片t∈T,在每个时间片,每个港口有且仅有一个该类型的作业抵达,随后,调度器需要根据调度策略计算出每个作业的每个任务的转发目的地,并将任务发送过去,对于时间片的长度,要求每个作业在单个时间片内都能完成,对于多服务器作业,调度行为是针对作业的每一个任务的,在每个时间片t,记为调度决策变量,其中q∈Ql,其含义为作业类型l的第q个任务是否被分发给服务器r执行,用向量表示时间片t内需要决策所有调度变量。

优化目标与约束条件,在每个时间片t,对于每一个k∈K,r∈R,调度决策x(t)需要满足如下计算资源约束:

如上所述,所涉及的调度策略的优化目标是累积社会效益,社会效益(Social Welfare)来自博弈经济学理论,是交易双方经济效益的总和,所涉及的二分图调度问题中,社会效益是所有作业提交者的收益和集群维护者的收益的总和,具体地,在每个时间片t,每个港口抵达的任务是集群的用户所提交的,而集群来自基础设施提供商的数据中心,在这个过程中,用户提交任务、申请集群资源需要付出相应的财务成本,如果任务被顺利调度执行,用户会获得相应的心理预估收益(valuation),这里的心理预估收益来自于博弈经济学理论,是对一个用户对购买某个物品之后所获得的收益的一种量化,如果任务没有被成功调度,则相应的财务成本也会退回,集群的是提供商会获得来自用户的支付,但同时需要付出集群维护的财务成本(电费、管理费用等)。

将用户的心理预估收益建模为一个正比于作业平均运行速度的变量,如上所述,一个作业的单个任务在任意一台服务器上的运行时间是无法获知的,且会在某个均线上下波动,为了解决这个问题,假设单个任务在任意一台服务器上的运行速度服从一个潜在且未知的分布,具体地,将作业类型l的第q个任务在服务器r上的运行速率的分布记为并将该分布的期望值记为显然,作为一个数据分布,其期望和方差是可以从历史数据中学习的,本发明所涉及的调度策略也将依据这一点展开。

在每个时间片t,对于任务的提交者,其在港口l产生的经济效益被建模为

Ul(t)由两部分组成,第一部分是任务被成功调度运行时用户获得的心理预期估值,第二部分是用户所支付的财务成本,其中,是一个时间片t内的随机变量,它的期望值正是1{p}是一个指示函数,当内部的谓词p成立时,1{p}取值为1,否则1{p}取值为0,πl(t)则是任务的提交者在港口l需要支付的财务成本,表示作业类型l的每个任务q都至少被分发到一个服务器上运行,则表示作业类型l的每个任务q刚好全部被成功调度,满足群组调度的规则。

在每个时间片t,对于集群的提供商,其经济效益被建模为

Uc(t)也由两部分组成,第一部分是从各用户提交者所收取的费用,第二部分是集群运维成本,其中fk(·)是第k种资源的维护费用。

在每个时间片t,社会效益被建模为上述两种经济效益的总和:

因此,多服务器作业的调度问题可以被建模为:

s.t. (1)

其中为取期望运算。

步骤(1)中所阐述的多服务器作业的调度问题是一个随机优化问题,优化目标中带有随机变量,为了解决该问题,步骤(2)提出了基于历史数据的期望学习框架,将通过历史时间片的具体收益来不断估计期望值

为了简化描述,定义为

此外,将记为从第1个时间片到第t-1个时间片为止,作业类型l的第q个任务是被分发给服务器r执行的次数:

期望学习框架,对于期望值设计如下公式来对其进行估计:

上式的含义为:如果在历史上,作业类型l的第q个任务是被分发给服务器r执行过,则将它在历史上被执行后取得的真实收益的平均值作为本时间片内对的估计,否则以零值进行估计,对于分布的方差,使用如下公式进行估计:

其中g(t)是一个正比于ln(ln(t))的函数。

将原始问题转换为确定性优化问题,将根据上述期望学习框架将步骤一中给出的随机优化问题转换为每个时间片t内的一个确定性问题,具体地,对于每一个时间片t∈T,引入如下问题:

s.t. (1),

其中δ(t)是一个趋向于0的数列,例如(ln(ln(t)))-1,在每个时间片t,只需要给出上述问题的最优解,并更新对期望和方差的估计,就可以从理论上保证当T→∞时,能够取得原调度问题的渐进最优解。

在步骤(2)中引入的新问题是NP难的,为了有效对其求解,步骤(3)采用遗传算法,考虑到这个问题在每个时间片t都要进行求解,在接下来的阐述中去掉每个公式中的t,具体地,将按照如下几个阶段进行组织:

初始化阶段:将多服务器作业的调度问题的自变量x编码为一个染色体,生成多个染色体组成种群,设立方法终止条件,如前所述,x的每一个元素的含义是:作业类型l的第q个任务是否分发给服务器r执行,每一个元素的取值从集合{0,1}中选取。

每一条染色体x被初始化时,会检查约束条件(1)是否满足,如果不满足,则重新初始化,然后,设置算法的最大迭代次数为NI,设定变量“全局目标最大值”的初始值为0。

变异阶段:对于每一条染色体x,随机选择一个作业类型l,对于它的每一个任务q∈Ql,从与其连通的任意一个服务器中选择一个r′并将置为1,然后检查约束条件(1)是否满足,如果不满足,则重新进行变异。

交叉阶段:根据如下概率分布选择两条染色体x1和x2:

随机选择一个服务器r,将选中的两条染色体x1和x2上分发给服务器r上的作业任务相互交换,组成两条新的染色体。

选择阶段:将目前的P个染色体中使得优化目标函数数值最大的染色体选出,如果该染色体使优化目标函数数值比全局最大目标值更大,将“全局最大目标值”更新为该数值,记录该染色体对应的调度方案作为优化的最终结果。

重复步骤变异阶段到选择阶段,直到终止条件达成,该终止条件为:初始化阶段中设定的最大循环次数,选取适应度最高的染色体对应的服务选择方案作为最终结果。

综上所述:提出的调度策略是以最大化群体经济效益为目标,而非作业完成时间,所提出的调度算法不要求单个作业(或作业的单个任务)在不同服务器上的运行时间已知,而是通过历史数据对其运行时间进行估计,考虑到任务在执行时会受到各种因素的影响(操作系统的进程管理策略、现有负载的工作强度、是否发生降频等),其在任意一台服务器上的运行时间必然是存在波动且无法预先获知的,然而,经验表明,该运行时间通常服从某个未知的分布,提出的策略将依据历史数据学习到该未知分布的期望和方差,从而做出更好的调度策略,并使得经济收益最大化。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献