我是靠谱客的博主 典雅老师,最近开发中收集的这篇文章主要介绍并行计算基本概念,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

并行计算基本概念

加速比

绝对加速比
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+(1f)/p1=1+f(p1)P

lim ⁡ p → ∞ S → 1 / f limlimits_{prightarrowinfty}Srightarrow1/f plimS1/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(1f)+WoW=1+f(p1)+WWopp

lim ⁡ p → ∞ S = 1 f + W o W limlimits_{prightarrowinfty}S=frac{1}{f+frac{W_o}{W}} plimS=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(1f)=pf(p1)
这样最大加速比就不仅仅取决于串行部分

考虑额外开销
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(1f)
W o W_o Wo是p的函数,它可能会随着p的改变而改变。要到达一般化的Gustafson定律所描述的线性加速比,当p改变时,必须要控制额外开销的增长,这在实际中往往是非常困难的。

最后

以上就是典雅老师为你收集整理的并行计算基本概念的全部内容,希望文章能够帮你解决并行计算基本概念所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部