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

本文深入探讨了贪心调度算法在并行计算中的应用,详细分析了贪心调度的原理,通过实例说明如何减少处理器空闲时间,提高计算效率,并推导出执行时间的上界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.证明采用贪心调度时 TG≤W/P+ST_G\leq W/P+STGW/P+S

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

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

​      显然贪心调度所需时间TG≤T_G\leqTG“层序调度”所需时间TLT_LTL,下面我们计算TLT_LTL的上确界.对于任何一个Work=W,Span=SWork=W,Span=SWork=W,Span=S的计算任务,可设其第iii层的Work=WiWork=W_iWork=Wi,则每一层的时间Ti=⌈Wi/P⌉T_i= \lceil W_i/P\rceilTi=Wi/P,进而有:
TG≤TL=∑i=1S⌈WiP⌉≤∑i=1S(⌊WiP⌋+1)≤⌊WP⌋+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
​      至此已经证明出使用贪心调度原则时,所需时间TG≤W/P+ST_G\leq W/P+STGW/P+S.

2.求解TGT_GTG更为精确的上界

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

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

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

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

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

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

TG=KP≤WP+S⋅P−1P 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、付费专栏及课程。

余额充值