与“令人尴尬的平行”相反的是什么?

时间:2009-04-30 12:04:21

标签: multithreading concurrency terminology parallel-processing multicore

根据维基百科的说法,一个“令人尴尬的并行”问题是很难或根本不需要将问题分成许多并行任务。光线追踪通常被引用作为一个例子,因为原则上每条光线可以并行处理。

显然,一些问题要难以并行化。有些甚至可能是不可能的。我想知道使用哪些术语以及这些更难的案例的标准示例是什么。

我可以提出“令人讨厌的顺序”作为可能的名称吗?

20 个答案:

答案 0 :(得分:68)

固有顺序

示例:女性人数不会减少怀孕时间。

答案 1 :(得分:24)

与“令人尴尬的并行”问题不止一个相反。

完全顺序

一个相反的是不可并行化的问题,即通过使用多个处理器可以实现speedup的问题。已经发布了一些建议,但我提出了另一个名称:完全顺序问题。

示例:I/O-bound问题,“计算f 1000000 (x 0 )”问题类型,计算某些cryptographic hash functions

通信密集型

另一个相反的问题是可并行化的问题,需要大量并行通信(通信密集型问题)。这种问题的实现只能在具有高带宽,低延迟互连的超级计算机上正确扩展。将此与令人尴尬的并行问题进行对比,即使在互连非常差的系统(例如farms)上也能高效运行。

通信密集型问题的显着示例:求解A x = b其中A是一个大而密集的矩阵。事实上,问题的实现用于编译TOP500排名。这是一个很好的基准,因为它强调了各个CPU的计算能力互连质量(由于通信强度)。

在更实际的术语中,使用离散时间步长(思考:天气预报,in silico碰撞测试)在常规网格上求解偏微分方程组的任何数学模型都可以domain decomposition并行化。这意味着,每个CPU负责处理网格的一部分,并且在每个时间步骤结束时,CPU将区域边界上的结果与“邻居”CPU交换。这些交流使这类问题变得沟通密集。

答案 2 :(得分:13)

我很难不发布这个...因为我知道它不会在讨论中添加任何内容..但是对于那里的所有南方球迷来说

“超级连续!”

答案 3 :(得分:12)

“顽固地串行”?

答案 4 :(得分:10)

与令人难以置信的并行相反的是Amdahl's Law,它表示某些任务不能并行,并且完全并行任务所需的最短时间由该任务的纯顺序部分决定。

答案 5 :(得分:8)

顺序过程的“标准示例”:

  • 生孩子:“​​崩溃计划失败,因为他们的理论基础是,有九名女性怀孕,你可以一个月生孩子。” - 归功于Werner von Braun
  • 计算pi,e,sqrt(2)和其他无理数到百万位数:大多数算法顺序
  • 导航:要从A点到Z点,首先必须经过一些中间点B,C,D等。
  • 牛顿的方法:你需要每个近似值来计算下一个更好的近似值
  • 质询 - 响应身份验证
  • 加强关键
  • 哈希链
  • 的Hashcash

答案 6 :(得分:5)

P-complete(但目前还不确定)。

答案 7 :(得分:4)

我使用“Humiliatingly Sequential”

答案 8 :(得分:2)

我最常听到的术语是“紧密耦合”,因为每个进程必须经常交互和通信才能共享中间数据。基本上,每个过程都依赖于其他过程来完成计算。

例如,矩阵处理通常涉及在每个阵列分区的边缘共享边界值。

这与令人尴尬的并行(或松散耦合)问题相反,问题的每个部分都是完全自包含的,并且不需要(或很少)IPC。想想主/工并行性。

答案 9 :(得分:2)

如果有人想推测出自然的,不可避免的连续问题会是什么样的,那么试试

幸福顺序

反击'令人尴尬的并行'。

答案 10 :(得分:2)

我总是喜欢“悲伤地顺序”ala quicksort中的分区步骤。

答案 11 :(得分:2)

夸张地顺序。

答案 12 :(得分:2)

“Gladdengly Sequential”

答案 13 :(得分:2)

这一切都与数据依赖关系有关。令人尴尬的并行问题是解决方案由许多独立部分组成的问题。与这种性质相反的问题是具有大量数据依赖性的问题,其中几乎没有什么可以并行完成。 退行性依赖

答案 14 :(得分:0)

相反的是“令人不安的连续”。

答案 15 :(得分:0)

完全不可并行化? Pessimally parallelizable?

答案 16 :(得分:0)

考虑到并行性是在同一时间步骤t中完成许多工作的行为。相反的可能是时间顺序问题

答案 17 :(得分:0)

“完全连载?”

科学家们更多地考虑可以做什么而不是做不到的事情,这不应该让你感到惊讶。特别是在这种情况下,并行化的替代方案正在按照通常的方式执行所有操作。

答案 18 :(得分:-1)

一个固有顺序问题的例子。 这在CAD软件包和某些工程分析中很常见。

树遍历节点之间的数据依赖性。

想象一下遍历图表并添加节点权重。

你无法将其并行化。

CAD软件将零件表示为树,并且要渲染到对象,您必须遍历树。 出于这个原因,cad工作站使用更少的核心和更快,而不是许多核心。

感谢阅读。

答案 19 :(得分:-4)

你当然可以,但我认为这两个'名字'都不是问题。 从功能编程的角度来看,你可以说'恼人的顺序'部分是算法中最小或多或少独立的部分。

虽然“令人尴尬的并行”如果没有真正采用并行方法则是错误的编码实践。

因此,如果良好的编码实践始终将您的解决方案制成独立的部分,即使您当时没有利用并行性,我也不认为这些事情是一个名称。