对数坐标图与饱和
计算速度在50年间遵循指数增长曲线。在对数-线性坐标图(对数速度 vs 线性时间)上,这表现为斜率 b = 每年数量级增长率的直线。
物理限制施加了一个水平上限:由分子尺寸、光速及热约束决定的最大速度 S_max。当指数增长接近 S_max 时,增长必然减缓。
逻辑斯谛饱和
一种常见的有上限增长模型:
S(t) = S_max / (1 + e^(−r(t − t₀)))
这是应用于技术的逻辑斯谛方程。在早期(t << t₀):S(t) ≈ S_max × e^(r(t−t₀)) —— 纯指数增长。接近上限时(t >> t₀):S(t) 渐近趋向 S_max。
几何形态:在对数-线性坐标上的直线在接近上限时弯曲,在线性-线性坐标上呈现 S 形。
增长何时饱和?
假设单处理器速度从1940年的 10⁰ 次操作/秒开始,以 10^(0.09t) 的速度增长。物理上限:S_max = 10^(12) 次操作/秒(单核处理器的粗略估计,受热约束和光速约束限制)。
最大通信半径
处理器的时钟速度决定了在一个时钟周期内能够通信的最大半径。信号在铜中以约 2×10⁸ 米/秒的速度传播。
对于时钟周期 T(秒),最大单向通信半径为:
r_max = v × T / 2
(除以2用于往返:信号必须在 T 内发出并返回)
随着时钟速度增加,T 减小,故 r_max 缩小。这一几何约束迫使组件更紧密地聚集——减小芯片面积——或接受片外通信的多周期延迟。
影响球面
在一个时钟周期内可达的所有组件构成以处理器为中心、半径为 r_max 的球体。体积:V = (4/3)π r_max³。
若组件密度为 ρ(组件/立方米),一个周期内可达的组件数量:N = ρ × V = ρ × (4/3)π r_max³。
随着时钟速度增加,r_max 缩小,N 以立方方式缩小——时钟速度提高2倍会使可达组件数量减少 (1/2)³ = 1/8。
每个时钟周期内可达的组件数量
1993年代的工作站以100 MHz运行(T = 10 ns)。信号速度 = 2×10⁸ m/s。电路板上的组件密度 ≈ 10⁸ 组件/立方米(包括芯片、电阻、电容的粗略估计)。
现代 GPU 以 2 GHz 运行(T = 0.5 ns)。
并行加速上限
单处理器速度接近物理上限。业界的回应:并行架构。阿姆达尔定律量化了并行性可实现的加速。
阿姆达尔定律
假设程序的分数 f 可以并行化,分数 (1−f) 必须串行运行。使用 p 个处理器时:
Speedup(p) = 1 / ((1−f) + f/p)
当 p → ∞ 时:Speedup_max = 1 / (1−f)
串行分数 (1−f) 为可实现的加速设置了硬上限,无论添加多少处理器。
几何洞察:加速作为 p 的函数遵循双曲线。渐近线为 1/(1−f)。当 f = 0.9 时,最大加速 = 10,即使处理器数量无限。当 f = 0.99 时,最大加速 = 100。
汉明的隐含教训:对并行架构的兴趣是真实的,但收益完全取决于工作负载的可并行程度——这一事实被许多并行计算乐观主义者忽视了。
计算并行加速
一个科学仿真在单处理器上运行1000秒。性能分析显示:串行初始化阶段200秒(无法并行化);并行计算阶段800秒。