MATLAB Answers

How to distinctly assign job and get the result of each worker using "parfor"?

1 view (last 30 days)
Hello,
I'm using parallel computing toolbox in order to parallelize my computation. there is a need for assigning an identical job with different data to each worker and after the computation of workers is done, I need to distinctly get each woker's result in the client process and use each of them for another purpose. how can I do this?!
thanks

Accepted Answer

Edric Ellis
Edric Ellis on 7 May 2020
This sounds more like a job for spmd . Read more about that here: https://www.mathworks.com/help/parallel-computing/spmd.html . Here's an extremely simple example:
spmd
myOutput = 2 * labindex; % labindex has a different value on each worker
end
myOutput{3} % gets the value from the 3rd worker

  4 Comments

Show 1 older comment
Edric Ellis
Edric Ellis on 7 May 2020
Do you mean something like this perhaps?
spmd
data = magic(labindex);
myOutput = sum(data);
end
Bill Masters
Bill Masters on 7 May 2020
suppose that I have 4 workers and 4 input data as well,
conceptually I need the work be done as below, but I don't know how to organize it:
spmd
myOutput=func(data1,data2,data3,data4);
%func is a function defined before, to be done seperately
% by each worker with their own data in parallel
end
myOutput{1}
myOutput{2}
...

Sign in to comment.

More Answers (0)


Translated by