- 并行执行时间T c o m p u t T_{comput}Tcomput为计算时间,T p a r o T_{paro}Tparo为并行开销时间,T c o m m T_{comm}Tcomm为通讯时间,则T n = T c o m p u t + T p a r o + T c o m m T_n=T_{comput}+T_{paro}+T_{comm}Tn=Tcomput+Tparo+Tcomm
- 通讯开销:通讯开销包括启动时间t 0 t_0t0(一般为建立连接所用时间)和传输时间,如果定义r ∞ r_\infinr∞为渐近带宽,则传输m比特信息的通讯开销为T c o m m ( m ) = t 0 + m / r ∞ T_{comm}(m)=t_0+m/r_\infinTcomm(m)=t0+m/r∞
- S为加速比,E为效率
加速比性能定律
并行系统的加速比是指对于给定应用,并行算法的执行速度相对于最优串行算法的执行速度加快多少倍($\geq$1)。
定义处理器数为P,问题规模(总计算量)为W,其中串行和并行计算量分别为W s , W p , W = W s + W p W_s,W_p,W=W_s+W_pWs,Wp,W=Ws+Wp。为方便表示,定义串行分量的比例为f = W s / W f=W_s/Wf=Ws/W。
Amdahl定律
Amdahl定律假定计算负载是固定不变的,将计算任务分配到多个处理器上。则S = W W s + W p / p = W s + W p W s + W p / p = p 1 + f ( p − 1 ) S=\frac{W}{W_s+W_p/p}=\frac{W_s+W_p}{W_s+W_p/p}=\frac{p}{1+f(p-1)}S=Ws+Wp/pW=Ws+Wp/pWs+Wp=1+f(p−1)p。
当p → ∞ , S = 1 / f p\rightarrow \infin,S=1/fp→∞,S=1/f,即串行分量为加速瓶颈。
如果考虑额外串行开销W 0 W_0W0,则S = W W s + W p / p + W 0 = p 1 + f ( p − 1 ) + W 0 p / W S=\frac{W}{W_s+W_p/p+W_0}=\frac{p}{1+f(p-1)+W_0p/W}S=Ws+Wp/p+W0W=1+f(p−1)+W0p/Wp
Amdahl是比较悲观的一种结论,认为即使使用再多的处理器也不会产生更好的结果。
Gustafson定律
在一些高计算精度要求的任务中,计算时间是固定的,计算量和计算精度成正比,若在相同时间内提高计算精度只能通过增加处理器数量实现。
此时Gustafson定律认为计算负载为W s + p W p W_s+pW_pWs+pWp,则S = W W s + W p = W s + p W p W s + W p = f + p ( 1 − f ) = p − f ( p − 1 ) S=\frac{W}{W_s+W_p}=\frac{W_s+pW_p}{W_s+W_p}=f+p(1-f)=p-f(p-1)S=Ws+WpW=Ws+WpWs+pWp=f+p(1−f)=p−f(p−1)
当p → ∞ p\rightarrow \infinp→∞时,S可视为p的线性函数,不再存在串行瓶颈。
Sun和Ni定律
Sun和Ni定律考虑到了物理实现对并行效率的影响,即增大问题规模时读取储存的开销会发生变化。因此定义因子G ( p ) G(p)G(p)反应存储容量增加到p倍时并行工作负载的增加量,即扩大问题规模后的工作负载为W ′ = W s + G ( p ) W p = f W + ( 1 − f ) G ( p ) W W'=W_s+G(p)W_p=fW+(1-f)G(p)WW′=Ws+G(p)Wp=fW+(1−f)G(p)W
存储受限的加速公式为:S = f W + ( 1 − f ) G ( p ) W f W + ( 1 − f ) G ( p ) W / p = f + ( 1 − f ) G ( p ) f + ( 1 − f ) G ( p ) / p S=\frac{fW+(1-f)G(p)W}{fW+(1-f)G(p)W/p}=\frac{f+(1-f)G(p)}{f+(1-f)G(p)/p}S=fW+(1−f)G(p)W/pfW+(1−f)G(p)W=f+(1−f)G(p)/pf+(1−f)G(p)
- 当G§=1时,即增加处理器不会增加总计算负载,Sun和Ni定律变为Amdahl定律。
- 当G§=p时,即计算负载和处理器数成正比时,Sun和Ni定律变为Gustafson定律。
- 当G§>p时,即计算负载增加速度比储存开销增加的快时,Sun和Ni定律加速比要高于前两个定律。
可扩放性评测标准
并行计算的可扩放性(Scalability)即计算系统性能随处理器增加提高的能力(可看作加速比的变化率)。目前没有公认的评判标准,下面列举一些常见的标准。
等效率度量标准
定义加速效率E = S / P = p 1 + T 0 / T e × 1 p = 1 1 + T 0 / W E=S/P=\frac{p}{1+T_0/T_e}\times\frac{1}{p}=\frac{1}{1+T_0/W}E=S/P=1+T0/Tep×p1=1+T0/W1,其中T 0 , T e T_0,T_eT0,Te分别为额外开销和计算开销。
如果增加处理器数目,额外一定会增大(通讯开销),因此为了维持效率不变需要增加计算负载。
等效率度量标准即f E ( p ) f_E(p)fE(p)为维持相同效率E时问题规模W随p变化的函数。
- 优点:简单、可定量计算。
- 缺点:额外开销有时难以定量计算。
等速度度量标准
速度即为最朴素的定义计算量/计算时间,等速度标准定义平均速度为并行速度/处理器数,即V ˉ = V / p = W p T \bar{V}=V/p=\frac{W}{pT}Vˉ=V/p=pTW 。
等速度度量中的可扩放性即当处理器数目增加时需要增加计算量保证平均速度不变的能力。用下式描述:
Ψ ( p , p ′ ) = W / p W ′ / p ′ = p ′ W p W ′ \Psi(p,p')=\frac{W/p}{W'/p'}=\frac{p'W}{pW'}Ψ(p,p′)=W′/p′W/p=pW′p′W
即反应每个处理器分配的计算负载随处理器数的变化。当保持平均速度不变时,W p T = W ′ p ′ T ′ ⇒ Ψ = T T ′ \frac{W}{pT}=\frac{W'}{p'T'}\Rightarrow \Psi=\frac{T}{T'}pTW=p′T′W′⇒Ψ=T′T
特别的,当p=1时,即串行计算,此时Ψ ( 1 , p ′ ) = W W ′ / p ′ \Psi(1,p')=\frac{W}{W'/p'}Ψ(1,p′)=W′/p′W