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?
Best Answer