公平调度(DRF)
DRF(Dominant Resource Fairness)是主资源公平调度策略,应用于大批量提交AI训练和大数据作业的场景,可增强集群业务的吞吐量,整体缩短业务执行时间,提高训练性能。
前提条件
- 已创建v1.19及以上版本的集群,详情请参见购买集群。
- 已安装Volcano插件,详情请参见Volcano调度器。
背景信息
在实际业务中,经常会遇到将集群稀缺资源分配给多个用户的情况,每个用户获得资源的权利都相同,但是需求数却可能不同,如何公平的将资源分配给每个用户是一项非常有意义的事情。调度层面有一种常用的方法为最大最小化公平分配算法(max-min fairness share),尽量满足用户中的最小的需求,然后将剩余的资源公平分配给剩下的用户。形式化定义如下:
- 资源分配以需求递增的方式进行分配
- 每个用户获得的资源不超过其需求
- 未得到满足的用户等价平分剩下的资源
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。
使用方法
安装Volcano后,您可通过“配置中心 > 调度配置”选择开启或关闭DRF调度能力,默认开启。
- 登录CCE控制台。
- 单击集群名称进入集群,在左侧选择“配置中心”,在右侧选择“调度配置”页签。
- 在“AI任务性能增强调度”配置中,选择是否开启“公平调度 (drf) ”。
启用该能力后,可增强集群业务的吞吐量,提高业务运行性能。
- 修改完成后,单击“确认配置”。