并行算法分析中的Work、Span和Time有什么区别?
What is the difference between Work, Span and Time in parallel algorithm analysis?
在分析并行算法时,我们倾向于关注Work(T1)、Span(T∞)或时间。
我感到困惑的是,如果给我一个算法来分析,我需要寻找哪些关键提示,对于工作、跨度和时间?
假设这个算法:
如何分析上述算法以找到工作、时间和跨度?
来源:
PRAMs 已于上世纪 70 年代初引入,希望它可以在解决计算难题方面取得领先的性能。然而,这些 computing-device 架构仍然必须忍受的主要限制使承诺或更好的期望变得冷淡。
理论:
T1 = 一次处理的时间量,在纯 [SERIAL]
计划中执行一次后测量。
T∞ = 处理computing-graph(定向,只是希望经常被遗忘最后是非循环的,图形)一旦以"just"-[CONCURRENT]
方式执行,但是确实有无限数量的 real-resources 可用,因此允许任何程度的并行性实际上 但只是偶然 发生。
( 警告:您的教授不需要享受这种解释,但现实规则——无限的处理器根本不够,因为任何其他资源也必须以无限的数量和能力存在,无论是RAM-accesses、IO-s、sensorics 等,因此所有这些都必须提供无限并行服务,避免由于任何类型的任何资源而可能出现的任何类型的阻塞/等待/re-scheduling时间/语境 in-ability 按照要求提供服务,在这种 service-requests 的无限平行量下,并回答 "immediately" ).
如何解决:
T1 对于上面发布的问题,必须命令两个 O(N) 块 - M[:]
的内存分配并最终在 M[:]
上搜索 Max
和两个 O(N2) 块,在一个域上处理 "all pairs" (i,j)
N
-乘-N
个值。
基于CIS/RIS同质性假设,这个工作将不少于~ 2N(1+N)
对于T∞,要做的事情会更多。首先,检测可能发生哪些潜在的平行 code-execution 路径,接下来,还要保护结果在碰撞时刻不被 "overwritten" - 你的标题只是略微提到 CRCW - 一个弱假设来分析后一个问题 Concurrent-Read-Concurrent-Write PRAM-机.
不要犹豫,拿起铅笔、纸,画出尽可能小的 D(jh)AG N == 2
( 3
,如果你有更大一点的纸),在那里可以推导出操作流程(并且可能(在)-依赖排序操作的情况下宽容度较低但更现实的 CREW 或 EREW 类型PRAM-computing-devices ).
批评:你的教授最不喜欢这节课的魔鬼部分
任何细心的人 reader 已经注意到几个重要的假设,CIS/RIS 指令持续时间的同质性是其中的一个小例子。
问题中最大但隐藏的部分是 process-scheduling 的实际成本。纯 [SERIAL]
代码执行享有零 add-on 开销成本的(不公平的)优势(加上在许多硅架构上,还有来自 out-of-order 指令 re-ordered 执行,参考超标量流水线或 VLIW 架构以获得更深入的细节),而任何类型的 real-world process-scheduling 主要增加额外的开销成本,这在纯 [SERIAL]
code-execution 案例获得 T1.
在 real-world 系统上,NUMA 受到影响并且 non-homogeneous CIS/RIS 指令持续时间显着影响 code-execution 流持续时间的不规则性,这些 add-on 开销成本确实大大改变了任何加速比较的基线。
魔鬼的问题:
我们在哪里计算这些 real-world add-on 成本?
在现实生活中我们有。
在最初的阿姆达尔定律公式和布伦特定理中,我们没有。
re-formulated Amdahl's Law inputs also these { initial | coordination | terminal}
-add-on overhead costs 突然间,计算和实验验证的 speed-ups 开始与在常用 real-world 计算结构上的观察结果相匹配。
在分析并行算法时,我们倾向于关注Work(T1)、Span(T∞)或时间。
我感到困惑的是,如果给我一个算法来分析,我需要寻找哪些关键提示,对于工作、跨度和时间?
假设这个算法:
如何分析上述算法以找到工作、时间和跨度?
来源:
PRAMs 已于上世纪 70 年代初引入,希望它可以在解决计算难题方面取得领先的性能。然而,这些 computing-device 架构仍然必须忍受的主要限制使承诺或更好的期望变得冷淡。
理论:
T1 = 一次处理的时间量,在纯 [SERIAL]
计划中执行一次后测量。
T∞ = 处理computing-graph(定向,只是希望经常被遗忘最后是非循环的,图形)一旦以"just"-[CONCURRENT]
方式执行,但是确实有无限数量的 real-resources 可用,因此允许任何程度的并行性实际上 但只是偶然 发生。
( 警告:您的教授不需要享受这种解释,但现实规则——无限的处理器根本不够,因为任何其他资源也必须以无限的数量和能力存在,无论是RAM-accesses、IO-s、sensorics 等,因此所有这些都必须提供无限并行服务,避免由于任何类型的任何资源而可能出现的任何类型的阻塞/等待/re-scheduling时间/语境 in-ability 按照要求提供服务,在这种 service-requests 的无限平行量下,并回答 "immediately" ).
如何解决:
T1 对于上面发布的问题,必须命令两个 O(N) 块 - M[:]
的内存分配并最终在 M[:]
上搜索 Max
和两个 O(N2) 块,在一个域上处理 "all pairs" (i,j)
N
-乘-N
个值。
基于CIS/RIS同质性假设,这个工作将不少于~ 2N(1+N)
对于T∞,要做的事情会更多。首先,检测可能发生哪些潜在的平行 code-execution 路径,接下来,还要保护结果在碰撞时刻不被 "overwritten" - 你的标题只是略微提到 CRCW - 一个弱假设来分析后一个问题 Concurrent-Read-Concurrent-Write PRAM-机.
不要犹豫,拿起铅笔、纸,画出尽可能小的 D(jh)AG N == 2
( 3
,如果你有更大一点的纸),在那里可以推导出操作流程(并且可能(在)-依赖排序操作的情况下宽容度较低但更现实的 CREW 或 EREW 类型PRAM-computing-devices ).
批评:你的教授最不喜欢这节课的魔鬼部分
任何细心的人 reader 已经注意到几个重要的假设,CIS/RIS 指令持续时间的同质性是其中的一个小例子。
问题中最大但隐藏的部分是 process-scheduling 的实际成本。纯 [SERIAL]
代码执行享有零 add-on 开销成本的(不公平的)优势(加上在许多硅架构上,还有来自 out-of-order 指令 re-ordered 执行,参考超标量流水线或 VLIW 架构以获得更深入的细节),而任何类型的 real-world process-scheduling 主要增加额外的开销成本,这在纯 [SERIAL]
code-execution 案例获得 T1.
在 real-world 系统上,NUMA 受到影响并且 non-homogeneous CIS/RIS 指令持续时间显着影响 code-execution 流持续时间的不规则性,这些 add-on 开销成本确实大大改变了任何加速比较的基线。
魔鬼的问题:
我们在哪里计算这些 real-world add-on 成本?
在现实生活中我们有。
在最初的阿姆达尔定律公式和布伦特定理中,我们没有。
re-formulated Amdahl's Law inputs also these { initial | coordination | terminal}
-add-on overhead costs 突然间,计算和实验验证的 speed-ups 开始与在常用 real-world 计算结构上的观察结果相匹配。