本发明属于任务调度,涉及一种在分布式集群环境下,一种基于多层感知器决策的分布式单节点调度方法。
背景技术:
1、现代大规模数据中心调度系统大多是中心化调度架构,即集群中所有资源分配和业务编排都通过一个中心调度组件进行计算与决策。其面临单个中心调度组件难以负担大规模调度和大量serverless特征业务高吞吐与调度延迟需求无法满足两个问题。
2、针对上述问题,有团队提出基于探测队列的分布式节点独立决策的高吞吐调度架构,包括:(1)存储集群状态信息的中央控制器 (2)具有独立决策模块与调度探测队列的分布式节点 (3)节点调度基础逻辑模块,包括以下步骤:s01:任务分发阶段:中央控制器节点会接收外部的任务请求,按照随机分发的方式将任务分发给集群节点,同时中央控制器节点会将任务相关信息写入数据库,以后续任务状态的跟踪。s02:节点自调度阶段:有节点内算法决定该任务在本地执行或转发到其他节点。s03:任务转发阶段:若s02决定将任务转发给某些节点,这些节点会成为接收节点,接收节点会将转发而来的任务放入自身的探测队列存储处理。s04:转发任务调度阶段:接收节点探测队列中的转发任务,首先进行超时判断,如果任务等待超时,将会返回一个超时错误给调度节点;若未超时,接收节点则会审视自身资源,若是资源足够,则会向调度节点发送确认请求;若是资源不足够,则会将任务加入延迟绑定队列。s05:任务反馈处理阶段:调度节点在接收到接收节点的反馈后,会进行反馈处理,若是反馈为错误,则会进行错误计数,当错误计数到达设定阈值,则会进行任务重试,即重试s02-s05步骤;若反馈为确认请求,则检查该任务是否被其他节点抢占,如果没有则返回确认信息,如果已被抢占则返回取消信息。s06:任务执行记录阶段:接收节点在收到确认信息后,会执行任务;而调度节点根据心跳机制,定时地向中央控制器节点汇报已经确认的任务信息与自身的节点资源信息。
3、上述高吞吐调度架构中,s02步骤使用了最简单的启发式调度算法,即当任务到达调度节点时,它会自查本地资源是否足够任务运行,若是足够,则会自调度本节点;如是不足够,则会进行任务转发。任务转发逻辑为两次随机选择策略,从集群的邻域节点表中选取合适的转发节点地址。这种简单的启发式调度算法,影响整体方案的吞吐量,导致调度质量下降,集群运行长尾任务过多的问题。
技术实现思路
1、鉴于上述,本发明的目的是提供一种基于多层感知器(mlp)决策的分布式单节点调度方法,该方法根据集群的状态和历史模拟结果,找寻相对较优的决策,进一步发挥单节点并行调度的优势,提高分布式调度系统的集群吞吐量和降低长尾任务延迟,优化调度效果。
2、为实现上述发明目的,实施例提供的一种基于多层感知器决策的分布式单节点调度方法,包括以下步骤:
3、收集分布式调度系统中每个分布式节点在每一步的调度状态信息和调度决策信息,根据调度日志记录信息对调度结果进行评价得到包含优调度策略或劣调度策略的评价结果;
4、构建包含两个分别对应优调度策略和劣调度策略的多层感知器决策网络、线性融合层的调度决策推荐模型,将调度状态信息作为样本数据并依据评价结果划分后输入至对应的多层感知器决策网络进行调度决策预测,将调度决策信息作为监督数据并与调度决策预测结果构建损失函数后训练多层感知器决策网络;
5、每个分布式节点利用训练后的调度策略推荐模型基于调度状态信息进行调度决策推荐,并使用推荐的调度决策进行调度。
6、本发明方法中,调度状态信息包括发生决策的当前时间t、任务提交时间tc、任务所需资源resreq、决策时本节点剩余资源localres、决策时本节点所知邻域节点信息、记录每个邻域节点的状态更新时间timen、以及决策时邻域所剩资源信息resn。
7、本发明方法中,调度决策信息包括三类调度决策,分别为:
8、本地等待:将调度任务加入本地节点的等待队列中等待下一周期的调度;
9、邻域转发:选择两个邻域节点,向其发出任务探测信息,若邻域节点存在余量资源,则为任务预留并返回接受信息,若没有邻域节点不存在余量资源,则返回拒绝信息,若两个邻域节点都有余量资源,则选择向最先发送接受信息的邻域节点发送任务,另一邻域节点的预留资源会被释放;
10、邻域多跳:选择一个邻域节点,向其发送多跳请求,直接将任务所有权转交给该邻域节点,转交成功后任务将由被转交的新节点进行调度决策。
11、本发明方法中,所述调度决策信息作为监督数据参与多层感知机决策网络训练之前,需要进经过编码,具体每个节点存在n个邻域节点,即存在n*2+1个调度决策,因此每个节点的调度决策信息的编码向量为n*2+1维向量,n*2+1维向量中,被选择的调度决策对应的向量值为1,否则向量值为0。
12、本发明方法中,根据调度日志记录信息对调度结果进行评价得到包含优调度策略或劣调度策略的评价结果,包括:
13、根据调度日志记录信息确定的调度结果如果满足如下条件之一,则被评价为优调度策略,否则为劣调度策略:
14、条件一:选择本地等待动作后两个决策时间单位内任务被执行;
15、条件二:选择转发调度并确定转发节点后被节点接收;
16、条件三:选择多跳动作后两个决策时间单位内任务被执行。
17、本发明方法中,训练策略网络的损失函数采用交叉熵损失函数。
18、本发明方法中,每个分布式节点利用训练后的调度策略推荐模型基于调度状态信息进行调度决策推荐,包括:
19、每个分布式节点在每一步的调度状态信息被分别输入至两个决策网络中,经过正向推理得到两个调度决策预测概率向量,两个调度决策预测概率向量通过线性融合层进行融合后得到综合调度决策概率向量,该综合调度决策概率向量经过softmax激活操作后选择推荐的调度决策,其中线性融合层中的融合系数依据经验设定。
20、本发明方法中,还包括:定期收集调度策略推荐模型进行调度决策推荐和执行时的调度状态信息和调度决策信息,并利用这些信息重新训练调度决策推荐模型,并利用新训练的调度决策推荐模型替换原来的调度决策推荐模型,执行后续的调度决策推荐,直到长尾任务延迟降低到满足要求为止。
21、与现有技术相比,本发明具有的有益效果至少包括:
22、相比于中心化调度框架与其他的调度框架,分布式调度架构每个节点有独立的决策模块,将调度决策下移至集群节点缓解决策压力,提高吞吐量。当节点根据调度状态信息进行决策时,使用基于多层感知器的调度决策会比朴素启发式算法降低任务延迟,减少长尾任务延迟,有效提高整体集群吞吐。
1.一种基于多层感知器决策的分布式单节点调度方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于多层感知器决策的分布式单节点调度方法,其特征在于,调度状态信息包括发生决策的当前时间t、任务提交时间tc、任务所需资源resreq、决策时本节点剩余资源localres、决策时本节点所知邻域节点信息、记录每个邻域节点的状态更新时间timen、以及决策时邻域所剩资源信息resn。
3.根据权利要求1所述的基于多层感知器决策的分布式单节点调度方法,其特征在于,调度决策信息包括三类调度决策,分别为:
4.根据权利要求3所述的基于多层感知器决策的分布式单节点调度方法,其特征在于,所述调度决策信息作为监督数据参与多层感知机决策网络训练之前,需要进经过编码,具体每个节点存在n个邻域节点,即存在n*2+1个调度决策,因此每个节点的调度决策信息的编码向量为n*2+1维向量,n*2+1维向量中,被选择的调度决策对应的向量值为1,否则向量值为0。
5.根据权利要求1所述的基于多层感知器决策的分布式单节点调度方法,其特征在于,根据调度日志记录信息对调度结果进行评价得到包含优调度策略或劣调度策略的评价结果,包括:
6.根据权利要求1所述的基于多层感知器决策的分布式单节点调度方法,其特征在于,训练策略网络的损失函数采用交叉熵损失函数。
7.根据权利要求1所述的基于多层感知器决策的分布式单节点调度方法,其特征在于,每个分布式节点利用训练后的调度策略推荐模型基于调度状态信息进行调度决策推荐,包括:
8.根据权利要求1所述的基于多层感知器决策的分布式单节点调度方法,其特征在于,还包括:定期收集调度策略推荐模型进行调度决策推荐和执行时的调度状态信息和调度决策信息,并利用这些信息重新训练调度决策推荐模型,并利用新训练的调度决策推荐模型替换原来的调度决策推荐模型,执行后续的调度决策推荐,直到长尾任务延迟降低到满足要求为止。