Sia: Heterogeneity-aware, goodput-optimizedML-cluster scheduling

本文设计了一个新的调度器Sia(弹性+异质+自适应(非刚性,即可扩缩)),针对深度学习(DL)集群的资源分配优化方法,它可以根据不同的任务需求和集群状态,动态地调整任务的GPU类型和数量,从而提高集群的效率和吞吐量。

弹性是指任务可以在不同数量的GPU上进行中断和恢复,可适应性是指任务可以根据分配的资源来调整运行方式,比如改变小批次的大小,异构性是指集群中存在多种类型的GPU,它们在性能上有差异。

  • 支持异构集群:Sia调度器可以处理集群中存在不同类型和性能的GPU的情况,根据每个任务对GPU的适应性,选择最合适的GPU类型分配给任务。
  • 支持资源自适应任务:Sia调度器可以处理任务的弹性和资源自适应性,即任务可以根据分配的资源,调整自己的运行参数,例如批量大小,以达到最佳的训练效果。
  • 使用新的调度公式:Sia调度器使用了一个新的整数线性规划(ILP)公式,来快速地在所有可能的资源分配方案中,找到最大化集群总体吞吐量的最优解。
  • 使用低开销的吞吐量模型:Sia调度器使用了一种新的方法,来为每个任务在每种GPU类型上建立吞吐量模型,用于评估不同的资源分配方案。这种方法只需要对每个任务在每种GPU类型上进行少量的初始测量,然后根据任务在运行中的表现,动态地更新和细化模型。
  • 支持混合并行任务的弹性扩展:Sia调度器是第一个能够支持混合并行任务(即同时使用数据并行和模型并行的任务)的弹性扩展的集群调度器。这意味着Sia调度器可以根据集群的负载和任务的进度,动态地增加或减少混合并行任务的规模,以提高资源利用率和训练速度。

系统工作流程:

用户提交一个作业给Sia,并声明了最大的批处理大小和执行所需的GPU数量。Sia使用每种类型的一个GPU对作业的吞吐量进行少批量大小的分析(profile)Goodput Estimator使用分析结果为作业的每种GPU类型构建一个吞吐量模型。作业在各种资源配置下的goodput估计值提供给策略优化器(policy),以便进行有根据的调度。作业停留在队列中,直到Sia分配GPU给作业,然后进入一个循环,其中它的适应性被Sia不断的优化。Sia调度器的放置器(Placer)根据当前的策略,为每个作业确定具体的GPU位置,尽量减少不必要的作业前一和资源碎片化。Sia调度器在放置器执行完后,将作业交给自适应执行器(adaptive executors)执行,执行器支持(1)透明的检查点-恢复机制,用于低开销的作业抢占和资源缩放;(2)批量大小的自适应调整,用于最大化统计效率;(3)频繁地报告当前资源分配下的梯度和吞吐量统计信息(默认30s)。报告的信息用于更新Goodput Estimator中的模型,在进入下一个调度周期后便会使用更新后的吞吐量估计

Goodput Estimator中有两类模型:1.吞吐量模型:用于预测任务在不同类型和数量的GPU上的处理速度;统计效率模型:用于预测任务在不同批量大小下的训练进度

Sia的吞吐量模型是基于每个作业在每种GPU类型上的性能,以及作业的批量大小和GPU数量的函数。

Sia使用一种启发式的方法,将JA类型的GPU上的吞吐量模型与J在单个GPU上的吞吐量之比来近似JB类型的GPU上的吞吐量模型。这种方法假设不同类型的GPU之间的计算和通信的比例是相似的,

为了使效用矩阵的值可以在不同的工作和配置之间进行比较,作者使用了一种归一化的方法,即用每一行的最小值除以该行的所有值,然后再乘以该工作的最小所需GPU数量。这样做的好处有两个:第一,可以把𝐺看作是工作𝐽的效用矩阵,𝐺𝑖𝑗反映了配置𝐶𝑗对工作𝐽𝑖的效用;第二,可以比较同一配置对不同工作的效用,选择效用最高的工作来使用该配置。

归一化对比任务搭配配置时的效用,

最终求解问题,最大化资源效用

本文设置了重启因子,防止因微小资源变化导致任务重启,而带来巨大的重启开销。重启因子是介于0和1之间的参数,用于惩罚那些需要重启的作业配置,避免频繁的检查点恢复开销。

通过只对那些需要重启作业的效率值应用重启因子,Sia只在不这样做会导致其调度目标的最优值大幅降低的情况下才重启作业。

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值