CN111740925B - 一种基于深度强化学习的Coflow调度方法 - Google Patents
一种基于深度强化学习的Coflow调度方法 Download PDFInfo
- Publication number
- CN111740925B CN111740925B CN202010472169.2A CN202010472169A CN111740925B CN 111740925 B CN111740925 B CN 111740925B CN 202010472169 A CN202010472169 A CN 202010472169A CN 111740925 B CN111740925 B CN 111740925B
- Authority
- CN
- China
- Prior art keywords
- flow
- duration
- threshold
- environment
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于深度强化学习的Coflow调度方法,基于深度强化学习并结合多级优先队列和基础流调度算法,通过建立马尔可夫决策模型,对Coflow的调度策略进行形式化表示,进而完成对Coflow调度策略的调整。本发明使用当前网络环境中Coflow的数据量大小、流总数目、活跃流数目和持续时间组成状态矩阵,来表示网络状态,定义调整流传输多级优先队列的动作,建立评价方程,实现对Coflow平均完成时间的最小优化。本发明结合了深度强化学习和多级优先队列,通过在Coflow发送调度环境中大量试错和学习,调整Coflow调度策略,相较于传统启发式算法纳入了更多的环境参数,有效地提高了Coflow的传输效率。
Description
技术领域
本发明涉及Coflow调度,更具体地,涉及一种基于深度强化学习的Coflow调度方法。
背景技术
以Apache Spark为首的大数据计算框架常应用于数据挖掘和机器学习等计算任务,它们采用分布式架构,对输入的数据进行分割,并将划分出的小数据块分配给不同的计算节点进行运算,待数据处理完成后再重新分配并计算,经过一次或多次迭代,最终得到所需的结果。随着上述计算应用的执行,集群中的不同节点(Node)之间会产生大量的用于传输数据的通信流。这些通信流之间具有很高的并行性,并且占据了应用运行过程的大部分,深刻影响着大数据应用计算流程。因此,寻找一个合适的方法优化节点间的通信,能够有效提升大数据框架计算效率,节约时间和经济成本。
在传统的通信优化过程中,往往以流作为粒度进行调度,但是这种方式存在缺陷,即只能实现流层面的传输效率优化,难以对应用层面的通信过程起到同等作用。为了解决这一问题,研究人员引入了语义相关流,也称作Coflow。语义相关流是指两组主机间具有应用语义相关性与相同的任务目标的通信流集合。在物理层面上,Coflow是两组计算节点之间的通信流集合;在应用层面上,这些通信流服务于同一计算流程,拥有相同的目的。由于Coflow关联了大数据应用的具体执行流程,通过调度优化Coflow平均完成时间(CoflowCompletion Time,CCT)能够更加有效地提高大数据框架中的数据传输效率,进而获得更好的性能。
Coflow的调度存在多种方式,其中较为常用的是多级反馈队列(Multi-LevelFeedback Queuing,MLFQ),例如Aalo等经典Coflow调度工作均使用了该方法。在多级反馈队列中,存在多个优先级不同的单级队列,不同的队列之间通过阈值进行划分。单级队列内部实现最大最小公平,而队列之间优先级越高,Coflow分配到的带宽也就越大。对于一个新的Coflow,首先将其放置于最高优先级队列中,而后随着Coflow的持续发送,当已发送数据量跨过某一阈值时,对Coflow进行降级,放置到更低优先级的队列中。多级反馈队列具有调度延迟小,能有效区分长流短流等优点,但是仍旧存在缺陷,即阈值往往需要事先人工设定,具有经验性,并且网络环境复杂且变化频繁,事先设定好的阈值往往不是最优的,这限制了调度的最终效果。为了完成最优的Coflow调度,需要依据环境信息对多级反馈队列阈值进行动态设定。
发明内容
基于以上原因,本发明提出了一种基于深度强化学习的Coflow调度方法,该方法首先建立马尔可夫决策模型,通过在Coflow传输环境中进行多次调度学习,实现对策略函数中一系列参数的调整,并借由神经网络完成对策略函数的拟合,最终得到从Coflow传输环境状态到动作的映射规则。依据映射规则,环境中的多级优先队列在不同的Coflow传输环境状态下会改变队列阈值划分,以获得最低的Coflow平均完成时间。
为了达到上述目的,本发明提供的一种基于深度强化学习的Coflow调度方法,包括以下步骤:
步骤1、建立Coflow调度的马尔可夫模型,具体包括:
设置{Sizei,Total_Counti,Active_Counti,Durationi}作为当前网络环境中任意一个Coflow的状态描述,Sizei为第i个Coflow已发送的数据量大小,Total_Counti为第i个Coflow中包含的通信流个数,Active_Counti为第i个Coflow包含的通信流中尚未完成发送的通信流个数,Durationi为第i个Coflow自开始发送到进行采集时的持续时间。选择当前网络环境中尚未完成发送的Coflow,并按照Coflow的已发送数据量大小自大到小对其进行排序,取已发送数据量大小最大的前M个Coflow,将其状态描述作为行向量,组合成状态矩阵,作为网络环境状态,如下:
若当前网络环境中,尚未完成发送的Coflow数量小于M,则使用零行向量对状态矩阵进行填充。
设置{Threshold1,Threshold2,...,Thresholdn,...,ThresholdN}作为控制器的动作,用于调整多级优先队列中各个队列的阈值划分。
Threshold1是多级优先队列中第一个队列的最高最低阈值差值。
Threshold2是多级优先队列中第二个队列的最高最低阈值差值。
Thresholdn是多级优先队列中第n个队列的最高最低阈值差值,为了普适性表达,Thresholdn也称为多级优先队列中任意一个队列的最高最低阈值差值,n表示队列的标识号,n∈N。
ThresholdN是多级优先队列中倒数第二个队列的最高最低阈值差值,N+1表示多级优先队列中的队列个数,最后一个队列的最高最低阈值差值为正无穷。
多级优先队列中各个单级队列按照阈值,对环境中的各个尚未完成发送的Coflow分配优先级,每个队列拥有其最高阈值以及最低阈值,当一个新的Coflow开始发送时,该Coflow进入最高优先级队列。之后随着该Coflow的持续发送,当其已发送数据量大小跨越第一个阈值Threshold1时,对其进行降级操作,移动至第二个队列中,优先级降低一级,重复以上操作,直至该Coflow数据全部发送完成。不同队列之间,优先级越高,分配到的带宽越大,而对于同一队列中的Coflow实现带宽的最大最小公平分配。多级优先队列的阈值划分反映了具体的调度策略,可以通过控制器动作调整。
在任意一个调度周期内,计算Coflow持续时间的平均值为并且设置相邻两个周期的Coflow平均持续时间之差Diff=Duration_AverageT-Duration_AverageT+1,则奖励函数为Reward=log(Diff+C),C是补正因子。
步骤2、依据采集的Coflow通信数据进行流量回放,构建流量环境,用于马尔可夫模型的迭代训练。
其中,上述步骤2)具体包含的步骤如下:
21)在实际生产环境中提取集群通信的相关信息,包含此生产环境下记录不同时刻Coflow特征的必要数据;
22)依据采集到的通信信息,以预定义固定格式生成流量轨迹文件,用于重复进行流量回放;
23)按照流量轨迹文件,对Coflow进行回放,生成Coflow通信模型。
步骤3、在回放所得的通信环境中,对定义的马尔可夫模型进行重复迭代训练,并在迭代过程中评估策略,对策略函数中的参数进行调整,获得从网络环境状态到多级优先队列调整动作的映射准则。
步骤4、从网络环境状态到多级优先队列调整动作的映射准则,其应用的具体表现为自方法生效起,在时间上按照固定的时间间隔划分周期,在每个周期开始时采集计算当前周期的网络环境状态,作为策略函数的自变量,获取策略函数的输出并执行该动作。
其中,上述步骤3)具体包含的步骤如下:
31)将策略函数中的各项参数设置为默认数值,即设置默认策略;
32)从网络环境中周期性采样Coflow信息,生成状态参数;
33)在任意一个周期中,依据策略函数,对当前的环境状态应用相应的动作,并产生新的网络环境状态,即状态转移;
34)依据状态的变化,计算相应的奖励函数值,并对采取的动作进行评价,用于表示所选动作的实施效果;
35)依据评价结果,对策略函数中的参数进行修改,调整从状态到动作的映射准则;
36)重复执行步骤32)至35),直至Coflow平均完成时间小于规定阈值。
本发明的有益效果如下:
(1)本发明引入了多级优先队列,细化了Coflow的级别分配,能够实现更好的Coflow调度效果。
(2)本发明避免了直接对Coflow进行操作,因此能够有效降低动作生效的延迟,提高了处理效率。
(3)本发明采用了深度强化学习,有效地提高了模型的学习能力以及泛化适用性,相较于传统启发式算法引入了更多的环境参数,所得的调度策略更加灵活,能够提高在诸如Apache Spark等大数据框架下应用的通信效率,节约时间,降低开销。
附图说明
图1为基于多级反馈队列的Coflow优先级分配方式;
图2为强化学习原理示意图;
图3为基于深度强化学习的Coflow调度方式流程图;
图4为Coflow、通信流关系示意图;
图5为本发明的模型训练流程图;
图6为本Coflow调度方法与最大最小公平调度应用效果对比图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明以深度强化学习为基础工作原理。其中,强化学习是机器学习的一个重要分支,在强化学习中,存在一个用于与环境交互的智能体,智能体通过观察环境的状态来采取相应行动,以获得最大的奖励值反馈。强化学习通常使用马尔可夫决策过程进行表述,如图2所示。在马尔可夫决策过程中,智能体处于一个环境中,获取的每个状态均为智能体对当前环境的感知,而智能体只能够通过动作来影响环境,每当执行完一个动作后,环境按照某种概率转移到另一个状态,并且环境会根据潜在的奖励函数为智能体提供反馈。强化学习的主要任务为通过重复地与环境交互,使智能体不断调整策略,以获得更好的奖励。而深度强化学习在此基础上增加了经验回放池等特性,并通过神经网络等拟合策略函数,提高了其学习效果以及适用性。在本发明中,设置网络环境中的Coflow状态矩阵为环境状态,设置多级优先队列的阈值划分为动作,以最小化Coflow平均完成时间为目标设置相应的奖励函数,通过在Coflow流量环境中不断学习,实现对策略函数中参数的调整,优化调度策略。
图3是本发明基于深度强化学习的Coflow调度方法的流程图。如图3所示,首先建立马尔可夫决策模型,包括确定状态、动作和奖励函数等,并通过在Coflow传输环境中对定义的马尔可夫模型进行重复迭代训练,在训练过程中调整策略函数中的参数。训练完成后的策略函数将应用于网络环境中的控制器,作用于Coflow的调度过程。
在本实施例中,Coflow传输环境来源于对生产环境通信流量的模拟回放,基于该模拟过程进行模型训练和策略应用。其具体过程包含如下步骤:
步骤1、建立马尔可夫决策模型,具体包括:
11)定义网络环境状态:
如图4所示,在本实施例中,一个Coflow包含一组具有相同应用级语义的通信流,通信流的数量不定,当Coflow开始发送时,属于该Coflow的通信流同时开始数据发送,并且可以获取每个通信流要发送的数据总量大小和已发送的数据量大小,当任意一个通信流的已发送数据量大小小于其要发送的数据总量时,认为该通信流为活跃通信流。
设置{Sizei,Total_Counti,Active_Counti,Durationi}作为当前网络环境中任意一个Coflow的状态描述,Sizei为第i个Coflow中所有通信流已发送的数据量大小之和,,Total_Counti为第i个Coflow中包含的通信流个数,Active_Counti为第i个Coflow中包含的活跃通信流个数,Durationi为第i个Coflow自开始发送到进行采集时的持续时间,即当前时间减去第i个Coflow的开始时间。
在任意一个时刻,网络环境中存在一个或多个尚未完成发送的Coflow。首先对这些Coflow按照已发送数据量大小自大到小进行排序,并选择其中已发送数据量大小最大的M个Coflow,将其Coflow状态描述作为行向量,组成网络环境状态矩阵,如下:
其中,对于矩阵中任意两行的行号m1和m2,若存在m1<m2,则m1对应的Coflow已发送数据量大小大于m2对应的Coflow已发送数据量大小。若当前网络环境中,尚未完成发送的Coflow数量小于M,则使用零行向量对状态矩阵进行填充。
在本实施例中,M设置为8,即选择当前网络环境中最早开始发送的8个尚未完成发送的Coflow用于状态表达。
12)定义控制器动作
设置{Threshold1,Threshold2,...,Thresholdn,...,ThresholdN}作为控制器的动作,Thresholdn为网络中多级优先队列的第n个子队列的最高最低阈值差。
在本实施例中,网络环境中存在一个核心交换机,该交换机与所有计算节点连接,用于数据的转发。核心交换机中维护一个多级优先队列,每个队列都拥有最高阈值、最低阈值和相应的优先级。最高阈值代表了在该队列中Coflow已传输数据量的最大值,最低阈值代表了在该队列中Coflow已传输数据量的最小值,最高阈值和最低阈值规定了该队列中Coflow已传输数据量的大小范围。随着发送数据量的不断变化,Coflow会按照阈值划分进入不同的队列。队列的优先级代表了队列中Coflow获取带宽分配的能力,优先级越高,队列中的Coflow越容易获得带宽。
随着各个队列的优先级由高到低,队列的最高和最低阈值分别增加,且对于任意两个优先级相邻的队列Queuen1和Queuen2,若Queuen1的优先级Priorityn1小于Queuen2的优先级Priorityn2,则Queuen1的最低阈值等于Queuen2的最高阈值其中,对于包含N个阈值Threshold的控制器动作,环境中应当存在N+1个单级队列,最高优先级队列的最低阈值为0,最低优先级队列的最高阈值为正无穷,前N个队列的阈值满足
多级优先队列中各个单级队列按照阈值,对环境中的各个尚未完成发送的Coflow分配优先级,分配方式如图1所示。如图所示,每个队列拥有其最高阈值以及最低阈值,当一个新的Coflow开始发送时,该Coflow进入最高优先级队列。之后随着该Coflow的持续发送,当其已发送数据量大小跨越第一个阈值Threshold1时,对其进行降级操作,移动至第二个队列中,优先级降低一级,重复以上操作,直至该Coflow数据全部发送完成。不同队列之间,优先级越高,分配到的带宽越大,而对于同一队列中的Coflow实现带宽的最大最小公平分配。多级优先队列的阈值划分反映了具体的调度策略,可以通过控制器动作调整。
具体的,根据本发明的实施例,网络环境中的任意一个Coflow需要依据多级优先队列阈值以及已发送数据量进入相应队列。Coflow开始发送时,其已发送数据量DataSize为0,此时满足第1个子队列的阈值范围,即0≤DataSize≤Threshold1,因此进入该队列,即子队列1,拥有最高优先级。之后Coflow按照分配的带宽进行数据发送,DataSize增加。在某一时刻,若DataSize满足第2个子队列的阈值要求,即Threshold1≤DataSize≤Threshold1+Threshold2,则将该Coflow从原队列移动至新队列,即子队列2,优先级降低一级。在Coflow的生命周期中,依据上述规则不断对Coflow优先级进行调整,直至Coflow发送完毕,从多级优先队列中移除。
在本实施中,N设置为8,即多级优先队列中包含有9个子队列。
13)定义奖励函数
设置奖励函数为Reward=log(Diff+C),C是补正因子,Diff的计算公式为:
Diff=Duration_AverageT-Duration_AverageT+1,
其中Duration_AverageT是第T个周期中Coflow的平均持续时间。Duration_AverageT的计算公式为:
在本实施例中,周期间隔为0.2s,补正因子为0.3。
步骤2、进行Coflow通信流量模拟回放,具体包括:
21)提取生产环境中的集群以及Coflow通信信息,在本实施例中,采集到的信息包括集群中计算节点的数目及其标识,Coflow数据发送的开始时间,Coflow包含的通信流量个数,各通信流量的发送节点和接收节点标识,以及各通信流量需要发送的数据总量。所采集的具体信息可以根据生产环境下大数据框架的不同进行调整。
在本实施例中,生产环境下使用的大数据框架为Apache Spark,包含有150个计算节点,采集的数据内容如上所述,共包含526个Coflow信息。
22)依据采集的Coflow通信信息,生成流量轨迹文件,流量轨迹文件依据固定格式记录步骤21)中采集到的各类信息,便于重复回放。
在本实施例中,依据Coflow通信信息生成的回放日志文件为Trace={Trace_Header,Trace_Data1,Trace_Data2,...,Trace_Dataa,...,Trace_DataA},其中Trace_Header用于对轨迹文件进行总体描述,Trace_Data用于记录各个Coflow的相关数据,Trace_Dataa表示回放轨迹文件中记录的第a个Coflow的相关数据。Trace_Header包含有所需集群的计算节点总数、计算节点标识和轨迹文件中的Coflow的总数,Trace_Data包含有Coflow的开始时间,Coflow中各个通信流的发送与接收节点标识以及通信流数据量大小,并为记录的每个Coflow分配唯一的标识号,用于区分不同的Coflow。
23)依据轨迹文件对Coflow进行模拟回放,生成Coflow通信模型。在本实施例中,生成的Coflow通信模型包括模拟大数据集群中的计算节点以及计算节点间的流量发送。
在本实施例中,当Coflow模拟回放开始时,设置初始时间为0秒,并随着模拟回放的进行记录运行时间。对于轨迹文件中记录的任意一个Coflow,若当前运行时间等于其Coflow开始时间,设置该Coflow中包含的通信流为活跃通信流,并开始进行发送。网络环境中尚未完成发送的Coflow会被按照步骤12)中描述的方法进入多级优先队列。不同单级队列之间优先级不同,优先级越高,相应队列分配权重Weightn越大,处于该队列中的Coflow所获得的带宽越大。带宽分配流程如下:
依据队列权重,确定不同队列之间的带宽划分,公式为Sharen=Weightn/∑Weight。之后按照所得划分,对各个队列中的Coflow进行最大最小公平分配,依据每个节点上行带宽、下行带宽为Coflow中的通信流分配带宽。对于任意一个单级队列,如果Coflow中某条流的带宽无法满足,则放弃调度该Coflow,并选择该队列中下一个Coflow继续进行调度。当该队列中Coflow调度完成,且仍有剩余带宽,则以流为粒度并采取公平共享的方式进行二次调度。在二次调度中,未使用的带宽会被分配给第一次调度中跳过的Coflow中的通信流。
在本实施例中,计算节点带宽为100mbps,共有9个单级队列,优先级分别为1到9,权重值设置为1-5,步长为0.5。
步骤3、在步骤2)描述的Coflow通信环境中进行模型训练。详细过程如图5所示,具体包括:
31)对策略函数进行初始化,设置策略函数中包含的所有参数。
在本实施例中,策略函数基于“表演者-评价者”(Actor-Critic)模型,使用神经网络进行拟合,同时为了实现参数学习并保证训练效果,增加经验回放池以及用于拟合价值评价函数的神经网络。
在本实施例中,共包含四个神经网络NN={NNAR,NNAE,NNCR,NNCE},其中NNAR和NNAE属于Actor神经网络组,用于生成动作,NNCR和NNCE属于Critic神经网络组,用于进行动作评价。NNAR和NNAE分别拥有三层神经元,分别为输入层、隐藏层和输出层,其中输入层神经元个数为32,隐藏层神经元个数为200,输出层神经元个数为8;NNCR和NNCE同样拥有输入层、隐藏层和输出层三层神经元,其中输入层神经元个数为40,隐藏层神经元个数为60,输出层神经元个数为1。初始状态下,对神经网络NNAE和NNCE中各个神经元激活值和权重进行随机初始化,并将初始化结果分别复制到NNAR和NNCR中。经验回放池用于记录决策信息,最大容量设置为10000,采样容量设置为32。
32)对网络环境中的Coflow信息进行周期性采样,按照步骤11)中的定义生成网络环境状态矩阵。
在本实施例中,对生成的网络环境状态矩阵进行扁平化处理,处理后得到状态行向量[Size1 Total_Count1 Active_Count1 Duration1 ... SizeMTotal_CountM Active_CountM DurationM],作为神经网络NNAE的输入,状态行向量的第I个分量输入到输入层的第I个神经元中。
33)在任意一个周期中,依据策略函数生成动作,并应用于模拟网络环境,实现网络环境的状态转移。
在本实施例中,神经网络NNAE在接收状态行向量后,由输出层神经元的输出值组成一个行向量,作为选择的动作a1,即每个输出层神经元输出一个多级优先队列阈值。按照输出的动作行向量,对网络环境中的多级优先队列进行阈值设置,使动作生效,并等待至下一个周期开始时,获得最新的网络环境状态。
34)在网络状态发生变化后,依据该变化计算奖励函数值,并对所选动作进行评价。
在本实施例中,在下一周期开始时,按照步骤13)中的定义计算奖励值Reward。计算完成后,将原周期网络环境状态行向量s1,所选动作a1,奖励值Reward和新周期网络环境状态行向量s2作为一条经验记录Record={s1,a1,Reward,s2}存入经验回放池中的第一位,其余经验记录依此向后移动一位。在存放过程中,对经验回放池进行检查,如果经验回放池中已存储的经验记录个数等于经验回放池最大容量10000,则在存放前将经验回放池中最后一条经验记录删除,并从中随机采样32条经验记录。对于采样中的任意一条经验记录Record={s1,a1,Reward,s2},将状态向量s2作为神经网络NNAR的输入,得到动作输出a2,之后将s2和a2作为神经网络NNCR的输入,由输出层神经元得到现实评价值Q'。将s1和a1作为神经网络NNCE的输入,得到估计评价值Q。依据以上数据,为采样的数据计算损失值L,计算公式为:
其中Rewardj、Q'j和Qj分别表示从经验回放池中取出的第j条经验记录中包含的奖励值、现实评价值和估计评价值,γ的值为0.8。损失值是对采样数据中所记录动作的一次整体评价,反映了这些动作的具体效果。
35)依据评价结果,对策略函数中的参数进行修改,获得新的状态-动作映射。
在本实施例中,将NNAE、NNAR、NNCE和NNCR分别拟合的动作策略函数与价值评价函数表示为μ(s|θμ)、μ(s|θμ')、Q(s,a|θQ)和Q(s,a|θQ'),其中θμ、θμ'、θQ和θQ'表示神经网络中的所有参数,其中θμ、θμ'、θQ和θQ'分别表示当前动作策略神经网络,目标动作策略神经网络,当前价值评价神经网络和目标价值评价网络中的所有参数。上述任意一个神经网络中的参数包括神经元之间的传播权重和神经元的偏置,s和a分别表示状态输入和动作输入。
其中τ是更新步长,在本实施例中,τ的值为0.01。
36)重复执行步骤32)至35),直至Coflow平均完成时间小于规定阈值。理论上,这个学习过程可以无限制地进行下去,以达到更好的学习效果。在本实施例中,规定当Coflow的平均完成时间小290s时,则停止训练过程。
步骤4、在网络环境中应用训练所得调度策略。在本实施例中,网络环境中存在一个控制器,自大数据应用开始执行起,周期性对网络环境进行采样,包括调用大数据框架API,分析系统日志以及查询网络器件等,按照步骤33)中所示,获取多级优先队列的阈值设置,并进行应用,改变带宽分配策略。
本发明提出了基于深度强化学习的Coflow调度方法,从当前网络环境中提取环境状态特征,以最小化Coflow平均完成时间为目标,通过与网络环境进行交互对模型进行训练,以获取最佳Coflow调度策略,具有延迟低,泛化性强的特点,相较于传统启发式方法能有效降低Coflow平均完成时间。实验结果表明,在不同的网络带宽下,本方法取得的效果大幅优于最大最小公平调度。如图6所示,使用基于深度强化学习的Coflow调度能够取得更小的Coflow平均完成时间,并且计算节点间的带宽越小,本发明优化效果越好。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节。在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。
Claims (4)
1.一种基于深度强化学习的Coflow调度方法,应用于大数据框架下网络通信的优化,其特征在于,包括如下步骤:
1)建立Coflow调度的马尔可夫模型,具体包括构造网络环境状态、控制器动作以及奖励函数;
2)对Coflow通信流量进行回放,构建流量环境,用于对马尔可夫模型进行训练;
3)在Coflow通信环境中,对定义的马尔可夫模型进行重复迭代训练,得到符合标准的策略函数;
4)将所得策略函数应用至网络环境中;
其中,所述步骤1)中构造网络环境状态、控制器动作以及奖励函数具体为:
设置{Sizei,Total_Counti,Active_Counti,Durationi}作为当前网络环境中任意一个Coflow的状态描述,Sizei为第i个Coflow中所有通信流已发送的数据量大小之和,Total_Counti为第i个Coflow中包含的通信流个数,Active_Counti为第i个Coflow中包含的活跃通信流个数,Durationi为第i个Coflow自开始发送到进行采集时的持续时间,即当前时间减去第i个Coflow的开始时间;挑选环境中已发送数据量大小最大的M个尚未完成的Coflow,将其状态描述作为行向量,组合成状态矩阵:
若尚未完成发送的Coflow数量小于M,则使用零行向量对状态矩阵进行填充;
设置一组阈值的集合{Threshold1,Threshold2,...,Thresholdn,...,ThresholdN}作为控制器的动作,用于调整多级优先队列中各个队列的阈值划分,Thresholdn为网络中多级优先队列的第n个子队列的最高最低阈值差,n表示队列的标识号,n∈N;
对于任意一个周期,采集所有Coflow的持续时间为:
2.根据权利要求1所述的基于深度强化学习的Coflow调度方法,其特征在于,所述步骤3)具体包含以下步骤:
31)将策略函数中的各项参数设置为默认数值,即设置默认策略;
32)从网络环境中周期性采样Coflow信息,生成状态参数;
33)在任意一个周期中,依据策略函数,对当前的环境状态应用相应的动作,并产生新的网络环境状态,即状态转移;
34)依据状态的变化,计算相应的奖励函数值,并对采取的动作进行评价,用于表示所选动作的实施效果;
35)依据评价结果,对策略函数中的参数进行修改,调整从状态到动作的映射准则;
36)重复执行步骤32)至35),直至Coflow平均完成时间小于规定阈值。
3.根据权利要求1所述的基于深度强化学习的Coflow调度方法,其特征在于,所述步骤4)具体包括:
网络环境中存在一个控制器,自大数据应用开始执行起,通过调用大数据框架API,分析系统日志以及查询网络器件,周期性对网络环境进行采样,生成多级优先队列的阈值设置,并进行应用,改变带宽分配策略。
4.根据权利要求1所述的基于深度强化学习的Coflow调度方法,其特征在于,所述步骤2)具体包括以下步骤:
21)在实际生产环境中提取集群通信相关信息;
22)依据采集到的Coflow通信信息,以预先定义好的格式,生成流量轨迹文件,对流量进行记录;
23)依据流量轨迹文件对Coflow进行流量回放,生成Coflow通信模型,用于马尔可夫模型训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010472169.2A CN111740925B (zh) | 2020-05-29 | 2020-05-29 | 一种基于深度强化学习的Coflow调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010472169.2A CN111740925B (zh) | 2020-05-29 | 2020-05-29 | 一种基于深度强化学习的Coflow调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111740925A CN111740925A (zh) | 2020-10-02 |
CN111740925B true CN111740925B (zh) | 2021-09-24 |
Family
ID=72647938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010472169.2A Active CN111740925B (zh) | 2020-05-29 | 2020-05-29 | 一种基于深度强化学习的Coflow调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111740925B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114205300B (zh) * | 2021-12-02 | 2023-09-22 | 南开大学 | 一种能够在流量信息不完整情况下保证coflow传输截止期限的流量调度方法 |
CN114638167B (zh) * | 2022-03-22 | 2024-06-25 | 北京航空航天大学 | 基于多智能体强化学习的高性能集群资源公平分配方法 |
CN115314399B (zh) * | 2022-08-05 | 2023-09-15 | 北京航空航天大学 | 一种基于逆强化学习的数据中心流量调度方法 |
CN117648123B (zh) * | 2024-01-30 | 2024-06-11 | 中国人民解放军国防科技大学 | 一种微服务快速集成方法、系统、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110708259A (zh) * | 2019-09-25 | 2020-01-17 | 江苏省未来网络创新研究院 | 自动调整队列阈值的信息无感知Coflow调度系统及其调度方法 |
CN110930016A (zh) * | 2019-11-19 | 2020-03-27 | 三峡大学 | 一种基于深度q学习的梯级水库随机优化调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10963313B2 (en) * | 2018-08-27 | 2021-03-30 | Vmware, Inc. | Automated reinforcement-learning-based application manager that learns and improves a reward function |
-
2020
- 2020-05-29 CN CN202010472169.2A patent/CN111740925B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110708259A (zh) * | 2019-09-25 | 2020-01-17 | 江苏省未来网络创新研究院 | 自动调整队列阈值的信息无感知Coflow调度系统及其调度方法 |
CN110930016A (zh) * | 2019-11-19 | 2020-03-27 | 三峡大学 | 一种基于深度q学习的梯级水库随机优化调度方法 |
Non-Patent Citations (1)
Title |
---|
软件定义数据中心网络coflow调度机制与仿真平台研究;黄鸿;《电子科技大学论文》;20180630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111740925A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111740925B (zh) | 一种基于深度强化学习的Coflow调度方法 | |
CN113254197B (zh) | 一种基于深度强化学习的网络资源调度方法及系统 | |
CN113950066B (zh) | 移动边缘环境下单服务器部分计算卸载方法、系统、设备 | |
CN109388484B (zh) | 一种基于Deep Q-network算法的多资源云作业调度方法 | |
Guo et al. | Cloud resource scheduling with deep reinforcement learning and imitation learning | |
CN109753751B (zh) | 一种基于机器学习的mec随机任务迁移方法 | |
CN113515351B (zh) | 一种基于能耗与QoS协同优化的资源调度实现方法 | |
CN110708259A (zh) | 自动调整队列阈值的信息无感知Coflow调度系统及其调度方法 | |
CN111611062B (zh) | 云边协同分层计算方法及云边协同分层计算系统 | |
CN113692021A (zh) | 一种基于亲密度的5g网络切片智能资源分配方法 | |
CN115484205B (zh) | 确定性网络路由与队列调度方法及装置 | |
CN115033359A (zh) | 一种基于时延控制的物联代理多任务调度方法和系统 | |
CN115314399B (zh) | 一种基于逆强化学习的数据中心流量调度方法 | |
CN117749796A (zh) | 一种云边算力网络系统计算卸载方法及系统 | |
Hu et al. | Dynamic task offloading in MEC-enabled IoT networks: A hybrid DDPG-D3QN approach | |
CN112445617B (zh) | 一种基于移动边缘计算的负载策略选择方法及系统 | |
Zhou et al. | DRL-Based Workload Allocation for Distributed Coded Machine Learning | |
CN116938323B (zh) | 一种基于强化学习的卫星转发器资源分配方法 | |
CN112685162A (zh) | 边缘服务器异构计算资源的高效能调度方法、系统和介质 | |
CN117793110A (zh) | 面向时延优化的大模型端边云协同推理优化方法 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN117436485A (zh) | 基于权衡时延和精度的多退出点的端-边-云协同系统及方法 | |
CN116028175A (zh) | 一种动态场景下灵活高效的分布式机器学习方法 | |
CN116501483A (zh) | 基于多智能体强化学习的车辆边缘计算任务调度方法 | |
CN115150335A (zh) | 一种基于深度强化学习的最优流量分割的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |