【发布时间】: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
也就是说,对于分子来说,我应该使用最好的时序时间还是自己的时序时间?
【问题讨论】:
假设我有算法 1 和 2,它们的顺序执行时间是 ts1 和 ts2。它们的并行执行时间是tp1和tp2。
现在在计算这两种算法的加速时,下列哪项是正确的?
或
也就是说,对于分子来说,我应该使用最好的时序时间还是自己的时序时间?
【问题讨论】:
以上都不是
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] 部分的草图顺序只是为了说明目的,可以相反,因为流程部分的持续时间排序原则上是可交换的)
对上述 [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 ] )
【讨论】:
您的问题存在根本问题。这就是你被卡住的原因。问题是 Speedup 是为处理器定义的,而不是算法。
在计算机体系结构中,加速是提高处理同一问题的两个系统之间的性能的过程。从技术上讲,它是在具有不同资源的两个相似架构上执行的任务的执行速度的提高。
定义取自Wikipedia。
【讨论】: