Matlab 向工人分发代码行

Matlab 向工人分发代码行,matlab,parallel-processing,Matlab,Parallel Processing,假设我有以下代码: a = 5; x = function1(a); y = function2(a); 我想做的是将function1的计算分配给一个worker,将function2的计算分配给另一个worker,这样我就可以并行地计算它们。每个函数都必须以串行方式计算,因此我不能在语句中使用spmd。还有其他的可能性吗 你可以这样做: a = 5; xfut = parfeval(@function1, 1, a); % second arg is number of outputs f

假设我有以下代码:

a = 5;
x = function1(a);
y = function2(a);
我想做的是将function1的计算分配给一个worker,将function2的计算分配给另一个worker,这样我就可以并行地计算它们。每个函数都必须以串行方式计算,因此我不能在语句中使用spmd。还有其他的可能性吗

你可以这样做:

a = 5;
xfut = parfeval(@function1, 1, a); % second arg is number of outputs from function1
yfut = parfeval(@function2, 1, a);

您可以使用
xfut
yfut
上的
fetchOutputs
方法获取函数的输出。您可以使用
wait
方法等待一个或两个函数完成。

我的第一个想法是在函数句柄的单元格数组上使用parfor,fh={@function1,@function2},但我想知道parfor是否会接受这一点?如果每个函数都必须以串行方式计算,那么就不能并行执行它们。如果不能在MATLAB中的SPMD块中运行,那么就不能在MATLAB中并行运行。因此,函数1必须串行运行,函数2必须串行运行。但它们彼此不依赖,因此函数1的计算可以与函数2并行。这也是你回答的问题吗,迈克尔J?