并行计算机体系结构
网络基本概念
链路:节点或开关之间的连接线。
网络:开关为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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律