【问题标题】:Does the parallel processing changes the complexity for a specific algorithm ?并行处理是否会改变特定算法的复杂性?
【发布时间】:2016-10-08 11:42:28
【问题描述】:

我希望我的问题是在正确的地方,我也希望它是明确的

我的问题,我想将顺序冒泡排序算法转换为并行算法,我的问题是,如果我转换它,复杂度仍然 O(n^2) 吗?

如果不是,顺序算法和并行算法有什么区别?我知道并行指令将同时在不同的内核中工作,但不同的只是时间吗?

也许我的问题看起来很愚蠢:D 但我过去没有使用并行处理,所以我希望我能得到好的答案

谢谢!

【问题讨论】:

    标签: algorithm parallel-processing complexity-theory bubble-sort


    【解决方案1】:

    看看科门:https://mitpress.mit.edu/sites/default/files/titles/sample/0262533057chap27.pdf

    是的,据说它应该改变算法的渐近行为,至少在某种意义上,无论算法在并行化之前的复杂性如何,它现在都将拥有“超过 P”,其中 P 是核心数/线程/任务等。所以它确实改变了复杂性。

    我在上面提到的 CLRS 章节的一个好处是它具有您可能感兴趣的算法伪代码,包括一个非常好的合并排序示例。此外,它提出了一个实用的“动态多线程”模型(查找它),该模型在实践中被证明非常好,首先由 MIT 的 Leiserson(CLRS 中的“L”)的衍生产品实现,然后由英特尔实现(CilkPlus),最终在 5.1 的时候并入 GCC 的主分支。

    这当然是理论上的,实际上实现 P 的这种加速实际上非常困难。

    【讨论】:

      猜你喜欢
      • 2013-10-12
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      相关资源
      最近更新 更多