并行计算基础

什么是并行计算

../_images/image-20240809154342495.png

应用领域

计算气动声学、流体力学、电磁学;生物基因领域;机器学习;数字媒体;气象领域;天文物理;油气模拟等。

并行计算机体系结构

image2

并行程序设计基础

串行算法并行化

例1.求和方法进行数值积分

\[\int f(x) \approx \sum_{i=0}^{N-1} \left(b-a\right) f\left(\frac{i(b-a)}{N} + a + 0.5\right),\]

image3

例2.Floyd并行算法

分块思想,参考求最短路径Floyd算法的并行化(解APSP问题)-CSDN博客

从问题描述开始设计并行算法

image4

借用已有算法求解新问题

image5

并行程序性能评价

加速比

image6

Amdahl定律

Amdahl定律定义了串行程序并行化后加速比计
算公式与理论上限。

f 表示程序中不可以被并行化的部分所占的比例。

image7

Gustafson定律

研究在给定的时间内用不同数目的处理器能够完
成多大的计算量是并行计算中一个很实际的问题。

image8

时间复杂度

image9

示例

image10