86、并行机器上自私任务调度的真实算法

并行机器上自私任务调度的真实算法

在并行机器上调度自私任务时,每个任务的执行者(agent)可能会为了最小化自身的完成时间而虚报任务长度。我们假设执行者不能缩小任务长度,其目标是使任务完成时间最短,若虚报能改善完成时间,执行者就可能选择说谎。

1. 执行模型与随机机制

我们考虑两种不同的执行模型:
- 模型一 :若任务 $T_i$ 出价 $b > l_i$($l_i$ 为任务真实长度),其执行时间仍为 $l_i$。
- 模型二(弱执行模型) :若任务 $T_i$ 出价 $b > l_i$,其执行时间变为 $b$,即任务开始执行 $b$ 个时间单位后才能得到执行结果。

随机机制可看作是确定性机制上的概率分布。例如,给定两个确定性机制 $M_1$ 和 $M_2$,以概率 $p$ 选择机制 $M_1$,以概率 $(1 - p)$ 选择机制 $M_2$。

在集中式设置中,给定随机机制,执行者声明任务长度,系统按概率 $p$ 或 $(1 - p)$ 依据确定性机制 $M_1$ 或 $M_2$ 将任务分配到机器上。在分布式设置中,每个任务出价表示其长度,然后向任务宣布所选的确定性协调机制,任务根据处理器策略选择在哪个处理器上调度,以最小化其预期完成时间。

若一个(随机)机制满足每个任务声明真实长度时的预期完成时间小于或等于声明更大值时的预期完成时间,则称该机制是真实的。形式上,若对于每个 $i$ 和 $b_i \geq l_i$,都有 $E_i(l_i) \leq E_i(b_i)$,其中 $E_i(b_i)$ 是任务 $T_i$ 声明 $b_i$ 时的预期完成时间,则机制 $M$ 是真实的。为评估随机机制的质量,我们使用预期近似比(无政府代价)的概念。

2. 真实集中式机制

我们提出一种用于集中式设置的随机机制,其思路是提出一个新的确定性机制,与按任务长度降序调度的机制结合,得到一个真实的随机机制。

2.1 LSδ 算法
  • SPTδ 算法 :假设有 $n$ 个任务 ${T_1, T_2, \ldots, T_n}$ 要调度到 $m \geq 2$ 个相同的处理器 ${P_1, P_2, \ldots, P_m}$ 上,且 $l_1 \leq l_2 \leq \cdots \leq l_n$。任务按长度递增顺序交替调度到处理器上,当任务 $T_i$ 执行了 $\frac{1}{m}$ 时,任务 $T_{i + 1}$ 开始执行。例如,$T_1$ 在时间 $0$ 开始在 $P_1$ 上调度,$T_2$ 在时间 $\frac{l_1}{m}$ 开始在 $P_2$ 上调度,$T_3$ 在 $\frac{1}{m}$ 的 $T_2$ 执行完时(即时间 $\frac{l_1}{m} + \frac{l_2}{m}$)在 $P_3$(若 $m = 2$ 则在 $P_1$)上调度,以此类推。SPTδ 算法返回的调度称为 SPTδ 调度。

    定理 1 表明,SPTδ 是 $2 - \frac{1}{m}$ 近似的,即 SPTδ 调度的最大完成时间小于或等于 $(2 - \frac{1}{m}) OPT$,其中 $OPT$ 是相同任务的最优调度的最大完成时间。证明过程分为 $n \leq m$ 和 $n > m$ 两种情况,通过计算任务间的空闲时间和总执行时间,得出最大完成时间的上限。

  • LSδ 算法 :设处理器数量为 $m$,以概率 $\frac{m}{m + 1}$ 输出 SPTδ 调度,以概率 $\frac{1}{m + 1}$ 输出 LPT 调度。

    定理 2 指出,LSδ 的预期近似比为 $2 - \frac{1}{m + 1}(\frac{5}{3} + \frac{1}{3m})$。证明过程通过结合 SPTδ 调度和 LPT 调度的近似比,根据概率计算得出。

2.2 真实性

定理 3 证明了 LSδ 是真实的。假设任务 $T_i$ 出价 $b > l_i$,在 LPT 调度中,出价 $b$ 最多使 $T_i$ 的预期完成时间减少 $\frac{1}{m + 1}(T_{i + 1} + \cdots + T_x)$ 个时间单位;而在 SPTδ 调度中,出价 $b$ 会使 $T_i$ 的预期完成时间增加 $\frac{1}{m + 1}(T_{i + 1} + \cdots + T_x)$ 个时间单位。因此,总体上 $T_i$ 出价更高值时预期完成时间不会减少,所以 LSδ 是真实的。

当 $m = 2$ 时,LSδ 的预期近似比为 $\frac{25}{18} < 1.39$。该算法即使在任务长度任意取值时也是真实的,且近似比优于后续介绍的 SSL(p) 算法,但它不是协调机制,因为处理器需要知道其他处理器上调度的任务。

以下是 SPTδ 算法的调度流程 mermaid 图:

graph LR
    A[开始] --> B[T1 在 P1 时间 0 开始调度]
    B --> C[T2 在 P2 时间 l1/m 开始调度]
    C --> D[T3 在 P3 时间 l1/m + l2/m 开始调度]
    D --> E[以此类推]
    E --> F[结束]
3. 真实协调机制
3.1 SSL(p) 协调机制

设 $p \in R$ 且 $0 \leq p \leq 1$。以概率 $p$ 输出 SPT 调度(按任务长度递增顺序贪婪调度),以概率 $(1 - p)$ 输出 SPT - LPT 调度(一个处理器按任务长度递增顺序调度,另一个按递减顺序调度,任务 $T_i$ 根据小于它和大于它的任务总长度选择处理器)。

我们可以将集中式算法 SSL(p) 转换为随机协调机制。具体来说,第一个处理器 $P_1$ 从时间 $0$ 开始按任务长度递增顺序调度任务,第二个处理器 $P_2$ 以概率 $p$ 从时间 $\varepsilon$($\varepsilon$ 是小于任何任务长度的小数)开始按任务长度递增顺序调度任务,以概率 $(1 - p)$ 从时间 $0$ 开始按任务长度递减顺序调度任务。

定理 4 表明,SSL(p) 的预期近似比为 $\frac{4}{3} + \frac{p}{6}$。证明过程通过结合 SPT 调度和 SPT - LPT 调度的近似比,根据概率计算得出。

3.2 真实性

在弱执行模型下,当假设所有任务是常数 $C$ 的幂时,任务只能出价为 $C$ 的幂。若出价不是 $C$ 的幂,则将其舍入到最近的更高的 $C$ 的幂。

定理 5 指出,当 $\frac{2}{3} < p \leq 1$ 且任务是任何常数 $C \geq \frac{4 - 3p}{2 - p}$ 的幂时,算法 SSL(p) 是真实的。证明过程比较任务 $T_i$ 出价 $l_i$ 和 $l_k > l_i$ 时在 SPT 调度和 SPT - LPT 调度中的预期完成时间,得出 SSL(p) 是真实的条件。

若任务长度不受限制,或 $p < \frac{1}{2}$ 且任务是任何整数 $B > 1$ 的幂,SSL(p) 不是真实的。

以下是 SSL(p) 算法调度选择的表格:
| 概率 | 调度类型 | 说明 |
| ---- | ---- | ---- |
| $p$ | SPT 调度 | 按任务长度递增顺序贪婪调度 |
| $1 - p$ | SPT - LPT 调度 | 一个处理器递增,一个处理器递减调度,任务根据长度选择处理器 |

3.3 其他协调机制:负面结果

除了 SSL(p) 协调机制,还有 SL(p) 和 LSL(p) 算法。
- SL(p) 算法 :以概率 $p$ 输出 SPT 调度,以概率 $(1 - p)$ 输出 LPT 调度。
- LSL(p) 算法 :以概率 $p$ 输出 LPT 调度,以概率 $(1 - p)$ 输出 SPT - LPT 调度。

虽然存在能返回 SPT、SPT - LPT 和 LPT 调度的协调机制,但这些算法在某些情况下不具有真实性。具体负面结果如下:
- 定理 8 表明,当 $0 \leq p < 1$ 且任务长度可以任意取值时,算法 SL(p) 不是真实的。
- 定理 9 指出,当 $0 \leq p < \frac{1}{2}$ 时,即使任务是常数 $B (B > 1)$ 的幂,算法 SL(p) 也不是真实的。
- 定理 10 说明,当 $0 \leq p < 1$ 时,即使任务是常数 $B (B > 1)$ 的幂,算法 LSL(p) 同样不是真实的。

这些负面结果是在弱执行模型下得出的,即若任务 $T_i$ 出价 $b > l_i$,其新执行时间为 $b$。当然,这些结果在另一种执行模型(出价 $b > l_i$ 时执行时间仍为 $l_i$)下也成立。

以下是不同算法真实性情况的总结表格:
| 算法 | 任务长度条件 | $p$ 取值范围 | 真实性 |
| ---- | ---- | ---- | ---- |
| SSL(p) | 任务是 $C \geq \frac{4 - 3p}{2 - p}$ 的幂 | $\frac{2}{3} < p \leq 1$ | 是 |
| SSL(p) | 任务长度任意 | $0 \leq p < 1$ | 否 |
| SSL(p) | 任务是 $B (B > 1)$ 的幂 | $0 \leq p < \frac{1}{2}$ | 否 |
| SL(p) | 任务长度任意 | $0 \leq p < 1$ | 否 |
| SL(p) | 任务是 $B (B > 1)$ 的幂 | $0 \leq p < \frac{1}{2}$ | 否 |
| LSL(p) | 任务是 $B (B > 1)$ 的幂 | $0 \leq p < 1$ | 否 |

下面是 SL(p) 和 LSL(p) 算法调度选择的 mermaid 流程图:

graph LR
    A[开始] --> B{选择算法}
    B -->|SL(p)| C{概率选择}
    B -->|LSL(p)| D{概率选择}
    C -->|p| E[SPT 调度]
    C -->|1 - p| F[LPT 调度]
    D -->|p| F[LPT 调度]
    D -->|1 - p| G[SPT - LPT 调度]
    E --> H[结束]
    F --> H
    G --> H

综上所述,在并行机器上调度自私任务时,不同的算法和机制在不同的条件下具有不同的真实性和近似比。LSδ 算法在集中式设置中表现出较好的真实性和近似比,但不是协调机制;SSL(p) 算法在特定条件下是真实的协调机制;而 SL(p) 和 LSL(p) 算法在多种情况下不具有真实性。在实际应用中,需要根据任务长度的特点、处理器数量以及对真实性和近似比的要求,选择合适的调度算法和机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值