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

