fminbnd in parallel: no gain

조회 수: 3 (최근 30일)
martin
martin 2014년 1월 23일
편집: Matt J 2014년 1월 24일
I want to minimize a function using fminbnd on a 32-core Linux machine (running Ubuntu 13.10+matlab2013a). I do the following:
>>matlabpool
Starting matlabpool using the 'local' profile ...
connected to 12 workers
>>optim_fminbnd=optimset('fminbnd');
>>tic
>>disp('With parallelization:')
With parallelization:
>> fminbnd(@localstrul_valuespectral,0,359,optimset(optim_fminbnd,'UseParallel','a
lways'))
ans =
221.8743
>>toc
Elapsed time is 7.124580 seconds.
>>tic
>>disp('Without parallelization:')
Without parallelization:
>>fminbnd(@localstrul_valuespectral,0,359,optimset(optim_fminbnd,'UseParallel','ne
ver'))
ans =
221.8743
>>toc
Elapsed time is 7.785863 seconds
that is to say there is no gain in speed (sometimes the non-parallel version is marginally faster). Do I set the parameters wrong?

채택된 답변

Alan Weiss
Alan Weiss 2014년 1월 24일
fminbnd is a serial algorithm. There is no gain possible using parallel processing. In fact, look at the options for fminbnd, and you see that fminbnd does not use the UseParallel option.
Alan Weiss
MATLAB mathematical toolbox documentation
  댓글 수: 1
Matt J
Matt J 2014년 1월 24일
편집: Matt J 2014년 1월 24일
However, it might be possible to use parallel operations inside the objective function localstrul_valuespectral to speed up its evluations.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by