第 1 章 绪论
首先介绍几个概念:
- 加速比,设 表示使用 p 个处理器运行程序花费的时间,加速比定义为
- 效率和开销,通常我们希望得到的最好加速比是线性加速比(即使用 p 个处理器能够得到的最大加速比为 p,另外也存在例外情况,称为超线性加速比)。这两个度量将加速比与处理器数量建立关联,效率定义为 ,开销定义为
- 可扩展性,考察处理器数量或输入规模变化的场景下的加速效率,这称之为可扩展性分析。有两类可扩展性,强可扩展性和弱可扩展性,前者测量时仅变化处理器数量而保持输入规模不变,后者则将处理器数量和输入规模同时变化。
- 计算通信比,定义为计算花费的时间除以处理器间通信花费的时间,通常更高的比值会带来更好的加速比和效率提升。
当被处理数据的规模固定时,加速比依赖于采用的计算单元个数和计算通信比(加速比随着使用的计算单元增多而达到最大,但继续增加计算单元可能降低加速比,通常通信时长占比越大,使用的计算单元应该减少)。
编写并行程序需要考虑的几个问题:划分(数据并行,任务并行,模型并行),通信(通信量核通信类型),同步,负载平衡。