Parallel Optimization: Loop or Finite-Difference Gradient

According to the documentation on parallel optimization, one cannot use the 'UseParallel' option inside a 'parfor' loop.
I am optimizing a very messy likelihood function over 32 parameters w/ fmincon. Unfortunately I run the optimization around 1,000 times each at a different initial point.
Would it be more computationally efficient to parallelize the finite-difference gradient calculation, or parallelize the loop of 1,000 calls to fmincon.
Thanks!
PS I have 25 cores available to me.

1 Comment

Is what you are doing really a global optimization? If so then the tools such as MultiStart in Global Optimization Toolbox would seem appropriate. Or patternsearch.

Sign in to comment.

Answers (1)

It is very difficult to know which way would work better. Can you test a small set of representative points and see which way is faster?
Sorry for the lack of info, but parallel processing is hard to predict, as there are a lot of things that go into its performance, or lack thereof.
Alan Weiss
MATLAB mathematical toolbox documentation

Products

Asked:

on 20 Jan 2017

Answered:

on 23 Jan 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!