Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 是否有一些算法不支持';不支持高效的并行实现?_Multithreading_Algorithm_Parallel Processing_Multiprocessing - Fatal编程技术网

Multithreading 是否有一些算法不支持';不支持高效的并行实现?

Multithreading 是否有一些算法不支持';不支持高效的并行实现?,multithreading,algorithm,parallel-processing,multiprocessing,Multithreading,Algorithm,Parallel Processing,Multiprocessing,这是我感兴趣的一个非常简单的研究问题。是否有一些算法的例子,或者只是一些可以有效地按顺序实现但不支持高效并行化的代码?当然有-许多算法由于其顺序性质而无法并行化。你有几个密码学的好例子 很好的例子是密码块链接算法(CBC)、传播密码块链接(PCBC)、密码反馈和输出反馈。看看维基百科页面上关于分组密码操作模式的内容;对于每种模式,右上角都有一个小框,说明加密和解密过程是否可并行: 一般来说,任何下一步依赖于前一步结果的算法都不能并行化,至少不能有效地并行化。您可以始终让多个线程处理它,但它没有多

这是我感兴趣的一个非常简单的研究问题。是否有一些算法的例子,或者只是一些可以有效地按顺序实现但不支持高效并行化的代码?

当然有-许多算法由于其顺序性质而无法并行化。你有几个密码学的好例子

很好的例子是密码块链接算法(CBC)、传播密码块链接(PCBC)、密码反馈和输出反馈。看看维基百科页面上关于分组密码操作模式的内容;对于每种模式,右上角都有一个小框,说明加密和解密过程是否可并行:

一般来说,任何下一步依赖于前一步结果的算法都不能并行化,至少不能有效地并行化。您可以始终让多个线程处理它,但它没有多大用处,您必须等待上一步完成后才能继续,因此您永远不会真正拥有真正的并行性


当然还有其他几个例子,密码学只是其中之一,也是我能马上想到的一个。

简单的算法因为交换两个数字不能并行,事实上大多数基本算法都不能并行。因此,任何由这些简单算法生成的相依步骤序列组成的算法都不能并行。

这个问题似乎是离题的,因为它涉及的是一般的算法,而不是编程问题。不知道NC=p(即可能存在或不存在)P中的一些算法不在NC中,因此不能有效地并行化),如果这是您要问的(这是不清楚的),则在该推理中是非序列的。假设算法A“1.交换数字A和B;2.交换数字C和D”。由一个基本的非并行算法(您的示例)组成,但可以很容易地并行化。@Voo算法应该由一系列简单算法组成,这里的意思是2。应该依赖于1。例1。互换(A,B)2。交换(B,C)。是的,这就是我的观点:你不能并行化一系列的相关步骤,但是你当然可以并行化一个由不可并行化部分组成的算法。@Voo我的观点是,你不能并行化一系列相互依赖的不可并行化步骤。是的,我刚才指出,它的措辞与预期的意思不符。