呜~ 就隔了一段时间没看并行计算,发现作业贼难顶,不得不写篇博客来记录一下
复习(预习)的内容。
并行计算性能评测
并行机的一些基本性能指标
对并行计算机的性能关注点还是落在了CPU和存储器上,毕竟CPU和存储器决定了计算机处理问题速度的上限。
在https://www.top500.org/收录了世界上前500台计算能力最强的计算机

可以看到,超算top 5领域美国就居了3个,我国神威·太湖之光排名4,看看神威的详细配置:

这么多核核内存orz… 不过好像处理器的频数并没有那么高,其实也就1.45GHz,个人笔记本都可以达到2.2GHz,台式机可以达到3.5GHz,或许是因为有千万个核,不需要太高的频率吧,再次Orx。后面是一些浮点运算计算能力,我后面会讲到。还有,这耗电也很厉害… 操作系统是Sunway RaiseOS
讲了top 500,还是回到标题的内容上来,评价一个并行机有哪些指标?下面是一些参考,有一些我们刚才已经在上面的神威中学习了。

上面mention到了顺序执行时间和并行执行时间,一般有下面的式子成立:
程序执行时间 = 计算时间 + 并行开销时间 + 相互通信时间
加速比性能定律
这个加速比其实我去年已经讲过了,在《计算机组成与设计》这里:https://blog.csdn.net/weixin_44026604/article/details/112167660,不过加速比可不仅仅是Amdahl定律
所谓并行加速比,其实是相对串行时间而言的,就是指:对于一个给定的应用,并行算法的执行速度相对于串行算法的执行速度加快了多少倍。
额,下面这些参数的意义得先有个了解才能继续往下聊:
- n: 并行系统中处理器数
- W: 问题规模(计算负载、工作负载,定义为给定问题的总计算量)
- Ws: 应用程序中的串行分量
- Wp: W中可并行化部分(Ws+Wp=W)
- f: 串行分量比例
- f =Ws/W
- Ts: 串行分量的执行时间
- Tp: 并行分量的执行时间
- S: 加速比
- E: 效率
Amdahl定律
Amdahl定律的出发点是在工作负载变化固定的情况下,增加处理器的个数来提高计算的速度,定律表达为:

上面这个式子就表示了:加速比不会随着处理器个数的无限增加而无限提高,而是会达到一个上限,这个上限是串行占比的倒数。一个程序,如果其串行分量越大,则其并行所获得加速比上限就越低;如果串行分量越小(意味着可并行的分量比例越大),则其并行所获得的加速比上限(天花板)就越高。

从上面的图中可以很清楚地看到,即使串行部分在程序中仅占了4%,但加速比的上限也就只能达到31了。所以,平时编OpenMP程序,运行时间与处理器核数不成正比也是可以理解的,毕竟一般程序都含有串行部分,相当于是一次函数,而不是正比例函数。
如果再考虑一个并行开销,则Amdahl公式变为:

Gustafson定律
Gustafson的出发点和Amdahl不同:Gustafson认为在固定的时间内,完成的事情越多,加速比越高。除非学术研究,在实际应用中没有必要固定工作负载而使计算程序运行在不同数目的处理器上。Gustafson定律认为,增多处理器必须相应地增大问题规模才有实际意义,公式表达为:

这个表达式看上去要比Amdahl乐观,它表示了:计算负载增加的情况下,相应的增加处理器的数量,所获得加速比也是在增加的。且从表达式看出,这个加速比似乎没有天花板?!!orz

当串行只占了4%左右,加速比保持在很高水平,如果再考虑一个并行开销:

有关加速的讨论
一般的经验高速我们:
并行计算性能评测与指标分析

本文探讨了并行计算的性能评测,重点介绍了Amdahl定律和Gustafson定律,以及如何衡量并行机的性能,如加速比、效率和处理器数等。并举例解释了PRAM、APRAM模型以及BSP和LogP模型。此外,还涵盖了并行算法在矩阵运算、归约、扫描等问题上的应用。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



