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

谷典典 等: 云边协同的深度学习作业调度方法                                                          5485


                 往往会设定一个累积训练的批数量的上限值               iterations i . 即使作业  i 具有损失值不超过某个指定的数值等其他终止
                 条件, 作业  i 的累积训练的批数量也不会超过           iterations i .
                    综上, 若共有    n  个深度学习训练作业被提交至调度器, 则深度学习训练作业                 i 需要满足的条件为:

                                          {
                                            ∀1 ⩽ j ⩽ u i , min(a i ) ⩽ a j,i ⩽ max(a i ), if s j,i = 0
                                            ∀1 ⩽ j ⩽ u i , a j,i = 1,   if s j,i = 1                  (1)

                                         ∑
                                           u i            cloud     edge
                                             t j,i ×((1− s j,i )×tpt  + s j,i ×tpt  ) ⩾ iterations i  (2)
                                           j=1            i,a j,i   i
                 其中, u i 表示作业  i 其生命周期中除了“作业       i 完成”以外发生的所有事件的个数,          tpt cloud  表示作业  i 在使用  a j, 个云
                                                                                                    i
                                                                                 i,a j,i
                 计算集群中的     GPU  时的吞吐率    (单位时间可以执行的批数量),         tpt edge  表示作业  i 在单个边缘服务器上执行时的吞
                                                                    i
                 吐率. 公式  (1) 为作业  i 使用的资源数量限制, 公式       (2) 为作业  i 在其生命周期内累积完成的批数量满足终止条件.
                 在满足公式    (1) 的条件下, 作业使用的      GPU  数量越多, 吞吐率越大. 因此, 用       x 和  y 表示作业  a i 可以使用的  GPU
                 数量, 如果  min(a i )≤x, y≤max(a i ) 且  x<y, 则  tpt  cloud  < tpt cloud ; 由于边缘服务器的性能往往不如云计算集群中的  GPU
                                                    i,x    i,y
                 服务器, 因此有:   tpt edge  < tpt  cloud .
                                i     i,1
                    在满足公式     (1) 和公式  (2) 的条件下, 若作业   i 满足:

                                                                                                      (3)
                                                         t u i ,i ⩽ ddl i
                 则作业   i 在其截止期之前完成. 其中,      t u i ,i  表示作业  i 的最后一个事件  (u i , 即作业  i 完成) 发生的时间.
                  3.3   问题描述
                    综合以上设定, 本文希望解决的优化问题为:

                                                                  }
                                                          {
                                                          i

                                                          t u i ,i ⩽ ddl i
                                                      max                                             (4)
                                                              n

                                              
                                               min(a i ) ⩽ a j,i ⩽ max(a i ),  if s j,i = 0
                                              
                                              
                                              
                                               a j,i = 1,         if s j,i = 1                       (5)
                                              
                                              
                                              
                                                s.t. ∀1 ⩽ i ⩽ n, 1 ⩽ j ⩽ u i

                                                 ∑ u i
                                 ∀1 ⩽ i ⩽ n, 1 ⩽ j ⩽ u i ,  t j,i ×((1− s j,i )×tpt cloud  + s j,i ×tpt edge  ) ⩾ iterations i  (6)
                                                    j=1           i,a j,i   i
                 其中, 公式  (4) 表示优化目标为最大化在截止期之前完成的作业数量, 公式                   (5) 和公式  (6) 表示每个作业都需满足
                 公式  (1) 和公式  (2) 的条件.
                  4   云边协同的深度学习作业调度方法              EdgeFlow
                  4.1   作业分析器
                    为了准确判断作业采用不同资源分配方案时能否在截止期之前完成, EdgeFlow                       执行每一个作业之前需要先
                 通过作业分析器短暂地预执行作业. 深度学习作业往往不断重复执行大量的迭代过程, 在其稳定训练的时候, 每一
                 次迭代所需时间几乎一致, 整体作业的吞吐率也较为稳定. 因此, 对于每一种资源配置, 执行少量的几个训练批就
                 能得到在相应配置下稳定的训练吞吐率. 根据深度学习训练作业的这一特点, EdgeFlow                       作业分析器使用云计算集
                 群的  GPU  资源, 对每一个作业在使用不同数量的云计算集群资源时的吞吐率进行分析, 分析得到的吞吐率数据将
                 被  EdgeFlow  的资源分配模块用来模拟作业在不同配置下的执行进度. 预执行作业会带来不可避免的时间开销,
                 图  2  展示了  64  个  NVIDIA A100 GPU  上通过作业分析器预执行作业所需时间的平均值, 模型训练的配置如表                   1
                 所示. 和大多数深度学习训练作业所需的数小时甚至数天的执行时间相比, 这样的时间开销对作业整体执行时间
                 的影响较小    [12,13] .
                    可用的边缘服务器资源数量是动态变化的, 在边缘服务器原本需要服务的作业负载量较高时, 可能没有深度
                 学习训练作业可用的空闲边缘服务器. 因此, EdgeFlow            不对深度学习训练作业在边缘服务器上的吞吐率进行分析.
                 如第  3.2  节提到的, 由于边缘服务器之间的通信带宽较小, 导致使用边缘服务器进行分布式训练的通信开销过大,
   99   100   101   102   103   104   105   106   107   108   109