概述
并行计算基本概念
加速比
绝对加速比
S
N
=
最
优
串
行
算
法
单
机
运
行
时
间
并
行
算
法
在
N
台
处
理
机
上
运
行
的
时
间
S_N=frac{最优串行算法单机运行时间}{并行算法在N台处理机上运行的时间}
SN=并行算法在N台处理机上运行的时间最优串行算法单机运行时间
相对加速比
S
N
=
并
行
算
法
在
单
机
上
运
行
的
时
间
并
行
算
法
在
N
台
处
理
机
上
运
行
的
时
间
S_N=frac{并行算法在单机上运行的时间}{并行算法在N台处理机上运行的时间}
SN=并行算法在N台处理机上运行的时间并行算法在单机上运行的时间
Amdahl定律
s
=
W
s
+
W
p
W
s
+
W
p
/
p
s=frac{W_s+W_p}{W_s+W_p/p}
s=Ws+Wp/pWs+Wp
同时除以
W
=
W
s
+
W
p
W=W_s+W_p
W=Ws+Wp
s
=
1
f
+
(
1
−
f
)
/
p
=
P
1
+
f
(
p
−
1
)
s=frac{1}{f+(1-f)/p}=frac{P}{1+f(p-1)}
s=f+(1−f)/p1=1+f(p−1)P
则
lim
p
→
∞
S
→
1
/
f
limlimits_{prightarrowinfty}Srightarrow1/f
p→∞limS→1/f
该公式没有考虑并行计算引起的通信和额外的计算开销,但是仍然可以说明问题
考虑额外开销过后
S
=
W
s
+
W
p
W
s
+
W
p
/
p
+
W
o
=
W
f
W
+
W
(
1
−
f
)
p
+
W
o
=
p
1
+
f
(
p
−
1
)
+
W
o
p
W
S=frac{W_s+W_p}{W_s+W_p/p+W_o}=frac{W}{fW+frac{W(1-f)}{p}+W_o} =frac{p}{1+f(p-1)+frac{W_op}{W}}
S=Ws+Wp/p+WoWs+Wp=fW+pW(1−f)+WoW=1+f(p−1)+WWopp
lim p → ∞ S = 1 f + W o W limlimits_{prightarrowinfty}S=frac{1}{f+frac{W_o}{W}} p→∞limS=f+WWo1
如果额外开销过大,还有可能造成“反向加速”
Gustafson定律(假设问题随规模的增大,并行部分增加)
S
‘
=
W
s
+
p
W
p
W
s
+
p
W
p
/
p
=
W
s
+
p
W
p
W
s
+
W
p
=
f
+
p
(
1
−
f
)
=
p
−
f
(
p
−
1
)
S^‘=frac{W_s+pW_p}{W_s+pW_p/p}=frac{W_s+pW_p}{W_s+W_p}=f+p(1-f)=p-f(p-1)
S‘=Ws+pWp/pWs+pWp=Ws+WpWs+pWp=f+p(1−f)=p−f(p−1)
这样最大加速比就不仅仅取决于串行部分
考虑额外开销
S
‘
=
W
s
+
p
W
p
W
s
+
W
p
+
W
o
=
f
+
p
(
1
−
f
)
1
+
W
o
/
W
S^‘=frac{W_s+pW_p}{W_s+W_p+W_o}=frac{f+p(1-f)}{1+W_o/W}
S‘=Ws+Wp+WoWs+pWp=1+Wo/Wf+p(1−f)
W
o
W_o
Wo是p的函数,它可能会随着p的改变而改变。要到达一般化的Gustafson定律所描述的线性加速比,当p改变时,必须要控制额外开销的增长,这在实际中往往是非常困难的。
最后
以上就是典雅老师为你收集整理的并行计算基本概念的全部内容,希望文章能够帮你解决并行计算基本概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复