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

Sam*_*amH 4 parallel-processing recursion matlab

我有一个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
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*ark 6

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