并行算法分析中的工作,跨度和时间有什么区别?

时间:2017-12-22 19:51:00

标签: algorithm parallel-processing time-complexity analysis asymptotic-complexity

在分析并行算法时,我们倾向于关注工作(T1),跨度(T∞)或时间。

我感到困惑的是,如果给我一个算法来分析,我需要寻找哪些关键提示,工作,跨度和时间?

假设这个算法: enter image description here

如何分析上述算法以找到工作,时间和跨度?

1 个答案:

答案 0 :(得分:2)

产地:

PRAM 已于上世纪70年代早期推出,希望它可以让我们在解决计算难题方面取得进展。然而,承诺或更好的期望被这些计算设备架构仍然必须承受的主要限制所冷却。

理论值:

T 1 =处理的时间量,一旦执行纯粹的[SERIAL]计划,就会测量。

T =处理计算图的时间量(定向, 希望 经常被遗忘最后非循环,图表)一旦以“正义” - [CONCURRENT]方式执行,但是在所有时间内确实拥有无限量的实际资源,从而允许任何程度的并行性实际上但偶然发生

(警告通知:你的教授不需要享受这种解释,但现实规则 - 无限处理器是不够的,因为任何其他资源也必须以无限量和能力存在,无论是RAM访问IO-s,sensorics等,所有这些必须提供无限并行服务,避免任何类型的阻塞/等待/重新调度,这些阻塞/等待/重新调度可能由于任何类型的任何资源时态/上下文无能力而出现在无限平行的此类服务请求下询问,然后“立即”回答)

如何解决:

针对上述问题,

T 1 强制命令两个O(N)块 - M[:]的内存分配和{{1}的最终搜索} Max以及两个O(N 2 )块,在M[:]的域上处理“所有对”(i,j) - by - {{1} }值。

基于CIS / RIS同质性的假设,工作将不低于N

对于 T ,还有更多事情要做。首先,检测可能发生的并行代码执行路径,接下来,还要保护结果不会在碰撞时刻被“覆盖” - 你的标题只是略微提到CRCW--一个弱假设分析后一个问题的 C < / strong> oncurrent- R ead- C oncurrent- W rite PRAM -machine。

请尽量用铅笔,纸张画出D(jh)AG以获得尽可能小的 N ~ 2N(1+N) ,如果你有一个更大的论文),可以导出操作流程(并且在不太宽容的情况下可能(in)-dependency排序,但PRAM计算设备的更真实的CREW或EREW类型)

批评:确实是魔鬼的一部分你的教授至少会喜欢

任何谨慎的读者都已经注意到了几个非常重要的假设,CIS / RIS指令持续时间的同质性是这些假设的一个小例子。

问题中最大但隐藏的部分是流程调度的实际成本。纯[SERIAL]代码执行享有(不公平)优势,即零附加开销成本(加上许多硅架构,还有来自无序指令重新排序执行的额外性能技巧,参考。用于深入细节的超标量流水线或VLIW体系结构),而任何类型的真实流程调度主要增加了额外的开销成本,这些成本在纯[SERIAL]代码执行案例中不存在以获得 Ť<子> 1

在实际系统中,同时受NUMA影响和非同类CIS / RIS指令持续时间影响了显着的代码执行流程持续时间的不规则性,这些附加开销成本确实大大改变了基线以进行任何加速比较。

魔鬼的问题:

哪里我们是否考虑了这些真实的附加费用?

在现实生活中我们这样做。

在最初的Amdahl定律和布伦特定理中,我们没有。

re-formulated Amdahl's Law inputs also these { initial | coordination | terminal}-add-on overhead costs突然计算和实验验证的加速开始与常用的真实计算结构上的观察结果相匹配。