题目内容
在研究并行计算的基本算法时,有以下简单模型问题:用计算机求n个不同的数v1,v2,…,vn的和=v1+v2+v3+…+vn.计算开始前,n个数存贮在n台由网络连接的计算机中,每台机器存一个数.计算开始后,在一个单位时间内,每台机器至多到一台其他机器中读数据,并与自己原有数据相加得到新的数据,各台机器可同时完成上述工作.为了用尽可能少的单位时间,使各台机器都得到这n个数的和,需要设计一种读和加的方法.比如n=2时,一个单位时间即可完成计算,方法可用下表表示:
机 器 号 |
初 始 时 |
第一单位时间 |
第二单位时间 |
第三单位时间 |
|||
被读机号 |
结果 |
被读机号 |
结果 |
被读机号 |
结果 |
||
1 |
v1 |
2 |
v1+v2 |
|
|
|
|
v1+v2 |
v2 |
1 |
v2+v1 |
|
|
|
|
(Ⅰ)当n=4时,至少需要多少个单位时间可完成计算?
把你设计的方法填入下表
机器号 |
初始时 |
第一单位时间 |
第二单位时间 |
第三单位时间 |
|||
被读机号 |
结果 |
被读机号 |
结果 |
被读机号 |
结果 |
||
1 |
v1 |
|
|
|
|
|
|
2 |
v2 |
|
|
|
|
|
|
3 |
v3 |
|
|
|
|
|
|
4 |
v4 |
|
|
|
|
|
|
(Ⅱ)当n=128时,要使所有机器都得到,至少需要多少个单位时间可完成计算?(结论不要求证明)
解析:
解:(Ⅰ)当n=4时,只用2个单位时间即可完成计算.
方法之一如下: (Ⅱ)当n=128=27时,至少需要7个单位时间才能完成计算.
|
用计算机求n个不同的数v1,v2,…,vn的和
n |
i=1 |
机器号 | 初始时 | 第一单位时间 | 第二单位时间 | 第三单位时间 | |||
被读机号 | 结 果 | 被读机号 | 结 果 | 被读机号 | 结 果 | ||
1 | v1 | 2 | v1+v2 | ||||
2 | v2 | 1 | v2+v1 |
机器号 | 初始时 | 第一单位时间 | 第二单位时间 | 第三单位时间 | |||
被读机号 | 结 果 | 被读机号 | 结 果 | 被读机号 | 结 果 | ||
1 | v1 | ||||||
2 | v2 | ||||||
3 | v3 | ||||||
4 | v4 |
n |
i=1 |
(02年北京卷)(12分)
在研究并行计算的基本算法时,有以下简单模型问题:
用计算机求n个不同的数的和.计算开始前,n个数存贮在n台由网络连接的计算机中,每台机器存一个数,计算开始后,在一个单位时间内,每台机器至多到一台其他机器中读数据,并与自己原有数据相加得到新的数据,各台机器可同时完成上述工作.
为了用尽可能少的单位时间,使各台机器都得到这n个数的和,需要设计一种读和加的方法.比如n=2时,一个单位时间即可完成计算,方法可用下表表示:
机器号 | 初始时 | 第一单位时间 | 第二单位时间 | 第三单位时间 | |||
被读机号 | 结 果 | 被读机号 | 结 果 | 被读机号 | 结 果 | ||
1 | v1 | 2 | v1+ v2 |
|
|
|
|
2 | v2 | 1 | v2+v1 |
|
|
|
|
(Ⅰ)当n=4时,至少需要多少个单位时间可完成计算?
把你设计的方法填入下表
机器号 | 初始时 | 第一单位时间 | 第二单位时间 | 第三单位时间 | |||
被读机号 | 结 果 | 被读机号 | 结 果 | 被读机号 | 结 果 | ||
1 | v1 |
|
|
|
|
|
|
2 | v2 |
|
|
|
|
|
|
3 | v3 |
|
|
|
|
|
|
4 | v4 |
|
|
|
|
|
|
(Ⅱ)当n=128时,要使所有机器都得到,至少需要多少个单位时间可完成计算?(结论不要求证明)
用计算机求n个不同的数v1,v2,…,vn的和=v1+v2+v3+…+vn.计算开始前,n个数存贮在n台由网络连接的计算机中,每台机器存一个数.计算开始后,在一个单位时间内,每台机器至多到一台其他机器中读数据,并与自己原有数据相加得到新的数据,各台机器可同时完成上述工作.
为了用尽可能少的单位时间,使各台机器都得到这n个数的和,需要设计一种读和加的方法.比如n=2时,一个单位时间即可完成计算,方法可用下表表示:
机器号 | 初始时 | 第一单位时间 | 第二单位时间 | 第三单位时间 | |||
被读 机号 | 结 果 | 被读 机号 | 结 果 | 被读 机号 | 结 果 | ||
1 | v1 | 2 | v1+v2 |
|
|
|
|
2 | v2 | 1 | v2+v1 |
|
|
|
|
(Ⅰ)当n=4时,至少需要多少个单位时间可完成计算?
把你设计的方法填入下表
机器号 | 初始时 | 第一单位时间 | 第二单位时间 | 第三单位时间 | |||
被读 机号 | 结 果 | 被读 机号 | 结 果 | 被读 机号 | 结 果 | ||
1 | v1 |
|
|
|
|
|
|
2 | v2 |
|
|
|
|
|
|
3 | v3 |
|
|
|
|
|
|
4 | v4 |
|
|
|
|
|
|
(Ⅱ)当n=128时,要使所有机器都得到,至少需要多少个单位时间可完成计算?(结论不要求证明)