稳态调度:从理论到高效算法
1. 分配约束
在考虑调度问题时,首先需要关注分配约束。对于每种资源 (r)(处理器或链路),会关联一个权重 (w_r = \sum_{o \in O} \frac{\delta_o}{s_r} U_r + 1)。当参与分配的资源的加权和大于或等于 1 时,分配 (A_a) 的约束条件得到满足。下面针对不同的应用场景进行具体分析:
- 广播 :分配表现为平台图中以 (P_{source}) 为根的生成树。分配 (A_a) 的约束要求该树的权重需大于 1。为检查所有约束条件,可在多项式时间内计算出最小权重的生成树 (A_{min})。若其权重大于或等于 1,则所有生成树都满足此约束;反之,若权重小于 1,则该最小权重树对应的约束条件被违反。
- 多播 :多播操作的分配与广播操作类似,是以 (P_{source}) 为根的树,但仅覆盖参与多播操作的节点。在对平台图进行上述加权后,可通过搜索最小权重的多播生成树来检查所有约束条件。然而,在图中找到覆盖给定节点子集的最小树是一个著名的 NP 完全问题,即 Steiner 问题。这表明稳态多播问题具有一定难度。
- 任务包应用 :此问题的分配比简单的树结构更为复杂,但仍可在多项式时间内找到最小权重的分配。每个分配包含一个计算处理器 (P_{comp})、一条从源节点到计算处理器的路径 (P_{source} \to P_{comp}) 以及一条返回路径 (P_{comp} \to P_{source})。这两条路径的选择相互独立,且可能存在共同的边。若一条边被两条路径同时使用,则其权重会被计算两次。计算最小权重分配的简
稳态调度:高效算法的理论与实践
超级会员免费看
订阅专栏 解锁全文
961

被折叠的 条评论
为什么被折叠?



