为什么递归算法无法有效并行化?

时间:2017-11-08 15:58:21

标签: recursion parallel-processing mpi openmp

将具有递归的顺序代码转换为用openmp,CUDA或MPI编写的等效并行代码非常困难。 为什么会这样?

1 个答案:

答案 0 :(得分:-2)

如果一段代码被编写为递归算法,那么在每个递归级别执行的计算很可能取决于下一个的结果。这意味着难以并行地从不同的递归步骤进行计算。

另一种思考方式是想象将递归展平为迭代(参见例如Can every recursion be converted into iteration?)。递归算法可能会生成扁平化版本,其中每次迭代都依赖于其他迭代的结果,从而难以并行执行迭代。