Page 175 - 《软件学报》2025年第4期
P. 175

杨紫超 等: 基于性能建模的深度学习训练任务调度综述                                                      1581


                 定影响.
                    这些对任务排序进行优化的调度方法大多采用实测剖析的方法进行性能建模. 这是由于优化任务排序不涉及
                 对任务的弹性资源分配、放置拓扑等进行优化. 这使得任务可使用的资源配置种类整体不多, 实测开销较低. 因此
                 这些方法对于更为准确、实现便捷的实测剖析法具有倾向性.

                 3.3   优化异构分配
                    表  7  展示了利用性能建模来优化异构分配的调度方法. 在面对异构亲和多样化的任务时, 通过对任务异构加
                 速比的感知, 可以避免在亲和性较差的任务与异构资源之间进行匹配尝试, 从而缩减调度决策空间, 有效解决异构
                 挑战. 基于这一思路, 这类方法设计了统一量化算法、线性规划算法、迭代交错算法, 旨在在具有不同异构资源亲
                 和度的任务、不同性能的异构资源之间进行更优化的匹配, 从而提升调度效果. 具体而言, 有如下方法.

                                           表 7 基于性能建模优化异构分配的调度方法

                                                性能建模需求                     实验设置
                                                              性能建模
                   成果     调度目标    性能建模方法      执行   吞吐   收敛    利用方式                            效果
                                              时间    率   效率            集群规模     任务规模
                 法对任务吞吐率性能进行建模, 避免大量实测开销. Gavel 是面向异构
                          完成时间       实测                       设计统一                      提升截止时间满足率
                      [29]
                  Hydra                        √    -    -               45      400          [30]
                          截止时间       剖析                       量化算法                      (比Allox  提升86%)
                                     实测                       设计迭代                         降低平均JCT
                     [63]
                  Hare    完成效率                 -    √    -              256     2 000+
                                     剖析                       交错算法                      (比Tiresias [27] 降低80%)
                                                              设计线性                        提升FTF公平性
                      [21]
                  Gavel   公平性      任务元信息       -    √    -               36     5 000+
                                                              规划算法                     (比Themis [60] 提升2.8倍)

                    一些方法为应对异构挑战, 通过利用性能建模设计统一量化的算法, 抹除异构差异性, 从而降低调度难度. 例
                 如  Hydra [29] , 该方法针对非弹性场景, 且其面向的异构       GPU  种类较少   (≤3), 因此采取与   Allox [30] 、Chronus  [20] 类似
                 的实测剖析法对性能进行建模. Hydra 面向同时优化截止时间满足与完成时间的目标, 利用建模得到的执行时间
                 设计了成本公式, 可在异构        GPU  上统一量化地表示截止时间的违约量以及任务完成效率, 减弱了异构                       GPU  所带
                 来的差异性. 随后, Hydra 设计了多轮最小成本搜索的启发式方法, 在全局内搜索具有最小成本的调度结果. 尽管
                 统一量化方法减弱了异构性带来的挑战, 但目前仅能针对单                   GPU  训练, 无法对分布式任务使用的异构通信资源进
                 行统一量化, 适用范围较小.
                    部分方法通过设计在异构          GPU  上的迭代交错执行算法, 在任务部署后的训练迭代层面设计调度, 减弱资源匹
                 配阶段由异构性所带来的调度难度. 如            Hare [63] , 该工作发现, 分布式任务的不同工作节点在异构          GPU  上的吞吐率
                 存在差异, 执行较快的节点需要等待另外的节点计算, 产生低利用率的空档. Hare 针对这一空档, 利用建模得到在
                 异构  GPU  上的任务吞吐率, 设计打包算法以最大化任务组合下的空档利用可能性, 并设法在训练迭代层面设计交
                 错执行策略, 从而进行时分复用, 有效利用空档. 相比于异构性能无感的方法                      (shortest-remaing-time-first, SRTF), 大
                 幅降低任务完成时间. 以上这类迭代交错的方法的缺陷在于, 其仅支持通过时分复用提升效率. 然而, 存在大量轻
                 型深度学习训练任务, 可利用空间复用提升资源利用率. 这类方法需考虑如何拓展以支持该场景.
                    还有方法通过利用性能建模设计线性规划算法解决异构调度问题, 如                       Gavel [21] . 该方法面向  GPU  可空间共享
                 的调度场景. 由于不同任务共享          GPU  运行的干扰差异性较大, 任务组合数量众多, 因此使用基于任务元信息的方
                                                                       GPU  的公平性调度方法. 针对异构挑战, 该
                 方法设计了基于吞吐率矩阵的数据结构, 将待调度任务及其组合在异构                         GPU  上的吞吐率统一涵盖表示. 随后,
                 Gavel 利用该矩阵作为输入, 设计了通用性强的线性规划建模方法, 通过更换目标函数可对各个类型的公平性指标
                 进行优化, 包括    max-min  公平性、makespan  最小化, 以及   FTF  公平性. 以上这种面向异构场景的线性规划方法求
                 解复杂度较高, 当待调度任务、异构           GPU  较多时求解缓慢.
                    以上针对异构分配优化的方法中, 当异构              GPU  种类较少时, 实测剖析的开销是可接受的. 因此, 如             Hydra [29] 、
                 Hare  [63] 等方法仍采用了准确、方便的实测剖析法进行性能建模. 而涉及对大量异构任务组合放置的                         Gavel [21] 则采
   170   171   172   173   174   175   176   177   178   179   180