DAG任务调度在边缘计算与云端的协同优化

问题背景

在边缘-云端混合架构中,任务以有向无环图(DAG)形式表示,节点代表计算任务,边表示任务间依赖关系和数据传输需求。优化目标通常包括:

  • 最小化总完成时间(Makespan)
  • 降低能耗(边缘设备能效敏感)
  • 减少网络开销(边缘与云间数据传输成本)
  • 满足实时性约束
关键挑战
  1. 异构性:边缘设备计算能力弱但延迟低,云端算力强但传输延迟高
  2. 依赖约束:任务执行需满足$v_i \to v_j$的偏序关系
  3. 资源竞争:边缘设备资源受限,需避免过载
  4. 数据传输成本:跨层传输产生额外延迟和能耗
优化模型

定义决策变量: $$x_{ik} = \begin{cases} 1 & \text{任务$v_i$在设备$k$执行} \ 0 & \text{否则} \end{cases}$$

目标函数(多目标优化): $$\min \left( \alpha \cdot T_{\text{total}} + \beta \cdot E_{\text{total}} + \gamma \cdot C_{\text{data}} \right)$$ 其中:

  • $T_{\text{total}}$为总完成时间
  • $E_{\text{total}}$为系统总能耗
  • $C_{\text{data}}$为数据传输成本
  • $\alpha, \beta, \gamma$为权重系数

约束条件: $$\sum_{k \in \mathcal{K}} x_{ik} = 1, \quad \forall v_i \in \mathcal{V}$$ $$t_j^{\text{start}} \geq t_i^{\text{end}} + d_{ij} \cdot \delta_{ij}, \quad \forall (v_i, v_j) \in \mathcal{E}$$ 其中$d_{ij}$为数据传输延迟,$\delta_{ij}$表示$v_i$与$v_j$是否跨层部署。

协同优化策略
  1. 任务划分策略

    • 计算密集型任务:优先调度到云端 $$k^* = \arg\max_{k \in \mathcal{K}_{\text{cloud}}} \frac{f_k}{w_i}$$ 其中$f_k$为设备算力,$w_i$为任务计算量
    • 延迟敏感型任务:固定分配到边缘 $$x_{ik} = 1 \quad \text{if} \quad \tau_i < \tau_{\text{threshold}}, k \in \mathcal{K}_{\text{edge}}$$
  2. 动态调度算法

def co_schedule(dag, edge_devices, cloud):
    # 初始化
    ready_queue = topological_sort(dag)
    schedule = {}
    
    while ready_queue:
        task = select_high_priority(ready_queue)  # 基于关键路径优先级
        
        # 评估候选位置
        candidates = []
        for device in edge_devices + [cloud]:
            est = calc_earliest_start(task, device, schedule)
            eft = est + exec_time(task, device)
            cost = calc_cost(task, device, schedule)
            candidates.append((device, eft, cost))
        
        # 多目标决策
        best_device = pareto_front(candidates)  # 帕累托最优解选择
        
        # 分配任务
        allocate(task, best_device)
        update_dependencies(task, dag, schedule)
        ready_queue.remove(task)
    
    return schedule

  1. 数据传输优化
    • 数据预取:提前将依赖数据传输到目标层 $$\min \sum_{(v_i,v_j) \in \mathcal{E}} d_{ij} \cdot \mathbb{I}(loc(v_i) \neq loc(v_j))$$
    • 计算迁移:当$t_{\text{compute}} < t_{\text{transmit}}$时触发 $$\frac{w_i}{f_{\text{edge}}} > \frac{data_i}{B_{\text{edge-cloud}}} \implies \text{迁移到云端}$$
性能评估指标
  1. 加速比:$S = \frac{T_{\text{edge-only}}}{T_{\text{co-schedule}}}$
  2. 能效比:$\eta = \frac{\text{完成任务量}}{\text{总能耗}}$
  3. 资源利用率:$U_k = \frac{\sum t_{\text{exec},k}}{\text{总时间}}$
技术演进方向
  1. 强化学习驱动:Q-learning优化调度决策
  2. 联邦学习协同:跨设备联合训练调度模型
  3. 数字孪生仿真:构建虚拟环境预演调度方案

该优化框架需结合实际场景参数(任务特征、网络条件、设备能力)进行调优,边缘-云端的动态资源协同可提升系统效率30%-50%[^1]。

[^1]: 实验数据参考:IEEE Transactions on Parallel and Distributed Systems, 2023.

更多推荐