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

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

Info

Publication number
CN110889510B
CN110889510B CN201911234466.7A CN201911234466A CN110889510B CN 110889510 B CN110889510 B CN 110889510B CN 201911234466 A CN201911234466 A CN 201911234466A CN 110889510 B CN110889510 B CN 110889510B
Authority
CN
China
Prior art keywords
task
time
server
parameter
tasks
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
Application number
CN201911234466.7A
Other languages
English (en)
Other versions
CN110889510A (zh
Inventor
张琴
李宗鹏
黄浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201911234466.7A priority Critical patent/CN110889510B/zh
Publication of CN110889510A publication Critical patent/CN110889510A/zh
Application granted granted Critical
Publication of CN110889510B publication Critical patent/CN110889510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

一种面向分布式机器学习任务的在线调度方法及装置
技术领域
本发明涉及云计算技术领域,具体涉及一种面向分布式机器学习任务的在线调度方法及装置。
背景技术
机器学习是一种非常重要的数据分析技术,用于从大规模数据集中获取有用的信息。在分布式机器学习中,数据集被分散到大量工作节点(worker node)上并行训练更新模型参数。根据更新模型参数的具体实现方式不同,具体分为参数服务器架构(parameterserver framework)和AllReduce架构。在参数服务器架构中,计算节点分为工作节点(worker node)和参数服务器(parameter server)两类。工作节点训练数据集将产生的参数变化量发送给参数服务器并从参数服务器接收更新后的参数,参数服务器维护整个模型参数集,具体内容为接收参数变化量更新参数并将更新后的参数返回给工作节点。在AllReduce架构中,只有一种类型的计算节点——工作节点,工作节点既训练数据也与其他数据节点交换参数以及参数变化量并更新参数。
现有技术中,大部分处于行业领先地位的IT公司都有适用于分布式机器学习任务的计算云。用户提交分布式机器学习任务,计算服务提供商集中调度执行用户提交的任务。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
在传统分布式机器学习任务中,计算节点的资源配置由用户估计并指定。但实际上,分布式机器学习任务是典型地具有需求弹性的,例如采用不同资源配置的计算节点,完成任务所需要的时间不同等等,如果按照传统的调度方法则无法得到较优的结果。
由此可知,现有技术中的方法存在调度效果不佳的技术问题。
发明内容
有鉴于此,本发明提供了一种面向分布式机器学习任务的在线调度方法及装置,用以解决或者至少部分解决现有技术中的方法存在调度效果不佳的技术问题。
为了解决上述技术问题,本发明第一方面提供了一种面向分布式机器学习任务的在线调度方法,包括:
步骤S1:设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
步骤S2:根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
步骤S3:将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
步骤S4:将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
步骤S5:对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
在一种实施方式中,步骤S2中所有任务的完成时间加权和为:
Figure BDA0002304505790000021
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
在一种实施方式中,步骤S3具体包括:
将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,整数型线性规划的形式如下:
Figure BDA0002304505790000031
约束条件具体包括约束条件(1a)~(1k):
Figure BDA0002304505790000032
Figure BDA0002304505790000033
Figure BDA0002304505790000034
Figure BDA0002304505790000035
Figure BDA0002304505790000036
Figure BDA0002304505790000037
Figure BDA0002304505790000038
Figure BDA0002304505790000039
Figure BDA00023045057900000310
Figure BDA00023045057900000311
Figure BDA00023045057900000312
其中,subject to后的公式为目标函数中的变量所要满足的约束条件,服务器h提供
Figure BDA00023045057900000313
个单位的r类型资源,每个任务在特定资源配置的工作节点和参数服务器上运行,wj表示任务的权重,xjt表示任务j是否在t时刻开始,dj表示完成任务所需要的时间,M表示资源提供商提供的不同资源配置的工作节点的种类,P表示资源提供商提供的不同资源配置的参数服务器的种类,其中,m类型工作节点的r类型资源配置数量为
Figure BDA00023045057900000314
p类型参数服务器的r类型资源配置数量为
Figure BDA00023045057900000315
带宽资源单独表示为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)用以保证变量的合理性。
在一种实施方式中,步骤S4具体包括:
步骤S4.1:通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划分为多段,划分的参数包括起始时间τ0=1,第i段的时间τi=2i-1,并在第i轮,收集在时间τi之前提交且尚未完成的任务,用集合Ji表示;
步骤S4.2:根据划分的时间范围,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,其中,完成任务权重和最大化问题为:给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大;
步骤S4.3:将完成任务权重和最大化问题转化为整形规划形式,并得到对应的约束条件,完成任务权重和最大化问题的整形规划形式如下:
Figure BDA0002304505790000051
约束条件如下:
Figure BDA0002304505790000052
Figure BDA0002304505790000053
Figure BDA0002304505790000054
其中,(1b)-(1h)表示约束条件(1b)至(1h),(1j)-(1k)表示约束条件(1j)至(1k),约束条件(2a)使得每个任务最多被执行一次,约束条件(2b)保证被执行任务在截止时间τi前完成执行。
在一种实施方式中,在步骤S4.3之后,所述方法还包括:采用紧凑指数的方法对步骤S4.3整数规划重写为等价的常规整数线性规划问题:
Figure BDA0002304505790000055
Figure BDA0002304505790000056
Figure BDA0002304505790000057
xjl∈{0,1},j∈[Ji],l∈Γj
其中,Γj表示任务j所有的可行的执行方案的集合,变量xjl表示是否按照方案l(l∈Γj)来调度任务j,1表示是,0表示否,约束条件(3a)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,约束条件(3b)保证每个任务最多被执行一次,重写的代价为引入了指数级数量的变量xjl
Figure BDA0002304505790000058
每一个变量对应某一个任务的一个可能调度方案。
在一种实施方式中,步骤S5具体包括:
步骤S5.1:首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量
Figure BDA0002304505790000059
和uj分别对应约束条件3a和3b,得到松弛之后的整数线性规划的对偶线性规划如下:
Figure BDA0002304505790000061
Figure BDA0002304505790000062
Figure BDA0002304505790000063
其中,对偶变量
Figure BDA0002304505790000064
表示在t时刻服务器h上r类型资源的单价,
Figure BDA0002304505790000065
为按照方案l执行任务j的所有工作节点和参数服务器的总资源花费,对偶变量uj大于或等于任务权重与按照方案l执行任务j的所有工作节点和参数服务器的总资源花费之间的差值,其中,当uj>0时,则按照lj来调度任务j此时
Figure BDA0002304505790000066
否则不执行任务j,此时
Figure BDA0002304505790000067
步骤S5.2:按照方案lj设置与任务调度相关的决策参数:xjt、qj、dj、yjhm、sjhp的值,更新
Figure BDA0002304505790000068
的值,并设置价格函数更新对偶变量
Figure BDA0002304505790000069
Figure BDA00023045057900000610
其中,λ=2(THRF)+1,F为单位资源单位时间权值上限,
Figure BDA00023045057900000611
Figure BDA00023045057900000612
当资源占用量
Figure BDA00023045057900000613
接近0时,此时价格函数值接近0,表示任务可免费使用资源,当
Figure BDA00023045057900000614
接近资源容量
Figure BDA00023045057900000615
时,价格快速增长到接近设置的一个足够大的值λ,表示此时只有当任务权重足够大时资源才会被分配给任务使用;
步骤S5.3:为每个任务j找到一个资源花费最小的执行方案,根据价格函数,对于单个任务j的调度转化为花费最小化问题:
Figure BDA00023045057900000616
Figure BDA00023045057900000617
Figure BDA00023045057900000618
步骤S5.4:对步骤S5.3中的花费最小化问题进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
基于同样的发明构思,本发明第二方面提供了一种面向分布式机器学习任务的在线调度装置,包括:
参数设置模块:用于设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
任务完成时间加权和表示模块,用于根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
线性规划模块,用于将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
转化模块,用于将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
调度模块,用于对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
在一种实施方式中,任务完成时间加权和表示模块具体用于实现下述公式:
Figure BDA0002304505790000071
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明公开的一种面向分布式机器学习任务的在线调度方法及装置,可以随着时间的推移实时在线地调整在线调度策略,以谋得资源的最大化利用和最小化所有任务的完成时间加权和。本发明运用了一个对偶近似方法将难以处理的全时段在线问题,转化成一系列离线任务调度问题,并且在转化过程中保证了方法的合理性。本发明能够在不需要知道未来情况下,趋向最优地在线调度分布式机器学习任务和资源,避免了资源的闲置和浪费,从而在充分利用有限资源的情况下高效地实时调度和部署各项任务和资源。能够帮助云资源提供商合理地分配资源调度任务,并且能够最大化地利用不同任务的资源需求弹性来充分利用现有资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种面向分布式机器学习任务的在线调度方法的流程图;
图2为一种具体实施方式中进行在线调度的具体计算流程图;
图3(包括图3a和图3b)是本发明实施实例的实验结果图;
图4(包括图4a和图4b)是本发明实施例和其他现有方法的实验结果对比图;
图5为本发明实施例面向分布式机器学习任务的在线调度装置的结构框图;
图6为本发明实施例中一种计算机可读存储介质的结构框图;
图7为本发明实施例中计算机设备的结构图。
具体实施方式
本发明的目的在于提供一种面向分布式机器学习任务的在线调度方法及装置,用以改善现有技术中的方法存在调度效果不佳的技术问题。
为了解决上述技术问题,本发明的主要构思如下:
首先,提出一个在线框架,通过将整个时间范围划分呈几何增长的多个时间段,将这个在线优化问题转化为一系列的批处理任务调度问题。具体来讲,本发明的在线框架会调用一个对偶算法,这个对偶算法通过一个批处理调度算法来实现。这个批处理调度算法可以解决总权重最大化的问题,也就是在某一个时间段内执行尽可能多的任务,使得完成任务的权重之和最大。然后,将最大完成任务权重和问题用整数规划表示出来,通过解这个整数规划来得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案,在保证所有任务的完成的同时,使得所有任务的完成时间加权和最小。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种面向分布式机器学习任务的在线调度方法,请参见图1,该方法包括:
步骤S1:设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度。
具体来说,本申请发明人通过大量的实践和研究发现,在传统分布式机器学习任务中,计算节点的资源配置由用户估计并指定。但实际上,分布式机器学习任务是典型地具有需求弹性的,具体表现在采用不同资源配置的计算节点,完成任务所需要的时间是不同的。而且,训练速度不是随着资源配置线性增长的,训练速度达到一定程度后,配置的资源数量的增加带来的训练速度的增幅是越来越小的。有鉴于此,在分布式计算云中一个基本的问题是如何通过探索任务的需求弹性来分配资源调度任务,使得一个时间段内所有用户提交的任务的完成时间加权和最小。
步骤S2:根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和。
步骤S3:将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题。
步骤S4:将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式。
步骤S5:对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
本发明的方法涉及的信息包括:
有J个机器学习任务在总长为T的时刻里被提交,T足够大使得所有任务可在该时间段内完成。云资源提供商拥有H个物理服务器,用来部署工作节点和参数服务器。服务器提供R种云资源,包括GPU、CPU和带宽资源。服务器h提供
Figure BDA0002304505790000101
个单位的r类型资源。每个任务在特定资源配置的工作节点和参数服务器上运行。资源提供商将不同资源配置的工作节点和参数服务器抽象为不同类型,定义M种类型的工作节点和P种类型的参数服务器,其中m类型工作节点的r类型资源配置数量为
Figure BDA0002304505790000102
p类型参数服务器的r类型资源配置数量为
Figure BDA0002304505790000103
(带宽资源单独表示为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。云计算资源提供商通过设计出最佳的任务调度方案,工作节点和参数服务器的部署和资源配置方案来使得所有任务完成时间的加权和最小。
在一种实施方式中,步骤S2中所有任务的完成时间加权和为:
Figure BDA0002304505790000111
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
具体来说,ρjm为m类型的工作节点执行任务j时的处理能力,也就是单位时间内处理的mini-batch的个数,在同步工作模式下,其计算方式如下:
Figure BDA0002304505790000112
其中变量qj用来表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上,1表示是,0表示否。当qj=0时,完成一个完整的mini-batch训练过程的时间包括:工作节点训练一个mini-batch的时间vjm;工作节点将参数变化量(大小为πj)发送给参数服务器,时间为数据量除以带宽(πj/bm);参数服务器更新参数时间Uj;参数服务器将更新后的参数返回给工作节点的时间πj/bm(与发送过程对称)。当qj=1时,所有工作节点和参数服务器部署在同一台服务器上,则参数交换过程为服务器内部通信,时间可忽略不计。
在一种实施方式中,步骤S3具体包括:
将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,整数型线性规划的形式如下:
Figure BDA0002304505790000113
约束条件具体包括约束条件(1a)~(1k):
Figure BDA0002304505790000121
Figure BDA0002304505790000122
Figure BDA0002304505790000123
Figure BDA0002304505790000124
Figure BDA0002304505790000125
Figure BDA0002304505790000126
Figure BDA0002304505790000127
Figure BDA0002304505790000128
Figure BDA0002304505790000129
Figure BDA00023045057900001210
Figure BDA00023045057900001211
其中,subject to后的公式为目标函数中的变量所要满足的约束条件,服务器h提供
Figure BDA00023045057900001212
个单位的r类型资源,每个任务在特定资源配置的工作节点和参数服务器上运行,wj表示任务的权重,xjt表示任务j是否在t时刻开始,dj表示完成任务所需要的时间,M表示资源提供商提供的不同资源配置的工作节点的种类,P表示资源提供商提供的不同资源配置的参数服务器的种类,其中,m类型工作节点的r类型资源配置数量为
Figure BDA00023045057900001213
p类型参数服务器的r类型资源配置数量为
Figure BDA00023045057900001214
带宽资源单独表示为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)用以保证变量的合理性。
在一种实施方式中,步骤S4具体包括:
步骤S4.1:通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划分为多段,划分的参数包括起始时间τ0=1,第i段的时间τi=2i-1,并在第i轮,收集在时间τi之前提交且尚未完成的任务,用集合Ji表示;
步骤S4.2:根据划分的时间范围,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,其中,完成任务权重和最大化问题为:给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大;
步骤S4.3:将完成任务权重和最大化问题转化为整形规划形式,并得到对应的约束条件,完成任务权重和最大化问题的整形规划形式如下:
Figure BDA0002304505790000141
约束条件如下:
Figure BDA0002304505790000142
Figure BDA0002304505790000143
Figure BDA0002304505790000144
其中,(1b)-(1h)表示约束条件(1b)至(1h),(1j)-(1k)表示约束条件(1j)至(1k),约束条件(2a)使得每个任务最多被执行一次,约束条件(2b)保证被执行任务在截止时间τi前完成执行。
具体来说,由于步骤S3中的整数规划中包含一些非线性非一般的限制条件(1b)(1c)(1e)(1g)(1h),并且是在线方式,无法通过解上述整数规划得到问题解。于是,本步骤通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划分为多段。
步骤S4.2中,一个完成任务权重和最大化问题是给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大。通过调用一个对偶近似算法来实现,该对偶近似算法以Ji和τi为输入,输出一个任务调度方案,该任务调度方案需要满足以下两个条件:(1)时间长度不超过ατi;(2)在该任务调度方案中完成任务的权重之和至少为前述完成任务权重和最大化问题最优解中的完成任务的权重之和。按照对偶近似算法输出的任务调度方案在ατi到ατi+1的时间段内执行这些任务。
具体来说,利用一个求解完成任务权重和最大化问题的近似算法来实现,对偶近似算法运行α轮完成任务权重和最大化问题的近似算法,在第ι(ι∈α)轮,完成任务权重和最大化问题近似算法的输入为
Figure BDA0002304505790000145
其中
Figure BDA0002304505790000146
表示Ji中在第ι轮运行之前完成的任务。按照输出的任务调度方案在时间(ι-1)τi+1到ιτi之间安排任务。
在一种实施方式中,在步骤S4.3之后,所述方法还包括:采用紧凑指数的方法对步骤S4.3整数规划重写为等价的常规整数线性规划问题:
Figure BDA0002304505790000151
Figure BDA0002304505790000152
Figure BDA0002304505790000153
xjl∈{0,1},j∈[Ji],l∈Γj
其中,Γj表示任务j所有的可行的执行方案的集合,变量xjl表示是否按照方案l(l∈Γj)来调度任务j,1表示是,0表示否,约束条件(3a)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,约束条件(3b)保证每个任务最多被执行一次,重写的代价为引入了指数级数量的变量xjl
Figure BDA0002304505790000154
每一个变量对应某一个任务的一个可能调度方案。
具体来说,由于步骤S4.3得到的整数规划中有一些非线性和涉及变量相乘的限制条件,所以本实施方式采用compact-exponential(紧凑指数)的技术将上述整数规划重写为等价的常规整数线性规划问题。
在一种实施方式中,步骤S5具体包括:
步骤S5.1:首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量
Figure BDA0002304505790000155
和uj分别对应约束条件3a和3b,得到松弛之后的整数线性规划的对偶线性规划如下:
Figure BDA0002304505790000156
Figure BDA0002304505790000157
Figure BDA0002304505790000158
其中,对偶变量
Figure BDA0002304505790000159
表示在t时刻服务器h上r类型资源的单价,
Figure BDA00023045057900001510
为按照方案l执行任务j的所有工作节点和参数服务器的总资源花费,对偶变量uj大于或等于任务权重与按照方案l执行任务j的所有工作节点和参数服务器的总资源花费之间的差值,其中,当uj>0时,则按照lj来调度任务j此时
Figure BDA00023045057900001511
否则不执行任务j,此时
Figure BDA00023045057900001512
步骤S5.2:按照方案lj设置与任务调度相关的决策参数:xjt、qj、dj、yjhm、sjhp的值,更新
Figure BDA0002304505790000161
的值,并设置价格函数更新对偶变量
Figure BDA0002304505790000162
Figure BDA0002304505790000163
其中,λ=2(THRF)+1,F为单位资源单位时间权值上限,
Figure BDA0002304505790000164
Figure BDA0002304505790000165
当资源占用量
Figure BDA0002304505790000166
接近0时,此时价格函数值接近0,表示任务可免费使用资源,当
Figure BDA0002304505790000167
接近资源容量
Figure BDA0002304505790000168
时,价格快速增长到接近设置的一个足够大的值λ,表示此时只有当任务权重足够大时资源才会被分配给任务使用;
步骤S5.3:为每个任务j找到一个资源花费最小的执行方案,根据价格函数,对于单个任务j的调度转化为花费最小化问题:
Figure BDA0002304505790000169
Figure BDA00023045057900001610
Figure BDA00023045057900001611
步骤S5.4:对步骤S5.3中的花费最小化问题进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
具体来说,为了求解采用紧凑指数转换后的常规整数线性规划问题,需要首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量
Figure BDA00023045057900001612
和uj分别对应约束条件3a和3b。对偶变量
Figure BDA00023045057900001613
表示在t时刻服务器h上r类型资源的单价,则
Figure BDA00023045057900001614
为按照方案l执行任务j的所有工作节点和参数服务器的总资源花费。限制条件(4a)的右边,也就是任务权重减去按照方案l执行任务j的所有工作节点和参数服务器的总资源花费,就是任务j的效益。为了最小化对偶目标函数,可以按照取0和按照最优方案(以lj来表示)执行任务j的效益二者之间的最大值赋值给对偶变量uj。如果uj>0,则按照lj来调度任务j(
Figure BDA00023045057900001615
),否则不执行任务j(
Figure BDA00023045057900001616
)。这样做的基本原理在于,在有限资源下,希望执行效益更高的任务。
接下来是设置价格函数来更新对偶变量
Figure BDA0002304505790000171
Figure BDA0002304505790000172
来记录时刻t服务器h上已经被分配的r类型资源数量。由于每个任务的权重是固定参数,则可以为每个任务j找到一个资源花费最小的执行方案。对于单个任务j来说,价格函数是一定的,于是将本发明的面向分布式机器学习任务的在线调度问题转化为花费最小化问题,在具体的求解过程中,可以通过遍历和贪心算法等算法设计技术设计解该问题的算法来得到最优解。
因此,本发明具有如下优点:通过最大程度地利用分布式机器学习任务的资源需求弹性来充分运用资源,提高资源利用率,更加高效地调度大量分布式机器学习任务。
请参见图2,为一种具体实施方式中求解调度方案的计算流程图,其中,初始化变量即初始化与任务调度相关的决策参数,并收集第i轮之前达到且尚未完成的任务,将第i轮分为若干段,对于第ι段,初始化资源占用量,即时刻t服务器h上已经被分配的r类型资源数量,并计算任务j的最优执行方案,然后根据最优执行方案计算任务j的效益,根据效益是否大于0,来决定按照最优执行方案更新任务的决策变量(与任务调度相关的决策参数)以及对偶变量、资源占用量和价格变量,需要说明的是此处的对偶变量为ij,价格变量为
Figure BDA0002304505790000173
或者本段不执行该任务。对于第i轮的每一段,根据类似方式循环执行。对于每一轮,按照第i的轮的方式循环执行。
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本实施方式中,使服务器的个数为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可以看出,本发明的方法,可以实现在线调度分布式机器学习任务,并达到充分利用资源,最小化所有任务的完成时间加权和的技术效果。
基于同一发明构思,本申请还提供了与实施例一中面向分布式机器学习任务的在线调度方法对应的装置,详见实施例二。
实施例二
本实施例提供了一种面向分布式机器学习任务的在线调度装置,请参见图5,该装置包括:
参数设置模块201:用于设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
任务完成时间加权和表示模块202,用于根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
线性规划模块203,用于将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
转化模块204,用于将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
调度模块205,用于对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
在一种实施方式中,任务完成时间加权和表示模块具体用于实现下述公式:
Figure BDA0002304505790000191
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
由于本发明实施例二所介绍的装置,为实施本发明实施例一中一种面向分布式机器学习任务的在线调度方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
实施例三
请参见图6,基于同一发明构思,本申请还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。
由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中面向分布式机器学习任务的在线调度方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,请参见图7,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器402执行上述程序时实现实施例一中的方法。
由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中面向分布式机器学习任务的在线调度方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种面向分布式机器学习任务的在线调度方法,其特征在于,包括:
步骤S1:设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
步骤S2:根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
步骤S3:将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
步骤S4:将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
步骤S5:对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案;
其中,步骤S3具体包括:
将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,整数型线性规划的形式如下:
Figure FDA0003580155130000011
约束条件具体包括约束条件(1a)~(1k):
Figure FDA0003580155130000012
Figure FDA0003580155130000013
Figure FDA0003580155130000021
Figure FDA0003580155130000022
Figure FDA0003580155130000023
Figure FDA0003580155130000024
Figure FDA0003580155130000025
Figure FDA0003580155130000026
Figure FDA0003580155130000027
Figure FDA0003580155130000028
Figure FDA0003580155130000029
其中,subject to后的公式为目标函数中的变量所要满足的约束条件,服务器h提供
Figure FDA00035801551300000210
个单位的r类型资源,每个任务在特定资源配置的工作节点和参数服务器上运行,wj表示任务的权重,xjt表示任务j是否在t时刻开始,dj表示完成任务所需要的时间,M表示资源提供商提供的不同资源配置的工作节点的种类,P表示资源提供商提供的不同资源配置的参数服务器的种类,其中,m类型工作节点的r类型资源配置数量为
Figure FDA00035801551300000211
p类型参数服务器的r类型资源配置数量为
Figure FDA00035801551300000212
带宽资源单独表示为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类型参数服务器的个数,sjh′p表示部署在服务器h’上的执行任务j的p类型参数服务器的个数,ρjm为m类型的工作节点执行任务j时的处理能力;
约束条件(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)用以保证变量的合理性;
步骤S5具体包括:
步骤S5.1:首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量
Figure FDA0003580155130000031
和uj分别对应约束条件3a和3b,得到松弛之后的整数线性规划的对偶线性规划如下:
Figure FDA0003580155130000032
Figure FDA0003580155130000033
Figure FDA0003580155130000034
其中,对偶变量
Figure FDA0003580155130000035
表示在t时刻服务器h上r类型资源的单价,
Figure FDA0003580155130000036
为按照方案l执行任务j的所有工作节点和参数服务器的总资源花费,对偶变量uj大于或等于任务权重与按照方案l执行任务j的所有工作节点和参数服务器的总资源花费之间的差值,其中,当uj>0时,则按照lj来调度任务j此时
Figure FDA0003580155130000037
否则不执行任务j,此时
Figure FDA0003580155130000038
步骤S5.2:按照方案lj设置与任务调度相关的决策参数:xjt、qj、dj、yjhm、sjhp的值,更新
Figure FDA0003580155130000039
的值,并设置价格函数更新对偶变量
Figure FDA00035801551300000310
Figure FDA0003580155130000041
其中,λ=2(THRF)+1,F为单位资源单位时间权值上限,
Figure FDA0003580155130000042
Figure FDA0003580155130000043
当资源占用量
Figure FDA0003580155130000044
接近0时,此时价格函数值接近0,表示任务可免费使用资源,当
Figure FDA0003580155130000045
接近资源容量
Figure FDA0003580155130000046
时,价格快速增长到接近设置的一个足够大的值λ,表示此时只有当任务权重足够大时资源才会被分配给任务使用;
步骤S5.3:为每个任务j找到一个资源花费最小的执行方案,根据价格函数,对于单个任务j的调度转化为花费最小化问题:
Figure FDA0003580155130000047
Figure FDA0003580155130000048
Figure FDA0003580155130000049
步骤S5.4:对步骤S5.3中的花费最小化问题进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
2.如权利要求1所述的方法,其特征在于,步骤S2中所有任务的完成时间加权和为:
Figure FDA00035801551300000410
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
3.如权利要求1所述的方法,其特征在于,步骤S4具体包括:
步骤S4.1:通过一系列呈几何增长的时间点,将整个可能的任务完成时间范围划分为多段,划分的参数包括起始时间τ0=1,第i段的时间τi=2i-1,并在第i轮,收集在时间τi之前提交且尚未完成的任务,用集合Ji表示;
步骤S4.2:根据划分的时间范围,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,其中,完成任务权重和最大化问题为:给定一个截止时间τi,一个任务集合Ji,得到一个调度Ji中所有任务的方案,使得所有完成任务的权重和最大;
步骤S4.3:将完成任务权重和最大化问题转化为整形规划形式,并得到对应的约束条件,完成任务权重和最大化问题的整形规划形式如下:
Figure FDA0003580155130000051
约束条件如下:
Figure FDA0003580155130000052
Figure FDA0003580155130000053
Figure FDA0003580155130000054
其中,(1b)-(1h)表示约束条件(1b)至(1h),(1j)-(1k)表示约束条件(1j)至(1k),约束条件(2a)使得每个任务最多被执行一次,约束条件(2b)保证被执行任务在截止时间τi前完成执行。
4.如权利要求3所述的方法,其特征在于,在步骤S4.3之后,所述方法还包括:采用紧凑指数的方法对步骤S4.3整数规划重写为等价的常规整数线性规划问题:
Figure FDA0003580155130000055
Figure FDA0003580155130000056
Figure FDA0003580155130000057
xjl∈{0,1},j∈[Ji],l∈Γj
其中,Γj表示任务j所有的可行的执行方案的集合,变量xjl表示是否按照方案l(l∈Γj)来调度任务j,1表示是,0表示否,约束条件(3a)为资源容量限制,保证每个时刻服务器h上运行任务的资源需求量不超过其容量,约束条件(3b)保证每个任务最多被执行一次,重写的代价为引入了指数级数量的变量xjl
Figure FDA0003580155130000058
每一个变量对应某一个任务的一个可能调度方案。
5.一种面向分布式机器学习任务的在线调度装置,其特征在于,包括:
参数设置模块:用于设置与任务调度相关的决策参数,与任务调度相关的决策参数包括:表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重、表示任务j的所有工作节点和参数服务器是否都部署在同一台服务器上的指示参数、部署在服务器h上的执行任务j的m类型工作节点个数、部署在服务器h上的执行任务j的p类型参数服务器的个数,其中,任务的权重用以表征任务的紧急程度;
任务完成时间加权和表示模块,用于根据表示任务是否在t时刻开始的参数、完成任务所需要的时间、任务的权重,获得所有任务的完成时间加权和;
线性规划模块,用于将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,其中,整数型线性规划用以表示所有任务的完成时间加权和最小化问题;
转化模块,用于将整个时间范围划分呈几何增长的多个时间段,将所有任务的完成时间加权和最小化问题转化为多个完成任务权重和最大化问题,并将完成任务权重和最大化问题转化为整形规划形式;
调度模块,用于对完成任务权重和最大化问题的整形规划进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案;
其中,线性规划模块具体用于:
将所有任务的完成时间加权和转化为成整数型线性规划,并根据与任务调度相关的决策参数设置约束条件,整数型线性规划的形式如下:
Figure FDA0003580155130000061
约束条件具体包括约束条件(1a)~(1k):
Figure FDA0003580155130000062
Figure FDA0003580155130000063
Figure FDA0003580155130000071
Figure FDA0003580155130000072
Figure FDA0003580155130000073
Figure FDA0003580155130000074
Figure FDA0003580155130000075
Figure FDA0003580155130000076
Figure FDA0003580155130000077
Figure FDA0003580155130000078
Figure FDA0003580155130000079
其中,subject to后的公式为目标函数中的变量所要满足的约束条件,服务器h提供
Figure FDA00035801551300000710
个单位的r类型资源,每个任务在特定资源配置的工作节点和参数服务器上运行,wj表示任务的权重,xjt表示任务j是否在t时刻开始,dj表示完成任务所需要的时间,M表示资源提供商提供的不同资源配置的工作节点的种类,P表示资源提供商提供的不同资源配置的参数服务器的种类,其中,m类型工作节点的r类型资源配置数量为
Figure FDA00035801551300000711
p类型参数服务器的r类型资源配置数量为
Figure FDA00035801551300000712
带宽资源单独表示为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类型参数服务器的个数,sjh′p表示部署在服务器h’上的执行任务j的p类型参数服务器的个数,ρjm为m类型的工作节点执行任务j时的处理能力;
约束条件(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)用以保证变量的合理性;
调度模块具体用于:
首先将xjl∈{0,1}松弛为xjl≥0,然后引入对偶变量
Figure FDA0003580155130000081
和uj分别对应约束条件3a和3b,得到松弛之后的整数线性规划的对偶线性规划如下:
Figure FDA0003580155130000082
Figure FDA0003580155130000083
Figure FDA0003580155130000084
其中,对偶变量
Figure FDA0003580155130000085
表示在t时刻服务器h上r类型资源的单价,
Figure FDA0003580155130000086
为按照方案l执行任务j的所有工作节点和参数服务器的总资源花费,对偶变量uj大于或等于任务权重与按照方案l执行任务j的所有工作节点和参数服务器的总资源花费之间的差值,其中,当uj>0时,则按照lj来调度任务j此时
Figure FDA0003580155130000087
否则不执行任务j,此时
Figure FDA0003580155130000088
按照方案lj设置与任务调度相关的决策参数:xjt、qj、dj、yjhm、sjhp的值,更新
Figure FDA0003580155130000089
的值,并设置价格函数更新对偶变量
Figure FDA00035801551300000810
Figure FDA0003580155130000091
其中,λ=2(THRF)+1,F为单位资源单位时间权值上限,
Figure FDA0003580155130000092
Figure FDA0003580155130000093
当资源占用量
Figure FDA0003580155130000094
接近0时,此时价格函数值接近0,表示任务可免费使用资源,当
Figure FDA0003580155130000095
接近资源容量
Figure FDA0003580155130000096
时,价格快速增长到接近设置的一个足够大的值λ,表示此时只有当任务权重足够大时资源才会被分配给任务使用;
为每个任务j找到一个资源花费最小的执行方案,根据价格函数,对于单个任务j的调度转化为花费最小化问题:
Figure FDA0003580155130000097
Figure FDA0003580155130000098
Figure FDA0003580155130000099
对单个任务j的调度转化得到的花费最小化问题进行求解,得到任务的调度方案,包括开始执行的时间,工作节点和参数服务器的部署方案,以及工作节点和参数服务器的资源配置方案。
6.如权利要求5所述的装置,其特征在于,任务完成时间加权和表示模块具体用于实现下述公式:
Figure FDA00035801551300000910
其中,wj表示任务的权重,cj表示任务j的完成时间,xjt表示任务j是否在t时刻开始,xjt=1时,表示是,xjt=0是表示否,dj表示完成任务所需要的时间,J表示在总长为T的时刻里被提交的机器学习任务的数量。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至4中任一项权利要求所述的方法。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4中任一项权利要求所述的方法。
CN201911234466.7A 2019-12-05 2019-12-05 一种面向分布式机器学习任务的在线调度方法及装置 Active CN110889510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911234466.7A CN110889510B (zh) 2019-12-05 2019-12-05 一种面向分布式机器学习任务的在线调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911234466.7A CN110889510B (zh) 2019-12-05 2019-12-05 一种面向分布式机器学习任务的在线调度方法及装置

Publications (2)

Publication Number Publication Date
CN110889510A CN110889510A (zh) 2020-03-17
CN110889510B true CN110889510B (zh) 2022-06-07

Family

ID=69750610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911234466.7A Active CN110889510B (zh) 2019-12-05 2019-12-05 一种面向分布式机器学习任务的在线调度方法及装置

Country Status (1)

Country Link
CN (1) CN110889510B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559007B (zh) * 2020-12-14 2022-09-23 北京百度网讯科技有限公司 多任务模型的参数更新方法、装置及电子设备
CN113157413B (zh) * 2021-04-16 2022-04-26 上海交通大学 基于服务质量需求的深度学习任务资源优化配置方法及系统
CN113139663B (zh) * 2021-04-23 2023-01-20 深圳市大数据研究院 联邦边缘学习配置信息获取方法、装置、设备及介质
CN114139730B (zh) * 2021-06-30 2024-04-19 武汉大学 一种面向边缘云网络中机器学习任务的动态定价和部署方法
CN113391649B (zh) * 2021-08-17 2021-11-02 成都卡莱博尔信息技术股份有限公司 无人机显控一体方法和系统、装置及计算机可读储存介质
CN115964182B (zh) * 2023-03-16 2023-07-21 阿里巴巴(中国)有限公司 资源的调度方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495758A (zh) * 2011-12-05 2012-06-13 中南大学 分布式高性能计算环境中实时任务的调度方法
CN108462607A (zh) * 2018-03-20 2018-08-28 武汉大学 一种网络功能虚拟化(nfv)服务链成本最小化的可扩展和分布式方法
CN108694090A (zh) * 2018-04-16 2018-10-23 江苏润和软件股份有限公司 一种面向分布式机器学习的云计算资源调度方法
CN110086650A (zh) * 2019-03-20 2019-08-02 武汉大学 面向分布式机器学习任务的云资源在线调度方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846777B2 (en) * 2018-04-12 2020-11-24 Sihem Constantinescu System for providing a personalized concierge service
US10685376B2 (en) * 2018-05-18 2020-06-16 Thryv, Inc. Method and system for lead budget allocation and optimization on a multi-channel multi-media campaign management and payment platform

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495758A (zh) * 2011-12-05 2012-06-13 中南大学 分布式高性能计算环境中实时任务的调度方法
CN108462607A (zh) * 2018-03-20 2018-08-28 武汉大学 一种网络功能虚拟化(nfv)服务链成本最小化的可扩展和分布式方法
CN108694090A (zh) * 2018-04-16 2018-10-23 江苏润和软件股份有限公司 一种面向分布式机器学习的云计算资源调度方法
CN110086650A (zh) * 2019-03-20 2019-08-02 武汉大学 面向分布式机器学习任务的云资源在线调度方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Proactive scheduling in distributed computing—A reinforcement learning approach;Zhao Tong et.al;《Journal of Parallel and Distributed Computing》;20140731;第74卷(第7期);第2662-2672页 *
基于计算智能的并行分布式系统任务调度算法研究;童钊;《中国博士学位论文全文数据库》;20190315;第I140-3页 *

Also Published As

Publication number Publication date
CN110889510A (zh) 2020-03-17

Similar Documents

Publication Publication Date Title
CN110889510B (zh) 一种面向分布式机器学习任务的在线调度方法及装置
CN109491790B (zh) 基于容器的工业物联网边缘计算资源分配方法及系统
Bao et al. Online job scheduling in distributed machine learning clusters
US9471390B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
CN110086650B (zh) 面向分布式机器学习任务的云资源在线调度方法及装置
CN107003887A (zh) Cpu超载设置和云计算工作负荷调度机构
CN103699446A (zh) 基于量子粒子群优化算法的多目标工作流动态调度方法
CN109947551A (zh) 一种多轮次任务分配方法、边缘计算系统及其存储介质
WO2021126272A1 (en) Machine learning workload orchestration in heterogeneous clusters
CN113472597B (zh) 分布式卷积神经网络细粒度的参数传输调度方法及装置
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
Peng et al. A reinforcement learning-based mixed job scheduler scheme for cloud computing under SLA constraint
CN115033357A (zh) 基于动态资源选择策略的微服务工作流调度方法及装置
Li et al. A chaotic particle swarm optimization-based heuristic for market-oriented task-level scheduling in cloud workflow systems
CN106407007B (zh) 面向弹性分析流程的云资源配置优化方法
CN109976873B (zh) 容器化分布式计算框架的调度方案获取方法及调度方法
CN114490049A (zh) 在容器化边缘计算中自动分配资源的方法及系统
Wang et al. Communication contention aware scheduling of multiple deep learning training jobs
Cui et al. Cloud workflow scheduling algorithm based on reinforcement learning
PushpaLatha et al. A cost effective load balancing scheme for better resource utilization in cloud computing
Reshmi et al. Profit and resource availability-constrained optimal handling of high-performance scientific computing tasks
Chen et al. Two-tiered Online Optimization of Region-wide Datacenter Resource Allocation via Deep Reinforcement Learning
Filippini et al. Hierarchical Scheduling in on-demand GPU-as-a-Service Systems
Chaves et al. Scheduling cloud applications under uncertain available bandwidth
Hajoui et al. Q-learning applied to the problem of scheduling on heterogeneous architectures

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