MATLAB:函数进行 4 次递归调用。我有一个 4 核处理器。我可以并行化吗?

标签 matlab recursion parallel-processing

我有一个 4 核处理器并有一个递归 Matlab 函数,该函数进行四次递归调用:

function J = do_stuff(I)

if some_condition(I)
    J = blah_blah(I);
else
    [I1,I2,I3,I4] = split4(I);

    J1 = do_stuff(I1);
    J2 = do_stuff(I2);
    J3 = do_stuff(I3);
    J4 = do_stuff(I4);

    J = join4(J1,J2,J3,J4);
end

有没有办法让我将 do_stuff(I1) 分配给核心 1,将 do_stuff(I2) 分配给核心 2,依此类推直到核心 4?

最佳答案

在基本的 Matlab 中没有办法做到这一点,但是 Parallel Computing Toolbox提供此(和其他)功能。您将创建一个数组 [I1,I2,I3,I4],然后使用并行映射将 do_suff 映射到该数组。

关于MATLAB:函数进行 4 次递归调用。我有一个 4 核处理器。我可以并行化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458127/

相关文章:

matlab - 将级联分类器从 Matlab 导入到 OpenCV 3.0

python - 计算递归调用中的路径

c - C 中的递归函数

c++ - 用于嵌套 for 循环的 OpenMP?

java - 为什么顺序流和并行流的归约结果不同?

c++ - Matlab 到 C++ 的转换

Matlab 对于类型 'C' 的输入参数未定义函数或方法 'double'

batch-file - 达到最大 setlocal 递归级别 - setlocal

r - mclapply 但不是 lapply 停止 R

matlab - 在 matlab 中更改电影尺寸