11. THEMIS: Fair and Efficient GPU Cluster Scheduling
- 出处: 2020 USENIX Themis:公平高效的 GPU 集群调度 |USENIX
- 主要工作:使用拍卖机制,针对长时间运行、位置敏感的ML应用程序。任务以短期的效率公平来赢取投标但确保长期是完成时间公平性。
- 对每个ML应用程序 A i A_i Ai引入在GPU分配 G i ⃗ \vec{G_i} Gi 最大完成时间公平性 P i ( ⋅ ) P_i(\cdot) Pi(⋅)
- 单轮拍卖:
- 输入:资源和投标, R ⃗ \vec{R} R 表示要拍卖的GPU资源总量,其中每个元素为1,长度为要拍卖的GPU数量。每个ML应用程序都竞标这些资源,每个ML程序出价是对几个GPU分配方案 G ⃗ \vec{G} G ( G i ⃗ \vec{G_i} Gi 的值为 { 0 , 1 } \{0,1\} {0,1})的最大时间公平性 P i P_i Pi
- 多轮拍卖:
- 逐轮拍卖:在每一轮拍卖开始时,向应用程序请求新的 P i ( ⋅ ) P_i(\cdot) Pi(⋅)
- 逐轮过滤:为了最大化 P ≤ 1 P\le 1 P≤1应用数量,每轮都过滤掉 P P P最大的 1 − f 1-f 1−f部分, f ∈ ( 0 , 1 ) f\in(0,1) f∈(0,1)。过滤使具有SI的应用数量最大化:一个输掉一轮拍卖的不公平应用 i i i,更容易打赢一个赢得一轮拍卖的不那么公平的应用 k k k( k k k被分配了GPU,它的 P K P_K PK会增大, i i i由于等待也会增大 P i P_i Pi,会一直出现,输掉太多轮的应用最终会失去所有资源的租约)
- 剩余分配:在每轮的最后,有剩余GPU,将这些GPU分配给没有参加拍卖的应用程序,这在违反了SI的风险下提高了效率。
- 目标:在有效利用集群GPU的同时最小化所有ML应用程序的最大完成时间公平性。最大完成时间公平性 (共享激励):在一个有N个应用程序的共享集群中运行时间与在一个有 1 N \frac{1}{N} N1个应用程序的集群中单独运行的比率。通过两个思想来做到这点。
- 扩大ML应用程序和调度器之间的API,以允许应用程序指定放置偏好。通过一轮轮的拍卖达到,THEMIS使用租约来处理长时间运行的ML任务,并在租约到期时开始拍卖,新一轮开始时有个应用程序出价,价高者得。出价反映应用程序从获取的不同GPU子集的完成时间公平指标。
- 提出两级调度设计。顶层包含一个集中的应用程序见调度程序,底层包含一个集成现有超参数调优框架的API。
- 动机:
- 现有方案无法提供公平的共享保证,因为他们不知道ML应用程序的特征。(主要是位置偏好)
- 简单的方案是获取所有应用的 P i P_i Pi 然后进行排序并分配,但应用程序请求的资源往往比所需的更多,以获得更多的分配机会。
- 几个概念:
- sharing incentive(SI): 如果N个用户共用集群C,每个用户的性能应该不弱于 C N \frac{C}{N} NC
- Pareto efficiency(PE): 帕累托最优。帕累托改善:从一种分配状态到另一种状态的变化中,在没有使任何人情况变化的前提下,使得至少一个人变得更好。帕累托最优是指集群分配无法再进行帕累托改善()。
- envy-freedoms(EF): 无羡嫉
- 新指标: P = T s h T i d P=\frac{T_{sh}}{T_{id}} P=TidTsh T i d T_{id} Tid 是独立完成时间, T s h T_{sh} Tsh 是共享完成时间。如果 P ≤ 1 P\le 1 P≤1 即可实现ML应用的共享激励。(此时共享完成时间小于独立完成时间)。
- 调度器的类型:
- 悲观调度器:可见性和分配在单个应用的粒度上是密切相关的。
- 全乐观调度器:可见性和分配在多个应用的粒度上是密切相关的,有完整的多应用可见性,因为所有集群资源及其状态对所有应用都是可见的,所有应用程序都争夺资源,资源分配决策是由多个应用程序同时使用事务作出的。
- 半乐观调度器:本文所用方案,当跨应用调度器同时为多个应用提供资源时,它具有多应用可见性,而资源分配时是无冲突的,保证每个应用程序对资源的独占访问。
- 模型:
调度架构分为两个级别,包括多个应用程序调度器和一个称为ARBITER的跨应用程序调度程序:
- 第一阶段(1~3):
- ARBITER 要求所有应用程序提供当前完成时间公平性 P P P的估计值。
- ARBITER 启动拍卖,将可用资源的相同非绑定资源分配给 P P P最小的 f ∈ [ 0 , 1 ] f\in[0,1] f∈[0,1]部分应用(根据逐轮过滤)。为了最小化拍卖中ML调度器与参与者的变化,THEMIS 引入一个AGENT ,它和每个ML程序调度器放在一起。AGENT作为ML程序和ARBITER之间的媒介。
- 这些应用程序并行地检查提供的资源,每个应用程序的AGENT返回一个标价,该标价反映了对资源分配的偏好。
- 第二阶段(4~5):
- ARBITER 在收到这一轮的所有投标后,根据部分分配算法和剩余分配方案选择中标。然后通知每个AGENT获胜的分配(如果有的话)。
- AGENT将分配传播给ML应用程序调度器,然后ML应用程序调度器可以决定组成作业之间的分配。