并行计算:并行程序性能的评估
视频来源:新竹清华大学:并行计算与并行编程课程
一:SpeedUp Factor(加速比例):
S(p)=Ts / Tp Ts :最好的串行算法所需的执行时间 Tp: 使用并行p个处理器所需的执行时间。
线性提速: S(p) = p
二:System efficiency: E(p) = Ts / (Tp x p) = S(p) / p x 100%
三:Maximum Speedup:很难达到理想最大化:(1)并不是所有都可以进行平行处理 (2)并行计算时需要额外的计算量(同步所需要消耗的) (3)不同processor之间的交流需要时间。(占很大比重)
Scality的画法:1. Strong Scaling:(Strong是指很难得到线性直线)
(1)问题大小不变,处理器的数量也会增加(2)用于寻找一个平滑点 可以在可接受的时间内完成计算(用多少台机器解决这个问题是最好的),从而不会浪费并行重叠产生的周期时间。(3)linear scaling通过增加处理器的数量来实现速度线性提升。
2. Weak Scaling: 随着计算node的增加,问题的大小也是逐渐增加。编程有效利用内存及其他系统资源。线性scaling可以在运行时随着负载的增加保持固定。
时间复杂度分析:总的时间复杂度 = 计算时间 + 交流时间
交流时间 = 发送信息的数量 * (信息的latency + 信息中的数据量* 传送一个数据所需的时间)