并行计算机体系结构
网络基本概念
链路:节点或开关之间的连接线。
网络:开关为V,链路为E组成的图;当开关之间全连接,称为全连接网络;
网络分类
间接网络
Ω网络
任意两个节点之间可以进行通信。

baseline网络
butterfly网络
直接网络
超立方互连
胖树互连
2D Torus
并行计算基本概念
并行计算系统类型
MPP

SMP

Cluster

Hybrid
需要混合编程,MPI+OpenMPI+CUDA

CPU类型
单指令单数据流(SISD):如今的普通计算机(2023)
多指令单数据流(MISD):没有实际的计算机
单指令多数据流(SIMD):向量计算机,共享存储计算机
多指令多数据流(MIMD):大规模并行处理系统,机群。
并行计算基本定义
粒度:二次通讯之间每个处理机计算的工作量大小。
复杂性:所有处理机上,计算量最大者一个(不考虑通讯开销)。
并行度:算法可并行的程度。
加速比:串行执行的时间与并行执行的时间之比。

效率:

Amdahl定律

α:串行执行部分
q:处理器个数
Gustafson定律

Amdahl定律推导
设加速比为α,程序运行的总时间为Tbefore(串行),程序优化后所用的时间Tafter。串行部分所占的比例为f


那么优化后的总时间由 两部分组成:
Tbeforef:串行部分所占比例 乘以 优化前总时间,也就是串行部分代码花费的时间
Tbefore*(1-f)/n:并行部分所占比例为(1-f),这些部分由n个处理器分摊处理,所以每个处理器所负责的比例为(1-f)/n。那么并行所花费的时间就是(1-f)/n * Tbefore
代入加速比公式得到:
![]()
当n趋于无穷大时:

也就是处理器个数趋于无穷大时,决定加速比的就是串行部分的比例。
Gustafson公式推导
假设n个处理器并行化执行时间:
![]()
其中a为串行执行时间,b为并行执行的时间
那么串行执行的时间为:![]()
也就是串行部分执行时间a,加上用1个处理器串行处理之前n个处理器处理的任务的时间,并行时候每个处理器执行时间b,那么单个处理器执行时间就是nb。
带入加速比公式得到:
![]()
注意到a+b是并行的总时间,a是串行部分的时间,所以令串行所占的比例为:
![]()
![]()

![]()
其中F为串行所占比例,n为处理器的个数。表面上看似乎处理器个数n越大,加速比越高,但是实际上n收到(1-F)的限制。
本文来自博客园,作者:Laplace蒜子,转载请注明原文链接:https://www.cnblogs.com/RedNoseBo/p/17174600.html



浙公网安备 33010602011771号