Optimus: An Efficient Dynamic Resource Scheduler for Deep Learning Clusters(论文笔记)

问题

在一个共享的深度学习集群中,同一时期会提交各种各样的训练任务,高效的资源调度能够最大化利用昂贵的资源,以加速完成训练。可以利用深度学习框架的结构(比如参数服务器架构)和深度学习任务的特征(比如迭代、收敛性质)来最大化训练效率。

这篇文章提出了Optimus,一种定制化的深度学习集群调度器,能够最小化任务训练时间、提升资源利用效率。

设计

深度学习任务的性能建模

为了做出好的资源调度,需要知道资源配置和任务训练时间之间的关系。为此,作者估计了一个任务再训练多少个回合才能收敛,以及在给定的资源配置下一个任务完成一个训练回合需要多长时间。

学习收敛曲线

大部分DL任务使用SGD来更新参数,SGD以O(1/k)的速率收敛,其中k是迭代的步数(一个worker训练一个小批量并更新梯度称为一步)。因此使用以下模型来拟合训练损失:

l ( k ) = 1 β 0 k + β 1 + β 2 l(k) = \frac{1}{\beta_0 k + \beta_1} + \beta_2 l(k)=β0k+β11+β2

其中l表示训练损失, β 0 \beta_0 β0 β 1 \beta_1 β1 β 2 \beta_2 β2都是非负参数。

在每个训练步之后,收集训练损失,然后使用非负最小二乘法来拟合曲线。使用拟合好的损失函数曲线和预定义的收敛阈值,就可以很容易地算出还需要迭代的回合数。

资源-速度建模

作者考虑了前向传播、反向传播、梯度上传、梯度更新、参数拉回和通信开销(处理TCP连接、控制信息),建模出了训练速度与worker数量w、PS数量p的关系,同步模型如下:

在这里插入图片描述

异步模型如下:

在这里插入图片描述

之后,用收集的数据拟合参数值(在训练之前,先用一个小的数据集训练,使用不同的p、w组合,收集训练速度数据),得到训练速度与p和w的关系。在实际的训练中,可以收集真正的训练速度数据,微调参数。

动态调度

Optimus周期性的给活跃任务分配资源,调整每个任务的参数服务器和worker的数量和放置。

资源分配

Q j Q_j Qj表示任务j达到收敛剩余的迭代步数, f ( p j , w j ) f(p_j,w_j) f(pj,wj)表示任务j目前的训练速度。定义任务完成时间的边际效益如下:

在这里插入图片描述

公式中的, N j D N_j^D NjD表示的是任务j的参数服务器的支配资源的数量(一个支配的资源是有最大份额的资源), O j D ′ O_j^{D'} OjD表示的是任务j的workers的支配资源的数量。因此前面的项指的是增加一个参数服务器后每单元支配资源减少的完成时间,后面的项指的是增加一个worker后每单元支配资源减少的完成时间。

资源分配算法如下:首先给每个活跃任务分配一个worker和一个参数服务器。然后给所有任务按照边际效益的递减顺序排序。然后,选择边际效益最大的一个任务增加参数服务器或worker(选择上式中两项中最大的那一个)。算法迭代到所有的资源被用尽,或者所有任务的边际效益都是非正值。

任务放置

资源分配好了以后,需要考虑将这些worker和参数服务器放到哪个真实的服务器上,注意,一个服务器可以支撑多个worker和参数服务器。

定理:考虑到同步训练作业中worker和参数服务器的数量,在同质服务器集群中,为实现作业的最大训练速度,最佳的worker/参数服务器放置原则是使用最小数量的服务器来承载作业,从而在这些服务器上分别部署相同数量的参数服务器和相同数量的worker。

基于以上原则设计了以下算法,以最小化传输时间:

首先按照可用资源大小的递减顺序给所有的服务器排序(比如可用CPU容量)。然后,按照资源需求递增的顺序给任务排序,防止任务饿死。对于每个任务,首先检查前k个服务器是否足够(从k=1开始),如果足够,就在k个服务器上均匀的放置参数服务器和worker。如果不够,就检查k+1,k+2,…,直到找到足够的服务器放置任务。最后更新这k个服务器的可用资源数量,然后重新排序服务器。重复这个过程,知道所有的任务被放置或者没有足够的资源放置任务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值