How do MATLAB workers/PC cores divide the work in a parallelized optimization inside a parfor loop?
Show older comments
For example:
parfor i = 1:20
options = optimoptions('ga','UseParallel',true,'UseVectorized',false);
x = gamultiobj(ObjectiveFunction,[],options);
end
Let's say there are 10 workers, and we are running the optimization algorithm with parallelization within a parallelized parfor loop.
Although my sample is not large, I have noticed that this is faster than using a simple for loop.
According to MATLAB docs, a parfor inside a parfor does not work. Yet this combination (which in the end is a parfor inside a parfor, I guess) does work.
Thus, my questions are:
- How do workers divide the work? I notice that the first 10 loop cases are started at the same time, but do the workers then stop their loop iteration and help out whichever started the gamultiobj first?
- Assuming "n" workers, do the parfor and for approaches deliver the same performance when num of cases >> n?
Accepted Answer
More Answers (0)
Categories
Find more on Parallel Computing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!