LI: DO 10 I==1,1024 LZ: SUM(I)==0 L3: DO 20 J==1,I L4:20 SUM(I)=SUM(l)+I LS:10 CONTINUE
假设第 2 行和第 4 行都占用两个机器周期时间,包括所有处理器和内存访问活动。忽略软件循环控制语句(第1、3、5行)的开销和所有其他的系统开销与资源冲突。
a.在一台计算机上程序的总执行时间(以机器周期时间计)是多少?
b.把 I 循环按如下方法分给 32 台计算机:计算机 I 执行前 32 个循环( I=1~32),处理器 2 执行接下来的 32 个循环,以此类推。执行时间是多少?与 a 选项相比,加速因子是多少?(注意,J 循环的计算工作量在各台计算机上是不均衡的。)
c.说明如何修改并行化以便使所有计算工作量在 32 台计算机上均衡地并行执行。平衡负载是指两个循环分配给每台计算机的加法数量相等。
d.在 32 台计算机上并行执行的最少执行时间是多少?与单独一台计算机相比,加速因子是多少?