Multithreading 是否有一些算法不支持';不支持高效的并行实现?
这是我感兴趣的一个非常简单的研究问题。是否有一些算法的例子,或者只是一些可以有效地按顺序实现但不支持高效并行化的代码?当然有-许多算法由于其顺序性质而无法并行化。你有几个密码学的好例子 很好的例子是密码块链接算法(CBC)、传播密码块链接(PCBC)、密码反馈和输出反馈。看看维基百科页面上关于分组密码操作模式的内容;对于每种模式,右上角都有一个小框,说明加密和解密过程是否可并行: 一般来说,任何下一步依赖于前一步结果的算法都不能并行化,至少不能有效地并行化。您可以始终让多个线程处理它,但它没有多大用处,您必须等待上一步完成后才能继续,因此您永远不会真正拥有真正的并行性Multithreading 是否有一些算法不支持';不支持高效的并行实现?,multithreading,algorithm,parallel-processing,multiprocessing,Multithreading,Algorithm,Parallel Processing,Multiprocessing,这是我感兴趣的一个非常简单的研究问题。是否有一些算法的例子,或者只是一些可以有效地按顺序实现但不支持高效并行化的代码?当然有-许多算法由于其顺序性质而无法并行化。你有几个密码学的好例子 很好的例子是密码块链接算法(CBC)、传播密码块链接(PCBC)、密码反馈和输出反馈。看看维基百科页面上关于分组密码操作模式的内容;对于每种模式,右上角都有一个小框,说明加密和解密过程是否可并行: 一般来说,任何下一步依赖于前一步结果的算法都不能并行化,至少不能有效地并行化。您可以始终让多个线程处理它,但它没有多
当然还有其他几个例子,密码学只是其中之一,也是我能马上想到的一个。简单的算法因为交换两个数字不能并行,事实上大多数基本算法都不能并行。因此,任何由这些简单算法生成的相依步骤序列组成的算法都不能并行。这个问题似乎是离题的,因为它涉及的是一般的算法,而不是编程问题。不知道NC=p(即可能存在或不存在)P中的一些算法不在NC中,因此不能有效地并行化),如果这是您要问的(这是不清楚的),则在该推理中是非序列的。假设算法A“1.交换数字A和B;2.交换数字C和D”。由一个基本的非并行算法(您的示例)组成,但可以很容易地并行化。@Voo算法应该由一系列简单算法组成,这里的意思是2。应该依赖于1。例1。互换(A,B)2。交换(B,C)。是的,这就是我的观点:你不能并行化一系列的相关步骤,但是你当然可以并行化一个由不可并行化部分组成的算法。@Voo我的观点是,你不能并行化一系列相互依赖的不可并行化步骤。是的,我刚才指出,它的措辞与预期的意思不符。