更新时间:2024-01-04 GMT+08:00

公平调度(DRF)

DRF(Dominant Resource Fairness)是主资源公平调度策略,应用于大批量提交AI训练和大数据作业的场景,可增强集群业务的吞吐量,整体缩短业务执行时间,提高训练性能。

前提条件

背景信息

在实际业务中,经常会遇到将集群稀缺资源分配给多个用户的情况,每个用户获得资源的权利都相同,但是需求数却可能不同,如何公平的将资源分配给每个用户是一项非常有意义的事情。调度层面有一种常用的方法为最大最小化公平分配算法(max-min fairness share),尽量满足用户中的最小的需求,然后将剩余的资源公平分配给剩下的用户。形式化定义如下:

  1. 资源分配以需求递增的方式进行分配
  2. 每个用户获得的资源不超过其需求
  3. 未得到满足的用户等价平分剩下的资源

max-min fairness算法的最大问题是认为资源是单一的,但是现实情况中资源却不是单一的,例如CPU、Memory、GPU等资源在分配时都需要考虑。这个时候DRF应运而生,简单来说DRF就是 max-min fairness 算法的泛化版本,可以支持多种类型资源的公平分配, 即每个用户的主资源满足 max-min fairness 要求。

每个Job资源的Share值计算如下:

Share = Total Request / Cluster Resources

当Job具有多个资源时,将Share值最大的资源作为主资源,在进行优先级调度时,仅根据主资源的Share值进行优先级调度。

例如,Job 1和Job 2分别为两个工作负载,其请求的资源量如图所示, 通过DRF计算之后,Job 1的主资源为Memory,对应的Share值为0.4,Job 2的主资源为CPU,对应的Share值为0.5,根据Share值对比,Job 1的资源请求量小于Job 2,按照最大最小公平算法分配策略,Job 1的优先级高于Job 2。

图1 DRF调度示意图

使用方法

安装Volcano后,您可通过“配置中心 > 调度配置”选择开启或关闭DRF调度能力,默认开启。

  1. 登录CCE控制台。
  2. 单击集群名称进入集群,在左侧选择“配置中心”,在右侧选择“调度配置”页签。
  3. “AI任务性能增强调度”配置中,选择是否开启“公平调度 (drf) ”

    启用该能力后,可增强集群业务的吞吐量,提高业务运行性能。

  4. 修改完成后,单击“确认配置”