Can I use parfor and CVX togther

34 views (last 30 days)
Ge Shi
Ge Shi on 15 Feb 2021
Commented: Ge Shi on 18 Feb 2021
Hi, I tried to use CVX toolbox inside the parfor loop for solving my optimization problems with different parameters, and the structure of my code is
parfor index_time=1:times
invoke function { cvx_begin
optimization problem
cvx_end }
end
Unfortunately, I received a warning as follows,
Warning: A non-empty CVX problem already exists in this scope.
It is being overwritten.
In cvxprob (line 28)
In cvx_begin (line 41)
In SSR (line 11)
In parallel_function>make_general_channel/channel_general (line 923)
In remoteParallelFunction (line 46)
The above warning showed the optimizaiton problem was overwritten. However, a lot of people mentioned cvx can work with parfor on the internet. I am so confused.

Accepted Answer

Edric Ellis
Edric Ellis on 16 Feb 2021
I'm not familiar with the CVX toolbox. However, a lot of parfor problems can be remedied by pushing the body of the loop into a separate function, a bit like this:
parfor i = 1:N
out(i) = doCvxStuff(i);
end
function out = doCvxStuff(i)
% Something like whatever CVX needs...
invoke function { cvx_begin
optimization problem
cvx_end }
end
  1 Comment
Ge Shi
Ge Shi on 18 Feb 2021
Thanks, Eric, I did the way you recommended, and I still receive the warning above.

Sign in to comment.

More Answers (0)

Categories

Find more on Problem-Based Optimization Setup 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!

Translated by