这是一个我非常感兴趣的非常简单的研究问题。是否有一些算法的例子,或者只是一些可以有效地顺序实现但不支持高效并行化的代码?
答案 0 :(得分:4)
当然有 - 由于其顺序性,很多算法根本无法并行化。密码学中有几个很好的例子。
很好的例子是密码块链接算法(CBC),传播密码块链接(PCBC),密码反馈和输出反馈。看看关于分组密码操作模式的维基百科页面;对于每种模式,右上方都有一个小方框,说明加密和解密过程是否可并行化:http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
通常,任何下一步依赖于前一步骤结果的算法都不能并行化,至少是有效的。你总是可以有多个线程处理它,但它没有多大用处,你必须等待上一步完成才能继续前进,所以你永远不会真正拥有真正的并行性。
肯定有其他几个例子,加密只是其中之一,也是我能想到的。
答案 1 :(得分:1)
交换两个数字的简单算法不能并行,实际上大多数基本算法都不能并行。因此,由这些简单算法构成的依赖步骤序列组成的任何算法都不能并行。