Page 105 - 《软件学报》2025年第12期
P. 105
5486 软件学报 2025 年第 36 卷第 12 期
因此本文用 tpt edge = λ i ×tpt cloud 来预估作业 i 使用一个边缘服务器时的吞吐率, 其中 tpt cloud 为作业 i 使用一个云计
i i,1 i,1
算集群中的 GPU 时的吞吐率, λ i 是一个参数, λ i ∈(0, 1), 其取值取决于边缘服务器和云计算集群中 GPU 的性能以
及具体的深度学习训练作业的特征.
ResNet18 Inception V3 Deep Speech 2
VGG16 GPT-2
500
预执行作业开销 (s) 300
400
200
100
0
图 2 作业分析器预执行作业的时间开销
表 1 实验评估中用到的深度学习模型及其训练设定
训练作业类型 数据集 深度学习模型 批大小
[17]
ResNet18 64, 128, 256
计算机视觉 ImageNet [16] VGG16 [18] 64, 128, 256
[19]
Inception V3 32, 64, 128
自然语言处理 aclImdb V1 [20] GPT-2 [21] 16, 32, 64
语音识别 LibriSpeech [22] Deep Speech 2 [23] 16, 32
为了尽量准确地分析作业执行进度, EdgeFlow 会在每个作业在云计算集群或边缘服务器上实际执行的过程
中, 对该配置下的吞吐率进行记录, 修正预执行或预估得到的吞吐率数据, 同时也修正不同作业的 λ i 参数. 根据我
们在 NVIDIA A100 GPU 和 NVIDIA V100 GPU 上执行作业分析的测试, 在作业执行期间的分析记录的开销约为
每次 0.01 s, 与深度学习训练作业的执行时间 (数小时甚至数天) 相比, 这样的时间开销可忽略不计.
4.2 云边协同的深度学习作业资源分配步骤
对于调度器来说, 未来的深度学习训练作业的时间、作业特性以及不同时刻可用的边缘服务器资源数量是未
知的, 因此调度器不能基于所有信息直接做离线约束求解. 因此, EdgeFlow 的资源分配模块使用在线的资源分配
算法, 在每个事件 (新作业到来、作业结束、可用的边缘服务器数量改变) 发生时对尚未结束的所有作业重新分
配资源. 在每一次需要重新分配资源的时候, EdgeFlow 的调度分为 3 个步骤.
首先, EdgeFlow 考虑云计算集群中的资源, 参考已有工作的方法, 计算每个作业的最小满足份额, 并为每个作
业根据最小满足份额进行资源分配 [13] . 这样的方法可以使得能在截止期之前完成的作业使用最少量的计算资源,
从而把资源分配给尽可能多的作业, 让尽可能多的作业在截止期之前完成. 如果有的作业因为集群资源紧张或期
截止期过于紧张而不能在截止期之前完成, EdgeFlow 尽量为其分配最多的可用计算资源, 使其尽早完成并释放
GPU 资源, 从而为未来提交的作业预留云计算集群中的 GPU.
随后, 如果此刻有可用的空闲边缘服务器, EdgeFlow 会选取部分作业, 将其迁移并分载至边缘服务器执行. 这
一过程中涉及云计算资源和边缘服务器资源的协同调度, 本文将在第 4.3 节介绍 EdgeFlow 所使用的云边协同的
深度学习作业分载算法.

