本题导读

本题考查并行计算的算法设计。核心在于倍增合并减少时间。

📌【题干】

Question

(2002年北京卷(文)) 在研究并行计算的基本算法时,有以下简单模型问题:用计算机求 个不同的数 的和 .计算开始前, 个数存贮在由网络连接的 台计算机中,每台机器存一个数.计算开始后,在一个单位时间内,每台机器至多到一台其他机器中读数据,并与自己原有数据相加得到新的数据,各台机器可同时完成上述工作.

(1) 当 时,至少需要多少个单位时间可完成计算?

(2) 当 时,要使所有机器都得到 ,至少需要多少个单位时间可完成计算?

🔍【思路分析】

破题导航

  1. 时两两合并再合并, 个单位时间。
  2. 时倍增合并,。

✅【答案】

Success

(1) 个单位时间

(2) 个单位时间

✍【详细解析】

Abstract

(1) 第一单位时间 、 号机器与 、 号机器分别两两相加,第二单位时间再合并,故 时至少 个单位时间. (2) 每次单位时间可使”已知部分和”的机器数倍增, 时需 个单位时间.

💡【考点归纳与避坑指南】

Danger

核心考点:并行计算时间

核心方法: 时 个单位时间; 时 个单位时间(倍增求和)

避坑指南:并行计算时间按 估计

📖【试题探源与推广】

Tip

试题探源:源于教材算法与倍增

结论推广:一般地,并行求和时间为

方法推广:倍增合并思路

🔗【关联脉络】

Multi column