一种基于蒙特卡洛树搜索的混部集群任务调度方法

文档序号:27830155发布日期:2021-12-07 22:03阅读:114来源:国知局
一种基于蒙特卡洛树搜索的混部集群任务调度方法

1.本发明涉及集群任务调度技术领域,更具体地,涉及一种基于蒙特卡洛树搜索的混部集群任务调度方法。


背景技术:

2.数据中心是互联网应用的重要支撑,而数据中心和服务器成本是互联网公司成本构成的重要部分。企业在建设数据中心时,通常会分别构建离线集群和在线集群。其中在线集群负责处理用户的请求,如搜索、即时通信、游戏、电商交易等服务,为了满足服务质量,在线集群会预留大量服务器来保证其服务质量,导致资源利用率比较低。而离线集群主要负责处理数据密集型的离线任务,如数据分析作业、机器学习模型训练作业,其资源利用率非常高。得益于容器等资源隔离技术的发展,可以将在线服务与离线任务混合部署在同一集群中,这样混合部署的方式简称混部。
3.目前对于集群任务调度算法有三类,包括启发式算法、整数线性规划算法、元启发式算法。启发式算法是基于专家的直观经验构造算法,如首次适应调度(first fit)、公平调度(fair scheduling)、延迟调度(delay scheduling)、基于打分规则的调度等。这类算法的特点是算法简单,该算法仅根据当前系统的状态进行调度,没有考虑在线负载变化的情况,容易造成离线任务的失败。整数线性规划算法用于将任务调度问题转化为整数线性规划问题,通过分支定界法求解最优值,但其时间开销较大。元启发式算法如粒子群优化算法、蚁群算法、遗传算法被广泛应用于资源受限的项目调度问题,其计算时间较长,适合静态的调度场景,需要在任务开始前决定所有任务的执行循序,因此不适用于需要动态调度的混部场景。


技术实现要素:

4.本发明为克服上述现有技术所述的时间开销大、不适用于需要动态调度的混部场景的缺陷,提供一种基于蒙特卡洛树搜索的混部集群任务调度方法。
5.为解决上述技术问题,本发明的技术方案如下:
6.一种基于蒙特卡洛树搜索的混部集群任务调度方法,包括以下步骤:
7.s1、获取当前的系统状态、任务队列、所有机器的可用资源及时间序列,构建蒙特卡洛树,并设定其根节点;蒙特卡洛树中的节点包括执行一个任务的动作以及执行动作后的系统状态;
8.s2、根据预设的树内选择策略选择当前最优节点,并判断当前最优节点是否为终止节点,若是,则跳转执行s5步骤,否则执行s3步骤;
9.s3、将当前最优节点中所有可能性动作中随机选取一个动作作为当前最优节点的拓展节点;以所述拓展节点的状态为基础,对任务队列中剩余的任务进行调度,得到调度计划;
10.s4、从终止节点出发,将路径上的节点向上回溯进行更新;
11.s5、重复执行s2~s4步骤,至达到预设的搜索阈值。
12.作为优选方案,所述s1步骤中,还包括以下步骤:对当前时刻到未来某个时间点的一时间段内,设置有调度窗口、判别窗口和全局窗口,分别用于执行调度任务、计算整个调度计划的效果,以及判别在任务的运行时间内资源是否足够使用。
13.作为优选方案,所述s2步骤中,所述树内选择策略包括选择uct值最大的节点作为当前最优节点;其中,uct值的计算公式如下:
[0014][0015][0016][0017]
式中,q表示该节点之后的调度计划在判别窗口中的利用率,q

表示结合罚项的利用率;c
p
表示人为设定的参数,以平衡搜索的深度与广度,n表示当前节点的访问次数,n
j
表示子节点j的访问次数;m为机器数量,l
j
为判别窗口的长度,h
m
(t+i)表示在t+i时刻机器m的离线任务资源使用量,c
m
表示机器m的资源总量,f
m
(t+i)表示t+i时刻机器m的在线服务资源使用量,s
j
为子节点j的任务开始时间。
[0018]
作为优选方案,所述s4步骤中,从终止节点出发,将路径上的节点向上回溯进行更新的步骤包括:对每个节点后续的最优方案的q值以及各节点的访问次数n根据以下公式进行更新:
[0019]
q=max(q,q
z
)
[0020]
n=n+1
[0021]
式中,q
z
表示本次搜索得到的调度方案的q值。
[0022]
作为优选方案,所述s3步骤中,采用基于序列差分的匹配算法对任务队列中剩余的任务进行调度。
[0023]
作为优选方案,所述s3步骤中,对任务队列中剩余的任务进行调度的步骤包括:
[0024]
s3.1、获取任务队列数据和机器m的可用资源变化曲线r
m
(t);
[0025]
s3.2、在调度窗口范围内,将当前最优节点中所有可能性动作中随机选取一个动作作为当前最优节点的拓展节点;
[0026]
s3.3、以所述拓展节点的状态为基础,对任务队列中剩余的每一个任务计算其分数,取分数最大的任务进行调度;其中,所述分数的计算公式如下:
[0027]
s=δr
m
(t)r
j

δr
m
(t+t
j
)r
j
[0028]
δr
m
(t)=r
m
(t)

r
m
(t

1)
[0029]
式中,s表示任务的分数;δr
m
(t)表示可用资源变化曲线r
m
(t)的差分序列,r
j
表示任务j的需求资源量,t
j
为任务j的执行时间;
[0030]
s3.4、在t时刻于机器m上执行所述分数最大的任务,并将其添加在调度计划中。
[0031]
作为优选方案,所述s3步骤中,还包括以下步骤:在每一个时间步的开始,判断是
否已经到达当前根节点中未过时的最优节点的开始时间,若是,则调度该任务,并更新调度窗口、判别窗口和全局窗口,以及各节点信息,并将当前最优节点作为新的根节点。
[0032]
作为优选方案,所述s3步骤中,还包括以下步骤:在每一个时间步的开始,判断任务队列中是否有新的任务到达,若是,则更新调度窗口、判别窗口和全局窗口,以及各节点信息,并删除过期节点。
[0033]
作为优选方案,所述s3步骤中,还包括以下步骤:对任务队列中剩余的任务进行调度后,将调度计划中的剩余动作作为一条新的子链加入蒙特卡洛树中;其中,当存在一个比当前拓展节点更早的动作,则从当前扩展节点的根节点出发向上回溯,找到不存在该动作的位置并延伸或插入新的子链。
[0034]
作为优选方案,所述当前最优节点中所有可能性动作中,每个动作包括任务、运行该任务的机器节点和任务开始时间信息。
[0035]
与现有技术相比,本发明技术方案的有益效果是:本发明将蒙特卡洛树搜索算法应用于混部集群任务调度中,利用蒙特卡洛树搜索的特点,达到了搜索的性能表现与开销的平衡,实现了动态调度。
附图说明
[0036]
图1为实施例的基于蒙特卡洛树搜索的混部集群任务调度方法的流程图。
[0037]
图2为实施例的时间窗口示意图。
[0038]
图3为实施例的任务调度算法伪代码示意图。
[0039]
图4为实施例的拓展机制的示意图。
[0040]
图5为实施例的检查步骤的伪代码示意图。
[0041]
图6为实施例的混部集群任务调度方法的伪代码示意图。
具体实施方式
[0042]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0043]
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0044]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0045]
本实施例提出一种基于蒙特卡洛树搜索的混部集群任务调度方法,如图1所示,为本实施例的基于蒙特卡洛树搜索的混部集群任务调度方法的流程图。
[0046]
本实施例提出的基于蒙特卡洛树搜索的混部集群任务调度方法中,包括以下步骤:
[0047]
步骤1、获取当前的系统状态、任务队列、所有机器的可用资源及时间序列,构建蒙特卡洛树,并设定其根节点。
[0048]
本实施例中,蒙特卡洛树中的节点包括执行一个任务的动作以及执行动作后的系统状态,其中根节点表示当前的状态。节点之间的关系表示执行顺序,子节点任务的开始时间不早于父节点任务的开始时间。从根节点到叶子节点的一条路径表示任务的执行序列。路径上的节点按顺序执行,每个任务选择最早满足其任务资源需求的机器上执行。
[0049]
进一步的,对于每个节点,考虑到任务调度与可用资源的时间序列有关,本实施例
对当前时刻到未来某个时间点的一时间段内,设置有调度窗口、判别窗口和全局窗口,分别用于执行调度任务、计算整个调度计划的效果,以及判别在任务的运行时间内资源是否足够使用。
[0050]
如图2所示,为本实施例的时间窗口示意图。其中,在进行蒙特卡洛树搜索时,调度的任务只能在调度窗口中开始执行;判别窗口用于计算整个调度计划的效果;全局窗口用于判别在任务的整个运行时间内,资源是否足够使用,进而保证任务不会因为资源不足而被中断。
[0051]
步骤2、根据预设的树内选择策略选择当前最优节点,并判断当前最优节点是否为终止节点,若是,则跳转执行步骤5,否则执行步骤3。
[0052]
本步骤中,所述树内选择策略包括:从根节点出发,选择uct值最大的节点作为当前最优节点;其中,uct值的计算公式如下:
[0053][0054][0055][0056]
式中,q表示该节点之后的调度计划在判别窗口中的利用率,q

表示结合罚项的利用率;c
p
表示人为设定的参数,以平衡搜索的深度与广度,n表示当前节点的访问次数,n
j
表示子节点j的访问次数;m为机器数量,l
j
为判别窗口的长度,h
m
(t+i)表示在t+i时刻机器m的离线任务资源使用量,c
m
表示机器m的资源总量,f
m
(t+i)表示t+i时刻机器m的在线服务资源使用量,s
j
为子节点j的任务开始时间。
[0057]
步骤3、将当前最优节点中所有可能性动作中随机选取一个动作作为当前最优节点的拓展节点;以所述拓展节点的状态为基础,对任务队列中剩余的任务进行调度,得到调度计划。
[0058]
本步骤中,将当前最优节点中所有可能性动作中随机选取一个动作作为当前最优节点的拓展节点。其中,当前最优节点中所有可能性动作中,每个动作包括任务、运行该任务的机器节点和任务开始时间信息。
[0059]
本步骤中,采用基于序列差分的匹配算法在调度窗口对任务队列中剩余的任务进行调度,如图3所示,为本实施例的任务调度算法伪代码。其中调度任务的开始时间不用晚于拓展节点,只需满足在调度窗口内开始即可。
[0060]
具体的,对任务队列中剩余的任务进行调度的步骤包括:
[0061]
步骤3.1、获取任务队列数据和机器m的可用资源变化曲线r
m
(t);
[0062]
步骤3.2、在调度窗口范围内,将当前最优节点中所有可能性动作中随机选取一个动作作为当前最优节点的拓展节点;
[0063]
步骤3.3、以所述拓展节点的状态为基础,对任务队列中剩余的每一个任务计算其分数,取分数最大的任务进行调度;其中,所述分数的计算公式如下:
[0064]
s=δr
m
(t)r
j

δr
m
(t+t
j
)r
j
[0065]
δr
m
(t)=r
m
(t)

r
m
(t

1)
[0066]
式中,s表示任务的分数;δr
m
(t)表示可用资源变化曲线r
m
(t)的差分序列,r
j
表示任务j的需求资源量,t
j
为任务j的执行时间;
[0067]
步骤3.4、在t时刻于机器m上执行所述分数最大的任务,并将其添加在调度计划中。
[0068]
其中,可用资源变化曲线r
m
(t)有波峰和波谷,曲线越平滑,对于任务的调度就越容易,则表示更容易利用这些任务空余的资源;反之,曲线越粗糙,波动越频繁,则表示更难调度。反映在数学函数上就是该曲线的导函数的绝对值大小情况,越平滑的曲线,其导函数和差分序列的绝对值就越小。
[0069]
进一步的,本实施例加入了新的拓展机制。对任务队列中剩余的任务进行调度后,将调度计划中的剩余动作作为一条新的子链加入蒙特卡洛树中;其中,当存在一个比当前拓展节点更早的动作,则从当前扩展节点的根节点出发向上回溯,找到不存在该动作的位置并延伸或插入新的子链。且当有一个新的任务早于当前拓展节点,且当前拓展节点的父节点不存在这个动作,则插入新节点和子链。如图4所示,为本实施例的拓展机制的示意图。
[0070]
进一步的,本实施例中,在对任务队列中剩余的任务进行调度前,执行以下两项检查步骤:
[0071]
1)在每一个时间步的开始,判断是否已经到达当前根节点中未过时的最优节点的开始时间,若是,则调度该任务,并更新调度窗口、判别窗口和全局窗口,以及各节点信息,并将当前最优节点作为新的根节点;
[0072]
2)在每一个时间步的开始,判断任务队列中是否有新的任务到达,若是,则更新调度窗口、判别窗口和全局窗口,以及各节点信息,并删除过期节点。
[0073]
检查完成后,执行蒙特卡洛树搜索。如图5所示,为本实施例的检查步骤的伪代码。
[0074]
步骤4、根据调度计划,从终止节点出发,将路径上的节点向上回溯进行更新。
[0075]
其中,对每个节点后续的最优方案的q值以及各节点的访问次数n根据以下公式进行更新:
[0076]
q=max(q,q
z
)
[0077]
n=n+1
[0078]
式中,q
z
表示本次搜索得到的调度方案的q值。
[0079]
步骤5、重复执行步骤2~步骤4,至达到预设的搜索阈值。
[0080]
如图6所示,为本实施例的混部集群任务调度方法的伪代码。
[0081]
以下举例说明本实施例提出的基于蒙特卡洛树搜索的混部集群任务调度方法的具体实施过程:
[0082]
假设目前队列中有8个任务。进行了若干次蒙特卡洛树搜索程序。假设子节点5的得分最高,并且时间到了子节点5对应的任务的开始时间,则选择子节点5对应的任务,完成执行后,在子节点5上执行蒙特卡洛树搜索,至达到预设的搜索阈值。
[0083]
本实施例中,通过采用蒙特卡洛树搜索算法动态构建树,构造出若干任务执行方案,然后以提高资源利用率为目的,通过定义的时间窗口,将蒙特卡洛树搜索算法应用于混部集群任务调度中,利用蒙特卡洛树搜索的特点,达到了搜索的性能表现与开销的平衡,实
现了动态调度。
[0084]
进一步的,本实施例针对可用资源变化的特性,考虑到混部集群中离线任务可用资源随时间变化的特点,提出了基于序列差分的匹配算法作为蒙特卡洛树搜索模拟部分(即步骤3)的算法。同时,可根据任务到达的密度不同,动态地利用任务到达与任务调度之间的窗口时间,充分利用时间进行调度计划的搜索与优化。
[0085]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1