首页 / 专利库 / 电脑编程 / 算法 / 一种面向分布式机器学习任务的在线调度方法及装置

一种面向分布式机器学习任务的在线调度方法及装置

阅读:609发布:2021-06-03

专利汇可以提供一种面向分布式机器学习任务的在线调度方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向分布式 机器学习 任务的在线调度方法,通过运用一个对偶近似方法将难以处理的全时段在线问题,转 化成 一系列离线任务调度问题,并且在转化过程中保证了 算法 的合理性。本发明能够在不需要知道未来情况下,趋向最优地在线调度分布式机器学习任务和资源,避免了资源的闲置和浪费,从而在充分利用有限资源的情况下高效地实时调度和部署各项任务和资源。在具体的应用过程中,能够帮助 云 资源提供商合理地分配资源调度任务,并且能够最大化地利用不同任务的资源需求弹性来充分利用现有资源。资源提供商根据本发明可以随着时间的推移实时在线地调整在线调度策略,以谋得资源的最大化利用和最小化所有任务的完成时间加权和。,下面是一种面向分布式机器学习任务的在线调度方法及装置专利的具体信息内容。

1.一种面向分布式机器学习任务的在线调度方法,其特征在于,包括:
步骤S1:设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
步骤S2:根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
步骤S3:将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
步骤S4:将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
步骤S5:对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
2.如权利要求1所述的方法,其特征在于,步骤S2中所有任务的完成时间加权和为:
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
3.如权利要求2所述的方法,其特征在于,步骤S3具体包括:
将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,整数型线性规划的形式如下:
约束条件具体包括约束条件(1a)~(1k):
其中,subject to后的公式为目标函数中的变量所要满足的约束条件,服务器h提供个单位的r类型资源,每个任务在特定资源配置的工作节点和参数服务器上运行,wj表示任务的权重,xjt表示任务j是否在t时刻开始,dj表示完成任务所需要的时间,M表示资源提供商提供的不同资源配置的工作节点的种类,P表示资源提供商提供的不同资源配置的参数服务器的种类,其中,m类型工作节点的r类型资源配置数量为 p类型参数服务器的r类型资源配置数量为 带宽资源单独表示为bm和Bp,任务j在aj时刻被提交,包含以下信息:任务j的训练数据集被划分为Dj个同等大小的数据,训练数据集以数据块为单位分发给工作节点;任务j的单个数据块被划分为Kj个同等大小的mini-batch,工作节点以mini-batch为单位训练数据;一个mini-batch需要被重复训练的次数Ej;任务j在m类型工作节点训练一个mini-batch所需要的时间vjm;任务j的工作节点训练完一个mini-batch后需要与参数服务器进行交换的参数数据量大小πj;任务j的参数服务器在接收到所有的工作节点发送的参数变化量后更新参数所需时间Uj;yjhm表示部署在服务器h上的执行任务j的m类型工作节点的个数,sjhp表示部署在服务器h上的执行任务j的p类型参数服务器的个数;
约束条件(1a)使得每个任务仅被执行一次,约束条件(1b)使得任务j的所有数据块在同一种类型的工作节点上处理,约束条件(1c)表示出变量qj、yjhm和sjhp之间的关系,约束条件(1d)保证每个任务至少被分配一个参数服务器,用以维护整个模型参数集,约束条件(1e)保证每个任务能分配到足够数量的工作节点以及时间来完成数据集的训练,其中,EjDjKj为任务j中需要训练的mini-batch的总数;约束条件(1f)以Dj为上限限制分配给任务j的工作节点的个数,保证单个数据块被分配给单个工作节点进行训练,约束条件(1g)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,限制条件(1h)表示如果服务器h上有任务j的参数服务器,则分配给参数服务器的带宽应该能够覆盖所有需要跟服务器h上的参数服务器进行服务器间通信的工作节点的带宽之和,限制条件(1i)表明任务不可能在被提交前执行,剩下的限制条件(1j)和(1k)用以保证变量的合理性。
4.如权利要求3所述的方法,其特征在于,步骤S4具体包括:
步骤S4.1:通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划分为多段,划分的参数包括起始时间τ0=1,第i段的时间τi=2i-1,并在第i轮,收集在时间τi之前提交且尚未完成的任务,用集合Ji表示;
步骤S4.2:根据划分的时间范围,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,其中,完成任务权重和最大化问题为:给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大;
步骤S4.3:将完成任务权重和最大化问题转化为整形规划形式,并得到对应的约束条件,完成任务权重和最大化问题的整形规划形式如下:
约束条件如下:
其中,(1b)-(1h)表示约束条件(1b)至(1h),(1j)-(1k)表示约束条件(1j)至(1k),约束条件(2a)使得每个任务最多被执行一次,约束条件(2b)保证被执行任务在截止时间τi前完成执行。
5.如权利要求4所述的方法,其特征在于,在步骤S4.3之后,所述方法还包括:采用紧凑指数的方法对步骤S4.3整数规划重写为等价的常规整数线性规划问题:
xjl∈{0,1},j∈[Ji],l∈Γj
其中,Γj表示任务j所有的可行的执行方案的集合,变量xjl表示是否按照方案l(l∈Γj)来调度任务j,1表示是,0表示否,约束条件(3a)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,约束条件(3b)保证每个任务最多被执行一次,重写的代价为引入了指数级数量的变量xjl和 每一个变量对应某一个任务的一个可能调度方案。
6.如权利要求5所述的方法,其特征在于,步骤S5具体包括:
步骤S5.1:首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量 和uj分别对应约束条件3a和3b,得到松弛之后的整数线性规划的对偶线性规划如下:
其中 ,对 偶变 量 表 示在 t时 刻服 务器 h 上r 类型 资源 的单 价 ,
为按照方案1执行任务j的所有工作节点和参数服务器的总资源
花费,对偶变量uj大于或等于任务权重与按照方案1执行任务j的所有工作节点和参数服务器的总资源花费之间的差值,其中,当uj>0时,则按照lj来调度任务j此时 否则不执行任务j,此时
步骤S5.2:按照方案lj设置与任务调度相关的决策参数:xjt、qj、dj、yjhm、sjhp的值,更新 的值,并设置价格函数更新对偶变量
其中,λ=2(THRF)+1,F为单位资源单位时间权值上限, 当资源
占用量 接近0时,此时价格函数值接近0,表示任务可免费使用资源,当 接近资源容量 时,价格快速增长到接近设置的一个足够大的值λ,表示此时只有当任务权重足够大时资源才会被分配给任务使用;
步骤S5.3:为每个任务j找到一个资源花费最小的执行方案,根据价格函数,对于单个任务j的调度转化为花费最小化问题:
步骤S5.4:对步骤S5.3中的花费最小化问题进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
7.一种面向分布式机器学习任务的在线调度装置,其特征在于,包括:
参数设置模块:用于设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
任务完成时间加权和表示模块,用于根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
线性规划模块,用于将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
转化模块,用于将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
调度模块,用于对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
8.如权利要求7所述的装置,其特征在于,任务完成时间加权和表示模块具体用于实现下述公式:
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至6中任一项权利要求所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6中任一项权利要求所述的方法。

说明书全文

一种面向分布式机器学习任务的在线调度方法及装置

技术领域

[0001] 本发明涉及计算技术领域,具体涉及一种面向分布式机器学习任务的在线调度方法及装置。

背景技术

[0002] 机器学习是一种非常重要的数据分析技术,用于从大规模数据集中获取有用的信息。在分布式机器学习中,数据集被分散到大量工作节点(worker node)上并行训练更新模型参数。根据更新模型参数的具体实现方式不同,具体分为参数服务器架构(parameter server framework)和AllReduce架构。在参数服务器架构中,计算节点分为工作节点(worker node)和参数服务器(parameter server)两类。工作节点训练数据集将产生的参数变化量发送给参数服务器并从参数服务器接收更新后的参数,参数服务器维护整个模型参数集,具体内容为接收参数变化量更新参数并将更新后的参数返回给工作节点。在AllReduce架构中,只有一种类型的计算节点——工作节点,工作节点既训练数据也与其他数据节点交换参数以及参数变化量并更新参数。
[0003] 现有技术中,大部分处于行业领先地位的IT公司都有适用于分布式机器学习任务的计算云。用户提交分布式机器学习任务,计算服务提供商集中调度执行用户提交的任务。
[0004] 本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
[0005] 在传统分布式机器学习任务中,计算节点的资源配置由用户估计并指定。但实际上,分布式机器学习任务是典型地具有需求弹性的,例如采用不同资源配置的计算节点,完成任务所需要的时间不同等等,如果按照传统的调度方法则无法得到较优的结果。
[0006] 由此可知,现有技术中的方法存在调度效果不佳的技术问题。

发明内容

[0007] 有鉴于此,本发明提供了一种面向分布式机器学习任务的在线调度方法及装置,用以解决或者至少部分解决现有技术中的方法存在调度效果不佳的技术问题。
[0008] 为了解决上述技术问题,本发明第一方面提供了一种面向分布式机器学习任务的在线调度方法,包括:
[0009] 步骤S1:设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
[0010] 步骤S2:根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
[0011] 步骤S3:将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
[0012] 步骤S4:将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
[0013] 步骤S5:对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
[0014] 在一种实施方式中,步骤S2中所有任务的完成时间加权和为:
[0015]
[0016] 其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
[0017] 在一种实施方式中,步骤S3具体包括:
[0018] 将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,整数型线性规划的形式如下:
[0019]
[0020] 约束条件具体包括约束条件(1a)~(1k):
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032] 其中,subject to后的公式为目标函数中的变量所要满足的约束条件,服务器h提供 个单位的r类型资源,每个任务在特定资源配置的工作节点和参数服务器上运行,wj表示任务的权重,xjt表示任务j是否在t时刻开始,dj表示完成任务所需要的时间,M表示资源提供商提供的不同资源配置的工作节点的种类,P表示资源提供商提供的不同资源配置的参数服务器的种类,其中,m类型工作节点的r类型资源配置数量为 p类型参数服务器的r类型资源配置数量为 带宽资源单独表示为bm和Bp,任务j在aj时刻被提交,包含以下信息:任务j的训练数据集被划分为Dj个同等大小的数据,训练数据集以数据块为单位分发给工作节点;任务j的单个数据块被划分为Kj个同等大小的mini-batch,工作节点以mini-batch为单位训练数据;一个mini-batch需要被重复训练的次数Ej;任务j在m类型工作节点训练一个mini-batch所需要的时间vjm;任务j的工作节点训练完一个mini-batch后需要与参数服务器进行交换的参数数据量大小πj;任务j的参数服务器在接收到所有的工作节点发送的参数变化量后更新参数所需时间Uj;yjhm表示部署在服务器h上的执行任务j的m类型工作节点的个数,sjhp表示部署在服务器h上的执行任务j的p类型参数服务器的个数;
[0033] 约束条件(1a)使得每个任务仅被执行一次,约束条件(1b)使得任务j的所有数据块在同一种类型的工作节点上处理,约束条件(1c)表示出变量qj、yjhm和sjhp之间的关系,约束条件(1d)保证每个任务至少被分配一个参数服务器,用以维护整个模型参数集,约束条件(1e)保证每个任务能分配到足够数量的工作节点以及时间来完成数据集的训练,其中,EjDjKj为任务j中需要训练的mini-batch的总数;约束条件(1f)以Dj为上限限制分配给任务j的工作节点的个数,保证单个数据块被分配给单个工作节点进行训练,约束条件(1g)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,限制条件(1h)表示如果服务器h上有任务j的参数服务器,则分配给参数服务器的带宽应该能够覆盖所有需要跟服务器h上的参数服务器进行服务器间通信的工作节点的带宽之和,限制条件(1i)表明任务不可能在被提交前执行,剩下的限制条件(1j)和(1k)用以保证变量的合理性。
[0034] 在一种实施方式中,步骤S4具体包括:
[0035] 步骤S4.1:通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划i-1分为多段,划分的参数包括起始时间τ0=1,第i段的时间τi=2 ,并在第i轮,收集在时间τi之前提交且尚未完成的任务,用集合Ji表示;
[0036] 步骤S4.2:根据划分的时间范围,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,其中,完成任务权重和最大化问题为:给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大;
[0037] 步骤S4.3:将完成任务权重和最大化问题转化为整形规划形式,并得到对应的约束条件,完成任务权重和最大化问题的整形规划形式如下:
[0038]
[0039] 约束条件如下:
[0040]
[0041]
[0042]
[0043] 其中,(1b)-(1h)表示约束条件(1b)至(1h),(1j)-(1k)表示约束条件(1j)至(1k),约束条件(2a)使得每个任务最多被执行一次,约束条件(2b)保证被执行任务在截止时间τi前完成执行。
[0044] 在一种实施方式中,在步骤S4.3之后,所述方法还包括:采用紧凑指数的方法对步骤S4.3整数规划重写为等价的常规整数线性规划问题:
[0045]
[0046]
[0047]
[0048] xjl∈{0,1},j∈[Ji],l∈Γj
[0049] 其中,Γj表示任务j所有的可行的执行方案的集合,变量xjl表示是否按照方案l(l∈Γj)来调度任务j,1表示是,0表示否,约束条件(3a)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,约束条件(3b)保证每个任务最多被执行一次,重写的代价为引入了指数级数量的变量xjl和 每一个变量对应某一个任务的一个可能调度方案。
[0050] 在一种实施方式中,步骤S5具体包括:
[0051] 步骤S5.1:首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量 和uj分别对应约束条件3a和3b,得到松弛之后的整数线性规划的对偶线性规划如下:
[0052]
[0053]
[0054]
[0055] 其中 ,对偶变量 表示在t时刻服务器h上r类型资源的单价,为按照方案l执行任务j的所有工作节点和参数服务器的总资源
花费,对偶变量uj大于或等于任务权重与按照方案l执行任务j的所有工作节点和参数服务器的总资源花费之间的差值,其中,当uj>0时,则按照lj来调度任务j此时 否则不执行任务j,此时
[0056] 步骤S5.2:按照方案lj设置与任务调度相关的决策参数:xjt、qj、dj、yjhm、sjhp的值,更新 的值,并设置价格函数更新对偶变量
[0057]
[0058] 其中,λ=2(THRF)+1,F为单位资源单位时间权值上限,当资源占用量 接近0时,此时价格函数值接近0,表示任务可免费使用资源,当 接近资源容量 时,价格快速增长到接近设置的一个足够大的值λ,表示此时只有当任务权重足够大时资源才会被分配给任务使用;
[0059] 步骤S5.3:为每个任务j找到一个资源花费最小的执行方案,根据价格函数,对于单个任务j的调度转化为花费最小化问题:
[0060]
[0061]
[0062]
[0063] 步骤S5.4:对步骤S5.3中的花费最小化问题进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
[0064] 基于同样的发明构思,本发明第二方面提供了一种面向分布式机器学习任务的在线调度装置,包括:
[0065] 参数设置模块:用于设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
[0066] 任务完成时间加权和表示模块,用于根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
[0067] 线性规划模块,用于将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
[0068] 转化模块,用于将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
[0069] 调度模块,用于对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
[0070] 在一种实施方式中,任务完成时间加权和表示模块具体用于实现下述公式:
[0071]
[0072] 其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
[0073] 基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
[0074] 基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
[0075] 本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0076] 本发明公开的一种面向分布式机器学习任务的在线调度方法及装置,可以随着时间的推移实时在线地调整在线调度策略,以谋得资源的最大化利用和最小化所有任务的完成时间加权和。本发明运用了一个对偶近似方法将难以处理的全时段在线问题,转化成一系列离线任务调度问题,并且在转化过程中保证了方法的合理性。本发明能够在不需要知道未来情况下,趋向最优地在线调度分布式机器学习任务和资源,避免了资源的闲置和浪费,从而在充分利用有限资源的情况下高效地实时调度和部署各项任务和资源。能够帮助云资源提供商合理地分配资源调度任务,并且能够最大化地利用不同任务的资源需求弹性来充分利用现有资源。附图说明
[0077] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0078] 图1为本发明实施例中一种面向分布式机器学习任务的在线调度方法的流程图
[0079] 图2为一种具体实施方式中进行在线调度的具体计算流程图;
[0080] 图3(包括图3a和图3b)是本发明实施实例的实验结果图;
[0081] 图4(包括图4a和图4b)是本发明实施例和其他现有方法的实验结果对比图;
[0082] 图5为本发明实施例面向分布式机器学习任务的在线调度装置的结构框图
[0083] 图6为本发明实施例中一种计算机可读存储介质的结构框图;
[0084] 图7为本发明实施例中计算机设备的结构图。

具体实施方式

[0085] 本发明的目的在于提供一种面向分布式机器学习任务的在线调度方法及装置,用以改善现有技术中的方法存在调度效果不佳的技术问题。
[0086] 为了解决上述技术问题,本发明的主要构思如下:
[0087] 首先,提出一个在线框架,通过将整个时间范围划分呈几何增长的多个时间段,将这个在线优化问题转化为一系列的批处理任务调度问题。具体来讲,本发明的在线框架会调用一个对偶算法,这个对偶算法通过一个批处理调度算法来实现。这个批处理调度算法可以解决总权重最大化的问题,也就是在某一个时间段内执行尽可能多的任务,使得完成任务的权重之和最大。然后,将最大完成任务权重和问题用整数规划表示出来,通过解这个整数规划来得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案,在保证所有任务的完成的同时,使得所有任务的完成时间加权和最小。
[0088] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0089] 实施例一
[0090] 本实施例提供了一种面向分布式机器学习任务的在线调度方法,请参见图1,该方法包括:
[0091] 步骤S1:设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度。
[0092] 具体来说,本申请发明人通过大量的实践和研究发现,在传统分布式机器学习任务中,计算节点的资源配置由用户估计并指定。但实际上,分布式机器学习任务是典型地具有需求弹性的,具体表现在采用不同资源配置的计算节点,完成任务所需要的时间是不同的。而且,训练速度不是随着资源配置线性增长的,训练速度达到一定程度后,配置的资源数量的增加带来的训练速度的增幅是越来越小的。有鉴于此,在分布式计算云中一个基本的问题是如何通过探索任务的需求弹性来分配资源调度任务,使得一个时间段内所有用户提交的任务的完成时间加权和最小。
[0093] 步骤S2:根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和。
[0094] 步骤S3:将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题。
[0095] 步骤S4:将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式。
[0096] 步骤S5:对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
[0097] 本发明的方法涉及的信息包括:
[0098] 有J个机器学习任务在总长为T的时刻里被提交,T足够大使得所有任务可在该时间段内完成。云资源提供商拥有H个物理服务器,用来部署工作节点和参数服务器。服务器提供R种云资源,包括GPU、CPU和带宽资源。服务器h提供 个单位的r类型资源。每个任务在特定资源配置的工作节点和参数服务器上运行。资源提供商将不同资源配置的工作节点和参数服务器抽象为不同类型,定义M种类型的工作节点和P种类型的参数服务器,其中m类型工作节点的r类型资源配置数量为 p类型参数服务器的r类型资源配置数量为 (带宽资源单独表示为bm和Bp)。任务j在aj时刻被提交,包含以下信息:任务j的训练数据集被划分为Dj个同等大小的数据块,训练数据集以数据块为单位分发给工作节点;任务j的单个数据块被划分为Kj个同等大小的mini-batch(小的训练集),工作节点以mini-batch为单位训练数据;一个mini-batch需要被重复训练的次数Ej;任务j在m类型工作节点训练一个mini-batch所需要的时间vjm;任务j的权重wj,用来描述任务的紧急程度(权重越大任务紧急程度越高);任务j的工作节点训练完一个mini-batch后需要与参数服务器进行交换的参数数据量大小πj;任务j的参数服务器在接收到所有的工作节点发送的参数变化量后更新参数所需时间Uj。云计算资源提供商通过设计出最佳的任务调度方案,工作节点和参数服务器的部署和资源配置方案来使得所有任务完成时间的加权和最小。
[0099] 在一种实施方式中,步骤S2中所有任务的完成时间加权和为:
[0100]
[0101] 其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
[0102] 具体来说,ρjm为m类型的工作节点执行任务j时的处理能,也就是单位时间内处理的mini-batch的个数,在同步工作模式下,其计算方式如下:
[0103]
[0104] 其中变量qj用来表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上,1表示是,0表示否。当qj=0时,完成一个完整的mini-batch训练过程的时间包括:工作节点训练一个mini-batch的时间vjm;工作节点将参数变化量(大小为πj)发送给参数服务器,时间为数据量除以带宽(πj/bm);参数服务器更新参数时间Uj;参数服务器将更新后的参数返回给工作节点的时间πj/bm(与发送过程对称)。当qj=1时,所有工作节点和参数服务器部署在同一台服务器上,则参数交换过程为服务器内部通信,时间可忽略不计。
[0105] 在一种实施方式中,步骤S3具体包括:
[0106] 将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,整数型线性规划的形式如下:
[0107]
[0108] 约束条件具体包括约束条件(1a)~(1k):
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120] 其中,subject to后的公式为目标函数中的变量所要满足的约束条件,服务器h提供 个单位的r类型资源,每个任务在特定资源配置的工作节点和参数服务器上运行,wj表示任务的权重,xjt表示任务j是否在t时刻开始,dj表示完成任务所需要的时间,M表示资源提供商提供的不同资源配置的工作节点的种类,P表示资源提供商提供的不同资源配置的参数服务器的种类,其中,m类型工作节点的r类型资源配置数量为 p类型参数服务器的r类型资源配置数量为 带宽资源单独表示为bm和Bp,任务j在aj时刻被提交,包含以下信息:任务j的训练数据集被划分为Dj个同等大小的数据块,训练数据集以数据块为单位分发给工作节点;任务j的单个数据块被划分为Kj个同等大小的mini-batch,工作节点以mini-batch为单位训练数据;一个mini-batch需要被重复训练的次数Ej;任务j在m类型工作节点训练一个mini-batch所需要的时间vjm;任务j的工作节点训练完一个mini-batch后需要与参数服务器进行交换的参数数据量大小πj;任务j的参数服务器在接收到所有的工作节点发送的参数变化量后更新参数所需时间Uj;yjhm表示部署在服务器h上的执行任务j的m类型工作节点的个数,sjhp表示部署在服务器h上的执行任务j的p类型参数服务器的个数;
[0121] 约束条件(1a)使得每个任务仅被执行一次,约束条件(1b)使得任务j的所有数据块在同一种类型的工作节点上处理,约束条件(1c)表示出变量qj、yjhm和sjhp之间的关系,约束条件(1d)保证每个任务至少被分配一个参数服务器,用以维护整个模型参数集,约束条件(1e)保证每个任务能分配到足够数量的工作节点以及时间来完成数据集的训练,其中,EjDjKj为任务j中需要训练的mini-batch的总数;约束条件(1f)以Dj为上限限制分配给任务j的工作节点的个数,保证单个数据块被分配给单个工作节点进行训练,约束条件(1g)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,限制条件(1h)表示如果服务器h上有任务j的参数服务器,则分配给参数服务器的带宽应该能够覆盖所有需要跟服务器h上的参数服务器进行服务器间通信的工作节点的带宽之和,限制条件(1i)表明任务不可能在被提交前执行,剩下的限制条件(1j)和(1k)用以保证变量的合理性。
[0122] 在一种实施方式中,步骤S4具体包括:
[0123] 步骤S4.1:通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划i-1分为多段,划分的参数包括起始时间τ0=1,第i段的时间τi=2 ,并在第i轮,收集在时间τi之前提交且尚未完成的任务,用集合Ji表示;
[0124] 步骤S4.2:根据划分的时间范围,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,其中,完成任务权重和最大化问题为:给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大;
[0125] 步骤S4.3:将完成任务权重和最大化问题转化为整形规划形式,并得到对应的约束条件,完成任务权重和最大化问题的整形规划形式如下:
[0126]
[0127] 约束条件如下:
[0128]
[0129]
[0130]
[0131] 其中,(1b)-(1h)表示约束条件(1b)至(1h),(1j)-(1k)表示约束条件(1j)至(1k),约束条件(2a)使得每个任务最多被执行一次,约束条件(2b)保证被执行任务在截止时间τi前完成执行。
[0132] 具体来说,由于步骤S3中的整数规划中包含一些非线性非一般的限制条件(1b)(1c)(1e)(1g)(1h),并且是在线方式,无法通过解上述整数规划得到问题解。于是,本步骤通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划分为多段。
[0133] 步骤S4.2中,一个完成任务权重和最大化问题是给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大。通过调用一个对偶近似算法来实现,该对偶近似算法以Ji和τi为输入,输出一个任务调度方案,该任务调度方案需要满足以下两个条件:(1)时间长度不超过ατi;(2)在该任务调度方案中完成任务的权重之和至少为前述完成任务权重和最大化问题最优解中的完成任务的权重之和。按照对偶近似算法输出的任务调度方案在ατi到ατi+1的时间段内执行这些任务。
[0134] 具体来说,利用一个求解完成任务权重和最大化问题的近似算法来实现,对偶近似算法运行α轮完成任务权重和最大化问题的近似算法,在第ι(ι∈α)轮,完成任务权重和最大化问题近似算法的输入为 其中 表示Ji中在第ι轮运行之前完成的任务。按照输出的任务调度方案在时间(ι-1)τi+1到ιτi之间安排任务。
[0135] 在一种实施方式中,在步骤S4.3之后,所述方法还包括:采用紧凑指数的方法对步骤S4.3整数规划重写为等价的常规整数线性规划问题:
[0136]
[0137]
[0138]
[0139] xjl∈{0,1},j∈[Ji],l∈Γj
[0140] 其中,Γj表示任务j所有的可行的执行方案的集合,变量xjl表示是否按照方案l(l∈Γj)来调度任务j,1表示是,0表示否,约束条件(3a)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,约束条件(3b)保证每个任务最多被执行一次,重写的代价为引入了指数级数量的变量xjl和 每一个变量对应某一个任务的一个可能调度方案。
[0141] 具体来说,由于步骤S4.3得到的整数规划中有一些非线性和涉及变量相乘的限制条件,所以本实施方式采用compact-exponential(紧凑指数)的技术将上述整数规划重写为等价的常规整数线性规划问题。
[0142] 在一种实施方式中,步骤S5具体包括:
[0143] 步骤S5.1:首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量 和uj分别对应约束条件3a和3b,得到松弛之后的整数线性规划的对偶线性规划如下:
[0144]
[0145]
[0146]
[0147] 其中 ,对偶变量 表示在t时刻服务器h上r类型资源的单价,为按照方案l执行任务j的所有工作节点和参数服务器的总资源
花费,对偶变量uj大于或等于任务权重与按照方案l执行任务j的所有工作节点和参数服务器的总资源花费之间的差值,其中,当uj>0时,则按照lj来调度任务j此时 否则不执行任务j,此时
[0148] 步骤S5.2:按照方案lj设置与任务调度相关的决策参数:xjt、qj、dj、yjhm、sjhp的值,更新 的值,并设置价格函数更新对偶变量
[0149]
[0150] 其中,λ=2(THRF)+1,F为单位资源单位时间权值上限,当资源占用量 接近0时,此时价格函数值接近0,表示任务可免费使用资源,当 接近资源容量 时,价格快速增长到接近设置的一个足够大的值λ,表示此时只有当任务权重足够大时资源才会被分配给任务使用;
[0151] 步骤S5.3:为每个任务j找到一个资源花费最小的执行方案,根据价格函数,对于单个任务j的调度转化为花费最小化问题:
[0152]
[0153]
[0154]
[0155] 步骤S5.4:对步骤S5.3中的花费最小化问题进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
[0156] 具体来说,为了求解采用紧凑指数转换后的常规整数线性规划问题,需要首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量 和uj分别对应约束条件3a和3b。对偶变量表示在t时刻服务器h上r类型资源的单价,则 为按照方案l执行任务j的所有工作节点和参数服务器的总资源花费。限制条件(4a)的右边,也就是任务权重减去按照方案l执行任务j的所有工作节点和参数服务器的总资源花费,就是任务j的效益。为了最小化对偶目标函数,可以按照取0和按照最优方案(以lj来表示)执行任务j的效益二者之间的最大值赋值给对偶变量uj。如果uj>0,则按照lj来调度任务j( ),否则不执行任务j( )。这样做的基本原理在于,在有限资源下,希望执行效益更高的任务。
[0157] 接下来是设置价格函数来更新对偶变量 用 来记录时刻t服务器h上已经被分配的r类型资源数量。由于每个任务的权重是固定参数,则可以为每个任务j找到一个资源花费最小的执行方案。对于单个任务j来说,价格函数是一定的,于是将本发明的面向分布式机器学习任务的在线调度问题转化为花费最小化问题,在具体的求解过程中,可以通过遍历和贪心算法等算法设计技术设计解该问题的算法来得到最优解。
[0158] 因此,本发明具有如下优点:通过最大程度地利用分布式机器学习任务的资源需求弹性来充分运用资源,提高资源利用率,更加高效地调度大量分布式机器学习任务。
[0159] 请参见图2,为一种具体实施方式中求解调度方案的计算流程图,其中,初始化变量即初始化与任务调度相关的决策参数,并收集第i轮之前达到且尚未完成的任务,将第i轮分为若干段,对于第ι段,初始化资源占用量,即时刻t服务器h上已经被分配的r类型资源数量,并计算任务j的最优执行方案,然后根据最优执行方案计算任务j的效益,根据效益是否大于0,来决定按照最优执行方案更新任务的决策变量(与任务调度相关的决策参数)以及对偶变量、资源占用量和价格变量,需要说明的是此处的对偶变量为ij,价格变量为或者本段不执行该任务。对于第i轮的每一段,根据类似方式循环执行。对于每一轮,按照第i的轮的方式循环执行。
[0160] 为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
[0161] 本实施方式中,使服务器的个数为30,时间范围跨度T=100~300。所有服务器的每种类型资源总量设置为所有任务需要的单类型资源总量的[0.2,0.5]倍,并且将其随机分布到单个服务器。设置每种类型工作节点的资源配置数量为1-4个GPU,1-10个vCPU,100Mbps-5Gbps带宽;每种类型参数服务器的资源配置数量为1-10个vCPU,5Gbps-20Gbps带宽。对于单个任务,设置Ej的数值在[50,100],Dj的数值在[5,50],Kj的数值在[10,50],Uj的数值在[10,100]毫秒,vjm的数值在[0.001,0.05]单位时间,πj的数值在[30,575]MB。通过本发明的中的在线调度方法,得到的调度结果如图3a和图3b所示。Total completion Time表示总体花费时间,Number of jobs表示调度的任务数量,RunningTime表示运行时间,图3a表示本发明中的在线调度算法在PS(参数服务器架构)和Ring-AllReduce两种架构以及价格函数涉及的参数F不同取值下的调度结果图(例如F=4+PS表示在参数服务器架构下,价格函数中单位资源单位时间权值上限F取值为4,其余类似)。图3b表示本发明中的在线调度算法在PS和Ring-AllReduce两种架构下的运行时间。图4a和图4b是本发明实施例和其他现有方法(DRF、OASIS、FIFO)的实验结果对比图,其中Aonline表示本发明方法。从图3和图4可以看出,本发明的方法,可以实现在线调度分布式机器学习任务,并达到充分利用资源,最小化所有任务的完成时间加权和的技术效果。
[0162] 基于同一发明构思,本申请还提供了与实施例一中面向分布式机器学习任务的在线调度方法对应的装置,详见实施例二。
[0163] 实施例二
[0164] 本实施例提供了一种面向分布式机器学习任务的在线调度装置,请参见图5,该装置包括:
[0165] 参数设置模块201:用于设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
[0166] 任务完成时间加权和表示模块202,用于根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
[0167] 线性规划模块203,用于将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
[0168] 转化模块204,用于将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
[0169] 调度模块205,用于对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
[0170] 在一种实施方式中,任务完成时间加权和表示模块具体用于实现下述公式:
[0171]
[0172] 其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
[0173] 由于本发明实施例二所介绍的装置,为实施本发明实施例一中一种面向分布式机器学习任务的在线调度方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
[0174] 实施例三
[0175] 请参见图6,基于同一发明构思,本申请还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。
[0176] 由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中面向分布式机器学习任务的在线调度方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
[0177] 实施例四
[0178] 基于同一发明构思,本申请还提供了一种计算机设备,请参见图7,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器402执行上述程序时实现实施例一中的方法。
[0179] 由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中面向分布式机器学习任务的在线调度方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
[0180] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0181] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0182] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0183] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈