基于tensorflow的多任务弹性调度方法及系统技术方案

技术编号:27621131 阅读:29 留言:0更新日期:2021-03-10 11:02
本发明专利技术公开了一种基于tensorflow的多任务弹性调度方法及系统,其中方法包括以下步骤:利用任务管理系统对进入集群中的任务进行预处理,允许集群中存在多个任务同时进行;从任务管理系统的配置文件中获取集群中所有GPU资源数量,利用可用GPU数量为训练任务划分数据集,将每部分数据集划分到指定GPU;在每个GPU上为任务弹性分配显存资源,弹性扩展空闲GPU以提升训练速度;在每部分数据集上完成梯度下降,获得每部分的当前梯度;利用群集间的通信将梯度进行累加得到当前的总梯度;将总梯度广播至每个GPU,再进行下一次梯度下降。本发明专利技术能够弹性的调度多任务进入到集群中,利用集群已有资源高效的完成分布式计算。群已有资源高效的完成分布式计算。群已有资源高效的完成分布式计算。

【技术实现步骤摘要】
基于tensorflow的多任务弹性调度方法及系统


[0001]本专利技术属于计算机
,具体地涉及一种基于tensorflow的多任务弹性调度方法及系统。

技术介绍

[0002]深度学习作为机器学习领域的一个重要分支,在近年来得到了工业界及学术界的高度关注,并且取得了令人瞩目的发展,在机器视觉、语音识别等领域得到了广泛应用。但是,海量的训练数据、超大规模的模型给深度学习带来了日益严峻的挑战,分布式深度学习应运而生,逐渐成为应对这一挑战的有效手段。
[0003]google公司开发了MapReduce系统,在处理大规模数据的分布式训练上取得了一定的成果,该框架实现了高效的处理大规模数据的能力,但是其在深度学习训练方面能力不足。由于此系统并没有开源,因此针对MapReduce有了许多开源实现,其中最成功的是Apache Hadpoo,但是该系统远不及MapReduce的性能。Berkeley开发了Apache Spark,这种框架拥有着良好的容错能力,不仅在数据处理方面,在深度学习训练上也有不错的性能,但是它采用的同步训练方式,有着较高的通信损失。近几年,uber公司研究多种深度学习训练集群(MapReduce、Apache Spark、ring-Allreduce等),提出一种深度学习系统Horovod,它在降低通信损失,简化框架搭建上取得了极大地进步,在多GPU多节点上高效率的完成了训练任务。在另一篇论文中以Horovod为参照,在worker节点和训练机器之间添加一层结构(EDL),实现多租户弹性控制训练集群。它引入了多租户和弹性调度的思想,但是其从集群内部展开的方式会改变集群的构成,这样使用者难以深入的去进行调整,同时可能会产生某些程序性错误,增加不必要的麻烦,可用性较低。

技术实现思路

[0004]本专利技术的目的在于,提供一种能够利用有限资源,去做更多的训练,使更多的用户加入到训练中来基于tensorflow的多任务弹性调度方法及系统,
[0005]本专利技术为达上述目的所采用的技术方案是:
[0006]提供一种基于tensorflow的多任务弹性调度方法,其特征在于,包括以下步骤:
[0007]S1:利用任务管理系统对进入集群中的任务进行预处理,允许集群中存在多个任务同时进行;
[0008]S2:从任务管理系统的配置文件中获取集群中所有GPU资源数量,利用可用GPU数量为训练任务划分数据集,将每部分数据集划分到指定GPU;
[0009]S3:在每个GPU上为任务弹性分配显存资源,弹性扩展空闲GPU以提升训练速度;
[0010]S4:在每部分数据集上完成梯度下降,获得每部分的当前梯度;
[0011]S5:利用群集间的通信将梯度进行累加得到当前的总梯度;
[0012]S6:将总梯度广播至每个GPU,再进行下一次梯度下降。
[0013]接上述技术方案,步骤S1中,对加入到系统中的所有任务,任务管理程序依据关键
字为每个任务生成一个特定的进程leader。
[0014]接上述技术方案,根据加入到任务中总GPU数量划分数据集,每份数据集都不相同但数量一致并都能保证完成当前的梯度下降。
[0015]接上述技术方案,步骤S3中,获取分配的训练机器数量和GPU数量,集群中的训练机器称为worker,以size参数标记所有GPU数量,以参数local_rank标记每个worker上的GPU,根据size=local_rank*worker,循环修改所有GPU显存占比。
[0016]接上述技术方案,当多任务加入到集群中之后,计划整体的资源分配,对于先头作业,集群属于空载,任务管理系统相应提升显存用量,当集群逐渐满载,任务管理系统则自适应降低显存分配,直到满载时无法为作业申请显存。
[0017]接上述技术方案,在训练作业初始时,程序会进入train入口正常进行训练,新的GPU加入时,作业将暂停;由于集群的特性,每次梯度下降,最新的检查点checkpoint默认保存在第一个worker0节点,将最新的模型参数广播至所有worker,然后程序会进入到断点入口breakpoint,此时所有的GPU节点都将延续使用最新的模型参数,并不会影响梯度的下降。
[0018]接上述技术方案,每N个worker节点与其他两个worker节点通信2*(N-1)次;在通信的过程中,一个节点接收并发送数据缓冲区传来的块,在第一个N-1迭代中,接收的值被添加到节点缓冲区中,在第二个N-1迭代中,接收的值代替数据缓冲区中的值,其中N为大于1的整数。
[0019]接上述技术方案,步骤S4中:将数据集下载到每个GPU中,完成一次计算,每个GPU都有一个梯度值,每次只与相邻训练机器worker进行梯度累加;N-1次之后完成所有梯度的累加;再将梯度同步到所有节点,N-1次完成所有节点同步,即完成一次梯度下降,反复这个过程,直到损失函数收敛完成训练。
[0020]本专利技术还提供了一种基于tensorflow的多任务弹性调度方法及系统,包括:
[0021]作业管理模块,利用任务管理系统对进入集群中的任务进行预处理,允许集群中存在多个任务同时进行;
[0022]数据集分组模块,用于从任务管理系统的配置文件中获取集群中所有GPU资源数量,利用可用GPU数量为训练任务划分数据集,将每部分数据集划分到指定GPU;
[0023]GPU扩展模块,用于在每个GPU上为任务弹性分配显存资源,弹性扩展空闲GPU以提升训练速度;
[0024]同步累加模块,用于在每部分数据集上完成梯度下降,获得每部分的当前梯度;利用群集间的通信将梯度进行累加得到当前的总梯度;将总梯度广播至每个GPU,再进行下一次梯度下降。
[0025]本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述技术方案所述的基于tensorflow的多任务弹性调度方法的步骤。
[0026]本专利技术产生的有益效果是:本专利技术基于tensorflow的多任务弹性调度方法能够利用分布式训练为任务提供一个高效快速的训练平台;并且创造性的提出多任务弹性调度的方法,自适应修改多任务在集群中资源占用情况,最终达到多任务弹性调度的目的。
附图说明
[0027]下面将结合附图及实施例对本专利技术作进一步说明,附图中:
[0028]图1是本专利技术实施例提供的一种基于tensorflow的多任务弹性调度方法及系统的流程示意图;
[0029]图2(a)—图2(e)是本专利技术提出的同步累加模块采取方式的示意图;
[0030]图3是本专利技术提出的作业管理模块的流程图;
[0031]图4是本专利技术提出的GPU扩展模块的流程图;
[0032]图5是本专利技术提出的显存控制模块的流程图;
[0033]图6是本专利技术实施例针对训练效率的测试效果图;
[0034]图7是本专利技术实施例针对资源分配的测试效果图。...

【技术保护点】

【技术特征摘要】
1.一种基于tensorflow的多任务弹性调度方法,其特征在于,包括以下步骤:S1:利用任务管理系统对进入集群中的任务进行预处理,允许集群中存在多个任务同时进行;S2:从任务管理系统的配置文件中获取集群中所有GPU资源数量,利用可用GPU数量为训练任务划分数据集,将每部分数据集划分到指定GPU;S3:在每个GPU上为任务弹性分配显存资源,弹性扩展空闲GPU以提升训练速度;S4:在每部分数据集上完成梯度下降,获得每部分的当前梯度;S5:利用群集间的通信将梯度进行累加得到当前的总梯度;S6:将总梯度广播至每个GPU,再进行下一次梯度下降。2.根据权利要求1所述的基于tensorflow的多任务弹性调度方法,其特征在于,步骤S1中,对加入到系统中的所有任务,任务管理程序依据关键字为每个任务生成一个特定的进程leader。3.根据权利要求1所述的基于tensorflow的多任务弹性调度方法,其特征在于,步骤S2中,根据加入到任务中总GPU数量划分数据集,每份数据集都不相同但数量一致并都能保证完成当前的梯度下降。4.根据权利要求1所述的基于tensorflow的多任务弹性调度方法,其特征在于,步骤S3中,获取分配的训练机器数量和GPU数量,集群中的训练机器称为worker,以size参数标记所有GPU数量,以参数local_rank标记每个worker上的GPU,根据size=local_rank*worker,循环修改所有GPU显存占比。5.根据权利要求3所述的基于tensorflow的多任务弹性调度方法,其特征在于,当多任务加入到集群中之后,计划整体的资源分配,对于先头作业,集群属于空载,任务管理系统相应提升显存用量,当集群逐渐满载,任务管理系统则自适应降低显存分配,直到满载时无法为作业申请显存。6.根据权利要求3所述的基于tensorflow的多任务弹性调度方法,其特征在于,在训练作业初始时,程序会进入train入口正常进行训练,新的GPU...

【专利技术属性】
技术研发人员:李迅周覃张彦铎尹健南王重九崔恒
申请(专利权)人:武汉工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1