自动调整队列阈值的信息无感知Coflow调度系统及其调度方法

文档序号:1547879 发布日期:2020-01-17 浏览:25次 >En<

阅读说明:本技术 自动调整队列阈值的信息无感知Coflow调度系统及其调度方法 (Information-agnostic Coflow scheduling system capable of automatically adjusting queue threshold and scheduling method thereof ) 是由 汪硕 王速 黄韬 霍如 刘韵洁 于 2019-09-25 设计创作,主要内容包括:本发明公开一种自动调整队列阈值的信息无感知Coflow调度系统及其调度方法,调度系统包括终端主机上分布的监控系统(Monitoring System,MS)和中央控制器(Central Controller,CC);所述监控系统用于在终端主机上收集Coflow的信息,所述中央控制器根据所述Coflow的信息调整降级阈值的集合,中央控制器观察Coflow的调度结果作为强化学习算法的奖励,并通过该奖励来进一步优化队列的降级阈值。(The invention discloses an information-unaware flow scheduling System for automatically adjusting queue threshold and a scheduling method thereof, wherein the scheduling System comprises a Monitoring System (MS) and a Central Controller (CC) which are distributed on a terminal host; the monitoring system is used for collecting the information of the Coflow on the terminal host, the central controller adjusts the set of the degradation threshold values according to the information of the Coflow, the central controller observes the scheduling result of the Coflow to serve as the reward of the reinforcement learning algorithm, and the degradation threshold values of the queues are further optimized through the reward.)

自动调整队列阈值的信息无感知Coflow调度系统及其调度 方法

技术领域

本发明涉及一种自动调整队列阈值的信息无感知Coflow调度系统及其调度方法,涉及通信技术领域。

背景技术

在数据中心网络(Data Center network,DCN)中,MapReduce,Spark,Dryad等并行计算模式已经被广泛用于支持商业应用和科学研究。这些不同的计算框架有一个共同特点:它们都在机器集群之间具有连续的计算阶段,并且当一个阶段的所有数据都发送完成吋,任务才能开始执行下一个数据处理过程。具体的,Coflow被定义为两组机器之间的一组流的集合。Coflow的一个例子是MapReduce中Mapper和Reducer之间的Shuffle过程。相关工作表明,Coflow的完成时间超过了总计算任务完成时间的33%,在某些情况下甚至高达50%。因此,优化并行计算任务的数据传输,对提高DCN中应用程序的性能非常重要。

现有的流调度机制可以分为信息感知(Information-Aware)的流调度机制和信息无感知(information-agnostic)的流调度机制。信息感知的流调度机制需要提前获取流需要发送的总数据量和流的传输时延需求等信息,而信息无感知的流调度机制不需要获取任何关于流的信息。信息感知的流调度机制虽然有很好的性能表现,但是由于在数据中心中很难提前获得Coflow的详细信息,因此这种机制难以在真实的数据中心中部署。为了增加流调度机制的可部署性,信息无感知的Coflow调度机制被提出来,在获取Coflow信息或者只了解部分Coflow信息的情况下完成对Coflow的调度过程,例如Aalo机制。这些机制的核心思想是一种基于已发送字节的速率分配算法。具体的,它们将Coflow按照已发送数据量的多少放入不同的优先级队列中,并且Coflow在其发送的字节量超过预定义的门限值时被从最高优先级逐渐降低到较低优先级的队列中。

信息无感知的Aalo机制模拟“最小Coflow最优先”的策略,来对Coflow进行调度。由于Coflow的大小不可准确获知,因此,Aalo根据各端口统计到的Coflow已经发送完成的字节数的总和,来作为Coflow大小的一个估计值。基于对Coflow大小的估计,Aalo实现了一个多级的调度。Aalo机制设定了一些离散的阈值,当Coflow发送的字节数超过预定义阈值时,将位于最高优先级队列的Coflow降级到较低优先级队列,整体来说,就是根据已经发送的Coflow的大小将所有在发的Coflow分配到不同优先级的队列。

在分配带宽的时候,Aalo按照每个队列优先级的权重给所有队列分配带宽,优先级越高权重越大,这样保证了在任何时刻所有的队列都可以分配到带宽,避免了队头阻塞以及某些Coflow处于无限长的等待状态。另外为了保证工作保持性,如果某个队列拥有多余的带宽,就按照未饱和队列的优先级权重以“最大最小公平”算法进行分配。然后每个队列内使用“先入先出”的原则调度Coflow,每个Coflow的子流采用“最大最小公平”算法调度。

在Aalo机制中,对于最优的队列优先级阈值选取的问题仍然没有被解决。Aalo中的降级阈值是静态的,而且队列阈值的合理性取决于操作人员预先选择较好阈值的能力。当预定义的阈值与数据中心中的流量不匹配时,coflow调度机制的性能将会大大降低。因此在不同规模的动态集群中,阈值的选取应相应的调整改变,但是Aalo机制还没有提出合适的衡量标准来对不同集群的阈值进行有效的设定。

针对Aalo机制中的阈值选取问题,文献中分析了如何选择队列的阈值并提出用于设计阈值的Down-hill searching(DHS)算法。具体的,通过M/G/1队列对Aalo中提出的Discretized Coflow-Aware Least-Attained Service(D-CLAS)系统进行建模,并将平均Coflow延迟表示为降级阈值的函数。此外,证明了函数的谷状形状并设计了DHS算法,该算法定位了一组最佳降级阈值,最小化了系统中的平均Coflow完成时间。

虽然DHS算法使得Coflow的平均完成时间得到改善,但设计启发式的整体周期时间很长,通常为几周或者更长时间。由于收集统计数据和分析数据通常需要很长时间,阈值的获取通常基于对流量大小分布长期的观察得到。

发明内容

为了克服上述问题,本发明提出了提出一种信息无感知的Coflow调度机制DeepAalo,通过自动化地调整优先级队列的阈值来最小化Coflow的完成时间,在流量分布稳定的情况下,DeepAalo的平均Coflow完成时间大大降低,当调度较大的Coflow时,DeepAalo机制的性能远优于Aalo。

本发明的技术方案是

自动调整队列阈值的信息无感知Coflow调度系统,所述调度系统包括终端主机上分布的监控系统(Monitoring System,MS)和中央控制器(Central Controller,CC);

所述监控系统用于在终端主机上收集Coflow的信息,所述中央控制器根据所述Coflow的信息调整降级阈值的集合,中央控制器观察Coflow的调度结果作为强化学习算法的奖励,并通过该奖励来进一步优化队列的降级阈值。

进一步的,所述方法包括以下步骤:

步骤一,设定队列阈值αi、K个优先级形成的队列Q1,Q2,…,Qk,所述队列的优先级从Q1到Qk逐渐降低;

步骤二,当新的Coflow到达时,该Coflow进入队列的最高优先级,当Coflow的已发送字节数超过队列阈值αi时,将Coflow由Qi降级到Qi+1,直到该Coflow调度完成时,将该Coflow移出队列;所述监控系统MS收集已完成的Coflow的大小和流完成时间,并且在每个时间步t将收集的流信息报告给中央控制器CC;

步骤三,中央控制器CC利用DDPG(Deep Deterministic Policy Gradient)算法训练模型,更新神经网络的参数。在每个时间步t,CC接收到MS收集的流状态信息后,输出一组队列的阈值{α1,α2,…,αk},所述中央控制器CC利用强化学习程序来自动化做出决策。

进一步的,所述步骤三具体为:

步骤3.1,构建状态空间,令表示第t步内传输完成的Coflow,被表示为

Figure BDA0002214169440000032

状态空间表示为第t个时间步长内数据中心中所有已完成的Coflow的集合

Figure BDA0002214169440000034

每个Coflow包含其五元组标识:(Nf,Sf(min),Sf(max),Sf(ave),SC),其中,Nf代表每个Coflow中子流的数量,其他四个属性分别代表Coflow中子流流量的最大值,子流流量的最小值,子流流量的平均值以及Coflow的总字节数;

步骤3.2,第t个时间步,在接收到监控系统收集的Coflow的信息后,中央控制器输出一组队列的降级阈值

Figure BDA0002214169440000035

其中,

Figure BDA0002214169440000036

表示在时间步t的第i个队列的阈值;

步骤3.3,在使用降级阈值

Figure BDA0002214169440000037

后,采集已完成的Coflow的平均完成时间来计算奖赏,以最小化Coflow的完成时间作为目标,设计奖赏信号为:

Figure BDA0002214169440000038

其中

Figure BDA0002214169440000039

表示单位时间内每个已完成的coflow C传输的总字节数,CE表示所有已完成的Coflow的集合。

更进一步的,利用DDPG算法训练神经网络,将策略表示为神经网络,将已完成的Coflow的集合作为输入,并输出一组队列的降级阈值;

在每个时间步中,神经网络从主机端接收最新的状态st,并将元组(st+1,st,at,rt)存储在其缓冲区中,用于下一步骤的学习,其中st+1和rt在下一个训练步骤中计算得到;

通过比较整个网络在时间步t和时间步t-1的吞吐量,我们可以在时间步t时通过公式(1)得到奖赏信号,中央控制器接收奖赏信号并得到在时间步骤t生成的动作的反馈,更新步骤使用DDPG算法不断训练actor-critic网络,当策略无变化时停止迭代,此时训练结束,得到调度机制的最优解。

与现有技术相比,本发明具有以下优点:

(1)流分布稳定时的效果

在流量分布稳定的情况下(coflow大小分布和网络负载是固定的),经过几个小时的训练过程,相比于Aalo机制,DeepAalo的平均Coflow完成时间降低了1.37倍。特别的,当调度较大的Coflow时,DeepAalo机制的性能远优于Aalo,平均Coflow完成时间降低高达28.01%。

(2)网络负载变化时的效果

对于静态阈值方案Aalo,当流量特性与参数设置不匹配时,其性能迅速下降。DeepAalo在流量特征变化时展示了很好的适应性和稳定性,这是因为DeepAalo可以通过更改队列阈值来动态调整Coflow的优先级,从而获得更好的Coflow调度结果。附图附图说明

图1为本发明自动调整队列阈值的信息无感知Coflow调度系统的架构图。

具体实施方式

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

本发明对Aalo机制进行改进,提出一种信息无感知的Coflow调度机制DeepAalo,通过自动化地调整优先级队列的阈值来最小化Coflow的完成时间。DeepAalo利用深度强化学习技术将阈值的设计转化为连续的学习过程。具体的,DeepAalo训练神经网络模型,根据主机上监控程序收集的流量信息,每隔一段时间自动更新队列的降级阈值。因此,DeepAalo对数据中心网络中的大量不确定的流量具有良好的自适应性。具体解决以下技术问题:

(1)设计一个两级的深度强化学习系统。在终端主机上运行的监控程序收集Coflow的信息,中央控制器根据该信息调整降级阈值的集合。

(2)设计信息无感知的流调度机制,即只依赖已调度完成的Coflow的部分信息。利用DDPG算法,不依赖于预先编程的模型,从过去决策中学习,自动化更新队列的降级阈值。

本发明提供的完整技术方案(发明方案)

DeepAalo的目标是设计一个信息无感知的Coflow调度机制,它可以通过自动调整队列的阈值来最小化CCT。和Aalo机制不同,DeepAalo不是使用一组预定义的阈值,而是通过利用深度强化学习(DRL)从观察中学习策略。

系统模型

DeepAalo系统由两部分组成:主机上分布的监控系统(Monitoring System,MS)和中央控制器(Central Controller,CC)。在终端主机上运行的监控程序收集Coflow的信息,中央控制器根据该信息调整降级阈值的集合。然后,中央控制器观察Coflow的调度结果作为强化学习算法的奖励,并通过该奖励来进一步优化队列的降级阈值。

(1)监控系统(MS)

受Aalo机制的启发,我们采用一种具有多级队列的Coflow调度机制。它由K个队列(Q1,Q2,…,Qk)组成,队列的优先级从Q1到Qk逐渐降低。当新的Coflow到达时,它们进入最高优先级队列Q1,当Coflow的已发送字节数超过队列阈值αi时,将Coflow由Qi降级到Qi+1。此外,当Coflow调度完成时,将它们移出队列。在此多级队列的机制中,监控系统(MS)由分布在很多主机上的监控程序组成,这些监控器收集已完成的Coflow的大小和流完成时间,并且每隔一段时间将收集的流信息报告给中央控制器(CC)。

(2)中央控制器(CC)

中央控制器运行强化学习程序来自动化做出决策。具体的,利用DDPG(DeepDeterministic Policy Gradient)算法生成一组降级阈值{α1,α2,…,αk}。

强化学习算法的设计

(1)状态空间

根据Aalo和其他相关机制所作的假设,数据中心的网络结构被抽象为一个非阻塞的交换机,我们只关注其入口端口和出口端口。因此,我们省略了路径的负载,并且定义的状态空间仅包含Coflow的状态。我们令

Figure BDA0002214169440000051

第t步内传输完成的Coflow,

Figure BDA0002214169440000052

可以被表示为

Figure BDA0002214169440000053

Figure BDA0002214169440000054

在我们的模型中,状态空间表示为第个时间步长内数据中心中所有已完成的Coflow的集合

Figure BDA0002214169440000061

个Coflow由其五元组标识:(Nf,Sf(min),Sf(max),Sf(ave),SC)。其中,Nf代表每个Coflow中子流的数量,其他四个属性分别代表Coflow中子流流量的最大值,子流流量的最小值,子流流量的平均值以及Coflow的总字节数。

(2)动作空间

在第t间步,在接收到监控程序收集的Coflow的信息后,中央控制器输出一组队列的降级阈值

Figure BDA0002214169440000062

其中

Figure BDA0002214169440000063

表示在时间步t的第i个队列的阈值。

(3)奖赏信号

在使用阈值

Figure BDA0002214169440000064

后,DeepAalo收集已完成的Coflow的平均完成时间来计算奖赏。

DeepAalo的目标是最小化Coflow的完成时间,因此我们设计奖赏信号为:

Figure BDA0002214169440000065

其中

Figure BDA0002214169440000066

表示单位时间内每个已完成的coflow C传输的总字节数,CE表示所有已完成的Coflow的集合。此公式表示如果新的动作相比于前一个动作在单位时间内传输了更多的流量,则我们会对当前动作给予正面的反馈奖赏。此奖赏的目的是最大化整个网络的平均吞吐量。

训练算法

为了获得更好的性能,DeepAalo利用DDPG算法训练神经网络。我们将策略表示为神经网络,它将已完成的Coflow的集合作为算法输入,并输出一组队列的降级阈值。在每个时间步中,神经网络从主机端接收最新的状态st,并将元组(st+1,st,at,rt)存储在其缓冲区中,用于下一步骤的学习,其中st+1和rt可以在下一个训练步骤中计算得到。通过比较整个网络在时间步t和时间步t-1的吞吐量,我们可以在时间步t时通过公式(1)得到奖赏信号rt。中央控制器可以接收奖赏信号(负面信号或正面信号)并得到在时间步骤t生成的动作的反馈。更新步骤使用DDPG算法不断训练actor-critic网络,并最终得到较好的训练结果。

训练结束的标志在实验时是reward曲线收敛,不再变化。如果表述的话我觉得是当策略无变化时,此时训练出一个参数稳定的强化学习模型,训练结束,此时输出的阈值即为此状态下的最佳阈值,此时的Coflow完成时间达到最小值。

本发明技术方案带来的有益效果

(1)流分布稳定时的效果

在流量分布稳定的情况下(coflow大小分布和网络负载是固定的),经过几个小时的训练过程,相比于Aalo机制,DeepAalo的平均Coflow完成时间降低了1.37倍。特别的,当调度较大的Coflow时,DeepAalo机制的性能远优于Aalo,平均Coflow完成时间降低高达28.01%。

(2)网络负载变化时的效果

对于静态阈值方案Aalo,当流量特性与参数设置不匹配时,其性能迅速下降。DeepAalo在流量特征变化时展示了很好的适应性和稳定性,这是因为DeepAalo可以通过更改队列阈值来动态调整Coflow的优先级,从而获得更好的Coflow调度结果。

本发明创造所述的应用方式可根据实际情况进行调整,并不是用来限制发明创造。以上对本发明所提供的技术方案进行了详细介绍;本实施例的说明只是用于帮助理解本发明的方法。本发明所述的应用方式可根据实际情况进行调整,并不是用来限制本发明。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据包传输方法及相关装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!