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

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


                  4.4   作业放置
                    集群中   GPU  的组织的拓扑结构可以用树状结构来表示               [24] , 其中  GPU  通过不同类型的链接以不同的带宽连
                 接. 树的叶子节点表示       GPU  设备, 每个内部节点表示特定的链路类型. 图            3  是一个具有   4  层树状结构的服务器的
                 示例. 该服务器有两个通过        QPI 连接的  CPU  插槽; 每个  CPU  通过  PCIe 连接到  4  个  GPU; 同一机架中的多个此类
                 服务器通过机架顶部的交换机           (ToR) 连接.

                 第5层                                      ToR 交换机

                 第4层                  服务器节点                                     服务器节点

                 第3层          CPU                  CPU                  CPU                  CPU

                 第2层    PCIe       PCIe      PCIe       PCIe       PCIe      PCIe       PCIe       PCIe
                       交换机        交换机        交换机       交换机        交换机        交换机       交换机        交换机

                 第1层  GPU  GPU   GPU  GPU  GPU  GPU  GPU   GPU  GPU  GPU   GPU  GPU  GPU  GPU   GPU  GPU

                                      服务器节点 1                                   服务器节点 2
                                           图 3 集群中    GPU  设备的多层树状结构组织

                    在这样树状组织的拓扑结构下, 由于多层树状结构中每一层之间的链路带宽不同, 每个作业使用的                                GPU  设备
                 之间的拓扑关系十分重要. 例如, 使用          4  块  GPU  训练  ResNet50  模型时, 如果  4  块  GPU  分布在  4  个不同的服务器
                 节点上, 其吞吐率不足使用同一个服务器节点上的                 4  块  GPU  时的  1/2 [11] . 如第  3.2  节提到的, EdgeFlow  为一个作
                 业最多分配一个边缘服务器, 因此本文只考虑在云计算集群中使用多个                       GPU  时的作业放置问题.
                    为了让云计算集群中运行的作业能够充分利用                 GPU  之间的最大带宽进行高效通信, EdgeFlow        会在集群空闲
                 的  GPU  中找到空闲   GPU  数量最接近所需     GPU  数量的子树. 同时, EdgeFlow  将每个作业使用的       GPU  数量限制为
                 2  的幂. 在这样的限制条件下, 如果结合作业迁移技术              (即在作业运行过程中暂停作业, 将其迁移至另外的一组数
                 量相同的   GPU  上继续执行), 可以保证: 如果集群中如果空闲            GPU  数量大于作业所需      GPU  数量, 则一定存在一种
                 作业分配方法, 使得每个作业都使用最大的带宽进行通信                  [10] .

                  5   实验分析

                    为了验证    EdgeFlow  方法的有效性, 我们进行了大量的模拟实验: 首先, 将我们提出的方法与其他基线方法在
                 截止期满足率指标进行了实验对比; 然后, 对             EdgeFlow  方法能够提升截止期满足率的因素进行了分析; 最后, 对
                 作业提交间隔、云计算集群大小和可使用的边缘服务器数量等因素对                        EdgeFlow  方法效果的影响进行了分析.
                  5.1   实验设定
                    为了验证    EdgeFlow  的集群调度效果, 本文首先从阿里巴巴公开的向其               GPU  生产集群提交的作业历史        [14]  中
                 选取了   100  个作业提交记录    (以下称为“踪迹     1”). 原始提交记录中的每个作业都包含提交时间、使用的                 GPU  数量
                 和持续时间的信息, 不包含训练的模型、批大小和截止期信息. 由于                       EdgeFlow  的调度方法中每个作业使用的
                 GPU  数量都是灵活变化的, 因此       EdgeFlow  不会使用原始提交记录中作业使用          GPU  数量这一信息. 对于每个作业,
                 我们从表   1  中随机选择一个具有代表性的设置, 作为该作业训练的模型和训练批大小. 为了验证                         EdgeFlow  在不同
                 生产集群中都具有提高作业截止期满足率的效果, 除了阿里巴巴公开的作业提交历史以外, 我们还选择了微软
                 Philly  集群的公开提交历史    [25]  对其效果进行验证    (以下称为“踪迹     2”). 我们参考已有工作的方法       [13] , 根据作业的
                 原始持续时间为每个作业生成其截止期. 值得注意的是, 即使作业的截止期小于其原本的持续时间, 如果使用更多
                 数量的   GPU, 作业也可能在截止期之前完成.
                    在实际集群中对      EdgeFlow  以及其基线方法进行实验验证的成本较高. 例如, 在            AWS  平台使用   8 台  p4d.24xlarge
   103   104   105   106   107   108   109   110   111   112   113