我有一个 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/