【问题标题】:How to calculate parallel speedup between two algorithm如何计算两种算法之间的并行加速
【发布时间】:2017-12-09 02:29:33
【问题描述】:

假设我有算法 1 和 2,它们的顺序执行时间是 ts1 和 ts2。它们的并行执行时间是tp1和tp2。

现在在计算这两种算法的加速时,下列哪项是正确的?

  • min(ts1,ts2)/tp1 算法 1
  • min(ts1,ts2)/tp2 算法 2

  • ts1/tp1 用于算法 1
  • 算法 2 的 ts2/tp2

也就是说,对于分子来说,我应该使用最好的时序时间还是自己的时序时间?

【问题讨论】:

    标签: parallel-processing hpc


    【解决方案1】:

    短版:

    以上都不是


    图1:

                                                         a SPEEDUP
                                                           BETWEEN
                                                         a BLACK-BOX <PROCESS_2>
       [START]                                             and
             +-----------------------------------------+ a BLACK-BOX <PROCESS_1>
             |                                         |
          [T0]         [T0+ts1]             [T0+ts1+tp1] 
             |                |                        |   
             |                |                        |   
             v                v                        v
             |________________|R.0: ____.____.____.____| ~~ <PAR.1:1> == [SEQ]
             |                |R.1? ____.____|         :
             |                |R.2? ____|    :         :
             |                |R.3? ____|    :         :
             |                |         :    :         :
             |<SEQ.1>>>>>>>>>>|         :    :         :
             |                |<PAR.1:N>:    :         :
                              |         :    :         :
                                        :    :         :
                                        :    :         [FINISH] using 1 PAR-RESOURCE
                                        :    [FINISH]        if using 2 PAR-RESOURCEs
                                        [FINISH]             if using 4 PAR-RESOURCEs
    

    ( 执行时间从左到右,从[T0] .. 到[T0 + ts1 + tp1]。这里选择[SEQ][PAR] 部分的草图顺序只是为了说明目的,可以相反,因为流程部分的持续时间排序原则上是可交换的)


    一个 TL;DR;版本:

    对上述 [SEQ]+[PAR] 流程进行一些正式的简化可能有助于回答和理解原因。

    无需告诉任何 HPC 规划者,Amdahl Law 规则(使用了 the better if extended form of Amdahl, the overhead + atomicity aware formulation)。

    我们看到,在PROCESS_1[PAR] 部分中使用的资源R.i 越多,tp1 可能会变得越短。这就是[PAR]-processing 的威力。

    仅给定一对元组 ( ts1, tp1 )( ts2, tp2 ),没有人可以假设任何潜在的阿姆达尔定律——资源驱动(如图 1 所示)——加速,但如果努力只比较两种假设的实现,具有可能不同的内部处理,可能的加速 S 可以表述为:

          max( [ ts1 + tp1 ], [ ts2, tp2 ] )
    S =  ______________________________________
          min( [ ts1 + tp1 ], [ ts2, tp2 ] )
    

    【讨论】:

      【解决方案2】:

      您的问题存在根本问题。这就是你被卡住的原因。问题是 Speedup 是为处理器定义的,而不是算法。

      在计算机体系结构中,加速是提高处理同一问题的两个系统之间的性能的过程。从技术上讲,它是在具有不同资源的两个相似架构上执行的任务的执行速度的提高。

      定义取自Wikipedia

      【讨论】:

      • @user3666197 - 请不要对某人进行毫无根据的指控,并通过不断的回滚来迫害他们。使用一个被整整三个词缩短的引语并不能证明你对这个人的攻击是正当的。
      猜你喜欢
      • 2014-06-16
      • 2016-04-23
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多