Page 101 - 《软件学报》2025年第12期
P. 101

5482                                                      软件学报  2025  年第  36  卷第  12  期


                 基站、服务器、路由器等) 的延迟得到了显著降低. 而随着用户设备算力的不断提升, 仅使用边缘设备完成计算成
                 为可能. 因此在这样的背景下, 将计算资源从云计算集群中的服务器下发到靠近用户的边缘设备成为了实现大规
                 模实时计算的必然趋势. 在这种新的计算模式下, 数据和服务信息不必经过主干网络, 使得服务的实时性方面和数
                 据的隐私安全性都得到了提升.
                    与云计算集群中的服务器相比, 边缘服务器通常价格低廉, 用于处理非计算密集型的负载. 因此和云计算集群
                 中的服务器相比, 边缘服务器通常不会使用最新型的服务器, 具有较少的算力. 另外, 边缘服务器和云计算集群中
                 的服务器之间的网络带宽通常较小, 边缘服务器和云计算集群之间数据传输通常具有较大的延迟. 和云计算服务
                 器相比, 边缘服务器在地理上的分布更为分散              [5] , 边缘服务器之间的通信也同样具有较大的延迟.
                    由于边缘服务器的作业负载主要由用户触发产生, 而用户对很多服务的访问频率通常有较明显的高峰期和低
                 谷期, 因此, 边缘服务器的利用率存在显著的潮汐现象. 例如, 有研究表明, 午夜时边缘片上系统                           (system-on-chip,
                                                                                         [5]
                 SoC) 的  CPU  使用率约为高峰时段的      1/50, 且在大约一半的时间里边缘设备的利用率低于              50% ; 阿里巴巴的边缘
                                [4]
                 服务供应平台     ENS 的资源利用率较低, 且资源使用量具有波动性. 由于边缘服务器上访问量低谷期的时间较长,
                 边缘服务器资源在较长的时间里都被闲置, 无法得到充分利用, 造成计算资源浪费.
                    目前已有工作利用空闲的边缘服务器执行其他作业负载, Xu                    等人  [5] 利用边缘  SoC  设备的空闲时段进行分布
                 式机器学习训练. 然而该方法只适用于部署单个深度学习训练作业, 若有多个深度学习训练作业可被部署到边缘
                 设备, 该方法无法对在何时部署何作业进行判断; 且该方法只适用于特定的                       SoC  设备, 无法扩展至使用      GPU  等硬

                 件训练深度学习模型的情况.
                  1.2   深度学习作业调度

                    随着深度学习的繁荣发展, 其在键盘输入法和聊天软件中常见的语音文本转换                          [7] 、能够提高通行效率的自动
                 驾驶  [8] 等多个领域都有广泛的应用. 如今, 深度学习模型的训练变得越来越耗时且资源密集, 专用的                          GPU  服务器
                 被集成到   GPU  集群中, 以支持这些计算密集型的作业负载. 在这种情况下, 为了降低运营成本并提高资源利用率,
                 为  GPU  集群中的深度学习训练作业设计一个高效的调度器变得至关重要.
                    然而, 传统的针对大数据或高性能计算             (high performance computing, HPC) 作业负载设计的方法没有考虑深
                 度学习训练作业的特有特征, 不能充分支持深度学习作业负载, 以充分利用                       GPU  资源. 因此, 近期许多研究提出了
                 专门为   GPU  集群中的深度学习负载量身定制的调度器.
                    面向深度学习作业的        GPU  调度器具有多种不同的调度目标, 已有研究分别针对不同的调度目标进行了面向
                 深度学习作业的调度算法设计. 针对优化作业完成时间的调度目标, Gu                     等人  [9] 通过高效调度并且合适地放置深度
                 学习作业, 设计了     Tiresias 调度算法, 减少深度学习训练作业的作业完成时间             (job completion time, JCT). Hwang  等
                 人  [10] 利用弹性训练, 在作业执行的不同时刻根据作业本身的特点以及集群资源的紧张程度动态改变其使用的
                 GPU  数量, 进一步对集群中所有作业的平均完成时间进行优化. 针对提高资源利用率的调度目标, Xiao                           等人  [11] 针
                 对深度学习作业的特点, 让作业具有迁移能力以减小其对                   GPU  的亲和性, 以及模型之间的相互作用对作业的影
                 响, 设计了为面向深度学习作业的          GPU  集群调度器    Gandiva, 从而大幅度提升集群的利用率. 针对提高公平性的调
                 度目标, Mahajan  等人  [6] 提出了完成时间公平性     (finish-time-fairness) 的  GPU  资源调度指标的定义, 并根据这一评
                 价指标设计了调度算法        Themis.
                    除了这些常见的指标以外, 深度学习训练的开发者同样对作业完成时间有各自的预期, 例如, 一些服务的开发
                 商希望推荐模型的训练作业可以在产品上线之前完成                   [12] , 我们称这样的作业预期完成时间为截止期. 针对开发者
                 的这一需求, Gao   等人  [12]  和  Gu  等人  [13]  都分别根据开发者对作业完成时间的不同预期水平, 将提交到云计算集群
                 的不同深度学习训练作业分类, 并设计算法尽量使得所提交作业的截止期之前完成.
                    然而, 在云边协同执行深度学习训练作业的场景下, 一方面, 边缘服务器的性能和云计算集群中服务器的算力
                 差距较大; 另一方面, 边-边、云-边、云-云设备之间网络性能同样有较大的差异. 已有的研究工作忽视边缘服务器
                 和云计算集群的硬件特征, 因此如果直接应用到云边协同场景下, 不能得到较好的调度效果. 为了弥补现有研究的
   96   97   98   99   100   101   102   103   104   105   106