How do MATLAB workers/PC cores divide the work in a parallelized optimization inside a parfor loop?
Ältere Kommentare anzeigen
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?
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Parallel Computing Toolbox finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!