Page 176 - 《软件学报》2025年第4期
P. 176
1582 软件学报 2025 年第 36 卷第 4 期
取了能够降低建模开销的任务元信息法.
3.4 优化弹性部署
表 8 展示了利用性能建模来优化弹性部署的调度方法. 这类调度方法主要应对弹性部署配置多样性挑战. 面
对多样化的弹性部署配置, 可依靠对不同弹性资源量下的任务性能感知, 挖掘性能变化规律, 并依此精简弹性配置
选择空间, 从而有效应对挑战. 基于这一思路, 这类方法设计了贪心算法、图匹配算法, 或构建了强化学习模型, 旨
在以最优的方式弹性分配资源, 进而提升全局资源利用率和训练效率.
表 8 基于性能建模优化弹性部署的调度方法
调度 性能建模 性能建模需求 性能建模 实验设置
成果 效果
目标 方法 执行时间吞吐率收敛效率 利用方式 集群规模任务规模
提升截止时间满足率
ElasticFlow [64] 截止时间 实测剖析 √ - - 设计贪心算法 128 15 000+ [20]
(比Chronus 提升50%)
降低模型收敛时间
[22]
Pollux 收敛效率任务元信息 - - √ 设计贪心算法 64 160 [33]
(比Optimus 降低37%)
弹性部署, 无法面向集群整体的任务打包组合进行全局优化.
提升GPU利用率
[65]
MuxFlow 完成效率计算图结构 - √ - 设计图匹配算法 1 000 7 300+
(比Gandiva [24] 提升45%)
完成效率 降低模型收敛时间
[66]
MLFS 可组合算子 - √ √ 设计强化学习模型 96 2 000+
收敛效率 (比HyperSched [67] 降低64%)
一些方法利用性能建模设计贪心启发式的弹性资源分配规则, 从而避免较高的弹性资源配置搜索空间. 如:
(1) ElasticFlow [64] 专注于截止时间满足的调度目标. 它提出了一种基于弹性无服务器架构的训练平台, 用户只需提
交模型参数与截止时间需求, 而 GPU 数量由平台自动配置. 该方法需要对分布式训练任务的性能在不同 GPU 数
量下的性能进行建模, 以判断哪种资源需求能够满足截止时间要求. 由于 ElasticFlow 仅针对长任务调度, 因此采
取实测剖析法对执行时间进行建模的开销是可接受的. 该研究发现, 尽管弹性部署配置多样, 但由于通讯开销的存
在, 使用单个 GPU 时资源性价比较高. 然而, 仅分配单个 GPU 会导致训练效率低下, 易造成截止时间违约. 因此,
ElasticFlow 设计了贪心的弹性调度算法, 为任务分配能够满足其截止时间需求的最少 GPU, 从而以较少资源代价
提升截止时间满足率. (2) Pollux [22] 利用基于机器学习的任务元信息法对任务在不同参数、资源下的收敛效率进行
建模. 它针对任务的收敛效率提出了一个新的指标“goodput”. 该指标能够综合性地衡量每次迭代对于收敛的贡献
程度. 随后, Pollux 通过设计分层的联合调度架构来最大化“goodput”. 在任务级别上, Pollux 利用建模得到的收敛
率, 设计贪心算法调整任务的 batch size 与学习率, 使其“goodput”最大化. 在集群级别上, 它根据全部任务的“goodput”
进行资源重分配, 优先将资源分配给收敛效率低的任务. 以上基于贪心启发式的方法, 能够以较低的调度延迟获取
弹性部署结果, 但其普遍不存在理论最优性, 存在优化空间.
MuxFlow [65] 将性能模型融入至图匹配算法的设计中, 从而在多项式时间内选取最优弹性配置. 它利用基于
MLP 的计算图结构法对共享 GPU 的任务性能进行建模. 该调度方法能够在底层对不同任务共享 GPU 时使用的
SM 单元进行弹性调控. 根据建模得到的吞吐率信息, 该方法将吞吐率最优的共享 SM 单元分配问题转化为最大
权重二部图匹配问题, 从而快速求解出最优弹性部署结果. MuxFlow 的问题在于, 仅适配单 GPU 内多任务的资源
还有一些方法将性能建模融入强化学习的模型设计中, 利用强化学习的策略学习能力, 解决弹性调度的挑战.
如 MLFS [66] 同时优化完成效率与收敛效率, 使用可组合算子方法对吞吐率、收敛效率进行建模. 该方法将性能模
型与深度强化学习模型共同训练, 将 GPU 增加和减少设置为动作, 将建模得到的吞吐率、收敛效率作为回报, 在
线上不断根据实时任务进度反馈, 更新策略网络以及性能模型的参数, 从而同时训练出较优的性能模型与调度策
略. 基于强化学习模型的方法面临的问题在于其模型的稳定性较差、收敛缓慢. 在模型收敛前, 强化学习模型通常
会采取探索-利用权衡的策略, 尝试各类弹性资源分配情况以补充经验回放池, 这对线上任务效率具有较大的负面
影响.