贪婪调度原则分析 -TG上界分析

1.证明采用贪心调度时 T G ≤ W / P + S T_G\leq W/P+S TGW/P+S

​      贪心调度原则简单来说就是我们使用 P P P个处理器来处理某个 W o r k = W Work=W Work=W S p a n = S Span=S Span=S的计算任务时,某个处理器处于空闲状态当且仅当此时没有可被执行的子任务.
在这里插入图片描述

​      上面的计算过程图对应的一个 W o r k = 10 , S p a n = 4 Work=10,Span=4 Work=10,Span=4的并行计算过程,有通路连接的节点的之间有执行顺序要求. 当某个子任务也即是某个节点,被执行完毕之后,将其点标记为蓝色,而未执行的子任务标记为红色. 在此处我们假设我们拥有 P = 2 P=2 P=2个处理器. 可见当执行第0层的所有任务时会出现处理器空闲的情况(第0层只有1这个节点),而执行第二层的2、3节点时所有的处理器都被使用按照. 贪心调度原则,在下一步执行时应当同时执行4、5两个节点,因为此时处理器数目小于可执行的节点数(4、5、6均可被执行). 这时我们将贪心调度“程度”降低一些,改为某一层执行完毕之前不能执行下一层的任何节点,换句话说就是按照层序遍历这颗计算树,则下一步只能执行4节点.

​      显然贪心调度所需时间 T G ≤ T_G\leq TG“层序调度”所需时间 T L T_L TL,下面我们计算 T L T_L TL的上确界.对于任何一个 W o r k = W , S p a n = S Work=W,Span=S Work=W,Span=S的计算任务,可设其第 i i i层的 W o r k = W i Work=W_i Work=Wi,则每一层的时间 T i = ⌈ W i / P ⌉ T_i= \lceil W_i/P\rceil Ti=Wi/P,进而有:
T G ≤ T L = ∑ i = 1 S ⌈ W i P ⌉ ≤ ∑ i = 1 S ( ⌊ W i P ⌋ + 1 ) ≤ ⌊ W P ⌋ + S \begin{aligned} T_G\leq T_L&=\sum_{i=1}^S\lceil \frac{W_i}{P}\rceil\\ &\leq\sum_{i=1}^S(\lfloor \frac{W_i}{P}\rfloor+1)\\ &\leq\lfloor \frac{W}{P}\rfloor+S \end{aligned} TGTL=i=1SPWii=1S(⌊PWi+1)PW+S
​      至此已经证明出使用贪心调度原则时,所需时间 T G ≤ W / P + S T_G\leq W/P+S TGW/P+S.

2.求解 T G T_G TG更为精确的上界

​      下面是贪心调度更为精确的上界计算与分析:

​       假设每一步执行时所有的 P P P个处理器都需要进行“准备执行”的过程(无论准备之后是否真的有任务需要执行),执行完整个过程之后,总共有 K K K次“准备执行”过程,则易知 T = K / P T=K/P T=K/P. 如果我们能够确定 K K K的上界,就可以很轻松的得到 T G T_G TG的上界。将“准备执行”过程分为两类,第一类为“有效准备”,即准备好的处理器确实立刻执行了某个子任务,设该类过程共计 K E K_E KE个;第二类为“无效准备”,即准备好的处理器在这一步中处于闲置状态,设该类过程共计 K W K_W KW个.

​       首先不论使用什么调度方式,每一个子任务都需要被执行,因此执行每个子任务的处理器都经过了“有效准备”. 又因为每个经过了“有效准备”的处理器都执行了一个子任务,因此可认为 K E = W K_E=W KE=W. 其次每一步执行的时候最少需要执行一个子任务,因此每步最多有 P − 1 P-1 P1个处理器闲置,故对第 i i i步来说有 K W i ≤ P − 1 K_{W_i}\leq P-1 KWiP1.

​      下面考虑哪些步骤可能出现处理器闲置的情形. 在贪心调度原则下,只有当可执行的子任务数量小于 P P P时才会出现闲置的情况,仍旧参考前文中的计算图作为示例:由图可知在执行下一步时节点4、5、6均可以被执行,因此当 P ≥ 4 P\geq4 P4时会出现“无效准备”过程. 进一步观察可知,当我们只考虑剩余的子任务(子节点)时,计算树变成了计算森林,此时所有已经可以被执行的节点作为森林中的每棵树的根节点(树与树之间可以共用非根结点). 如果下一步的执行有闲置的处理器,则说明所有的根节点均被执行的同时仍有处理器闲置。而所有的根节点都被执行就代表着这个森林中的任何一条(到达树叶节点的)通路的长度均会减 1 1 1.

​      小结一下上一段的核心观点:如果某一执行步骤存在“无效准备”则该步骤一定会使“未处理子任务森林”中的任何一条“通路”的长度减 1 1 1. 注意到在开始执行整个计算任务之前,计算森林就是整颗计算树,因此“森林”中的最长“通路”长为 S S S,因此整个计算过程中最多有 S S S步会出现闲置处理器,也就是存在“无效准备”过程.

​      综合前面三段的内容可知 K W ≤ S ⋅ ( P − 1 ) K_W\leq S\cdot(P-1) KWS(P1),因此有:
K = K E + K W ≤ W + S ⋅ ( P − 1 ) \begin{aligned} K&=K_E+K_W\\ &\leq W+S\cdot(P-1)\\ \end{aligned} K=KE+KWW+S(P1)

T G = K P ≤ W P + S ⋅ P − 1 P T_G=\frac{K}{P}\le \frac{W}{P}+S\cdot\frac{P-1}{P} TG=PKPW+SPP1

      至此已经得到了贪婪调度原则下执行时间的更精确的上界.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值