并行算法中的Work and Span

定义

  • primitive operations: 基本运算,即任何一步小操作,可以是加减乘除等,每一步运算消耗单位时间( unit time )
  • time steps: 每个 time step 中可并行地执行多个 primitive operations ,所以每个 time step 所耗费是时长为单位时间
    注:Timesteps 是我们理解并行计算的关键
    为了解释 Timesteps 和 primitive operations 的关系,下面通过图解解方程(运用 Cramer 法则)来说明(为方便后面对比说明,先假设此时只有4个处理器,图中反映为每个 Timestep 有多少列)
    { a u + b v = x c u + d v = y \begin{cases} au+bv=x\\ cu+dv=y \end{cases} {au+bv=xcu+dv=y
    将计算解出 u  和  v u\text{ 和 }v u  v 的过程按照下图分割
    并行算法中的Work and Span_第1张图片

下面正式引入并行算法中的一些概念:

  • P P P:表示处理器(processors)的个数,一般用字母 p ( P ) p(P) p(P)表示
    例如Fig1表示有4个处理器的情况, P = 4 P=4 P=4
  • T p T_p Tp: 在 p p p个处理器的情况下,从计算开始到结束所花的总时间(括计算和等待时间)
    注1:所谓等待时间,很直观地表现在 Timestep 上,即必须执行完 Timestep 1 才可开始 Timestep 2
    注2:例如Fig1中的 T 4 = 4 T_4=4 T4=4(4个 Timestep)
  • W o r k Work Work: 完成算法所需的基础操作的个数和(反映为总共消耗了多少单位时间)。当处理器个数为1时,Timestep个数等于基础操作个数,所以可以把 Work 记做 T 1 T_1 T1(或 W W W
  • S p a n Span Span: 由于数据依赖关系(简单说就是必须执行完某一步骤后,才能进行下一步),必须 按照顺序执行的最长路径,即在最大并行度下的 T p m T_{p_m} Tpm,记作 T ∞ ( T_∞( T( S ) S) S) ,其中 p m p_m pm为实现最大并行度所需处理器的个数
    注:所谓最大并行度,就是 P = p m P=p_m P=pm P = ∞ P=∞ P=情况一致,下图中 6 processors∞ processors 没有区别,称 p m p_m pm为最大并行度
    下图是在 P = 6 P=6 P=6下,解Fig1中的方程
    并行算法中的Work and Span_第2张图片

对比Fig1Fig2,Fig2中的time step数就是在最大并行度下的Span的值

  • c o s t cost cost p T p pT_p pTp
    注:这里的 c o s t cost cost与常规意义下的耗费不同,因为在并行算法中每个Timestep中没有使用的处理器也算是一种浪费,所以 c o s t cost cost记作上图中所有方格个数
  • S p e e d u p Speedup Speedup:与串行执行相比,并行执行在速度上的增加(程度) S p = T 1 T p ( W T p S_p = \frac{T_1}{T_p}(\frac{W}{T_p} Sp=TpT1(TpW)
    S p = P S_p=P Sp=P 时,此时的 Speedup 被称作perfect linear speedup。此时反映在上面的 TimeSteps 图上很直观,每个方格均被填满,没有那一时刻有一台机器被浪费。
  • E f f i c i e n c y Efficiency Efficiency:每个执行器的Speedup,用 S p P \frac{S_p}{P} PSp表示
  • P a r a l l e l i s m Parallelism Parallelism:并行度 用比值 T 1 T ∞ \frac{T_1}{T_∞} TT1( W S \frac{W}{S} SW)表示,记作 P \mathcal P P
  • S l a c k n e s s Slackness Slackness

著名定律

  1. Work law. cost至少是work: p T p ≥ T 1 pT_p \ge T_1 pTpT1

  2. Span law. 有限的 p p p个处理器不可能胜过无限个处理器,即 T p ≥ T ∞ T_p \ge T_∞ TpT

    由此, i f if if p > T 1 T ∞ p > \frac{T_1}{T_∞} p>TT1我们可以得到Speedup的上界 ⇒ \Rightarrow

    ∵ T p ≥ T ∞ ∴ T 1 T p ≤ T 1 T ∞ < p \because T_p \ge T_∞ \therefore \frac{T_1}{T_p} \leq \frac{T_1}{T_∞}

    TpTTpT1TT1<p

  3. Brent's law.

    n k n_k nk为每个time stepprimitive operations,其中 k = 1 , 2... N k=1,2...N k=1,2...N

    T p ≤ T 1 − T N p + T N ( 其 中 p ≤ max ⁡ k n k ) T_p \leq \frac{T_1-T_N}{p}+T_N(其中p\leq \max_kn_k) TppT1TN+TN(pmaxknk)

    推论: T p ≤ T 1 p + T N T_p \leq \frac{T_1}{p}+T_N TppT1+TN ( T p ≤ W P + S ) (T_p \leq \frac{W}{P}+S) (TpPW+S)

    证明:

    注意到两点,由1,2即可得证

    1. T p ≤ ∑ k = 1 N ⌈ n k p ⌉ T_p \leq \sum_{k=1}^N\left \lceil \frac{n_k}{p} \right \rceil Tpk=1Npnk

    2. 对 ∀ k , m ∈ Z + ⌈ k m ⌉ ≤ k + m − 1 m \forall k,m \in Z^+\left \lceil \frac{k}{m} \right \rceil \leq \frac{k+m-1}{m} k,mZ+mkmk+m1

  4. Amdahl’s law

  5. Gustafson’s law

参考文献:Analysis of parallel algorithms 维基百科[1]

你可能感兴趣的:(parallel,algorithms)