1.证明采用贪心调度时 TG≤W/P+ST_G\leq W/P+STG≤W/P+S
贪心调度原则简单来说就是我们使用PPP个处理器来处理某个Work=WWork=WWork=W,Span=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}
TG≤TL=i=1∑S⌈PWi⌉≤i=1∑S(⌊PWi⌋+1)≤⌊PW⌋+S
至此已经证明出使用贪心调度原则时,所需时间TG≤W/P+ST_G\leq W/P+STG≤W/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-1P−1个处理器闲置,故对第iii步来说有KWi≤P−1K_{W_i}\leq P-1KWi≤P−1.
下面考虑哪些步骤可能出现处理器闲置的情形. 在贪心调度原则下,只有当可执行的子任务数量小于PPP时才会出现闲置的情况,仍旧参考前文中的计算图作为示例:由图可知在执行下一步时节点4、5、6均可以被执行,因此当P≥4P\geq4P≥4时会出现“无效准备”过程. 进一步观察可知,当我们只考虑剩余的子任务(子节点)时,计算树变成了计算森林,此时所有已经可以被执行的节点作为森林中的每棵树的根节点(树与树之间可以共用非根结点). 如果下一步的执行有闲置的处理器,则说明所有的根节点均被执行的同时仍有处理器闲置。而所有的根节点都被执行就代表着这个森林中的任何一条(到达树叶节点的)通路的长度均会减111.
小结一下上一段的核心观点:如果某一执行步骤存在“无效准备”则该步骤一定会使“未处理子任务森林”中的任何一条“通路”的长度减111. 注意到在开始执行整个计算任务之前,计算森林就是整颗计算树,因此“森林”中的最长“通路”长为SSS,因此整个计算过程中最多有SSS步会出现闲置处理器,也就是存在“无效准备”过程.
综合前面三段的内容可知KW≤S⋅(P−1)K_W\leq S\cdot(P-1)KW≤S⋅(P−1),因此有:
K=KE+KW≤W+S⋅(P−1)
\begin{aligned}
K&=K_E+K_W\\
&\leq W+S\cdot(P-1)\\
\end{aligned}
K=KE+KW≤W+S⋅(P−1)
TG=KP≤WP+S⋅P−1P T_G=\frac{K}{P}\le \frac{W}{P}+S\cdot\frac{P-1}{P} TG=PK≤PW+S⋅PP−1
至此已经得到了贪婪调度原则下执行时间的更精确的上界.