matlabpool open n; doesn't work.

12 views (last 30 days)
Martin
Martin on 7 May 2014
Commented: Bruno Silva on 17 Jan 2020
Hi,
I'd like to open matlabpool with a variable number of cores, to use the maximum number of cores available. So n would equal features('numCores') here.
But matlabpool open n, matlabpool open features('numCores'), matlabpool open maxNumCompThreads don't work here. matlabpool open seems to accept only numbers and not variables.
I could do something stupid like
if features('numCores') == 4
matlabpool open 4;
elseif features('numCores') == 2
matlabpool open 2;
end
but I'd like to know if something more elegant exists.
Thanks!

Accepted Answer

Niklas Nylén
Niklas Nylén on 7 May 2014
Edited: Niklas Nylén on 7 May 2014
This is because writing arguments like this:
matlabpool open 2
is the same as passing the strings 'open' and '2' to the matlabpool function, i.e. the equivalent to
matlabpool('open','2')
What you can do is to call matlabpool like this:
matlabpool('open', num2str(features('numCores')))
Possibly you can also pass the number of cores directly, but since I do not have parallell computing toolbox I can't test it, like so:
matlabpool('open', features('numCores'))

More Answers (2)

Matt J
Matt J on 7 May 2014
Edited: Matt J on 7 May 2014
If you have R2013b or later, you shouldn't be using matlabpool . You should be using parpool , which does take a variable as input directly,
parpool(n)
  3 Comments
Haseeb Hassan
Haseeb Hassan on 7 Oct 2018
Thank you Matt for your useful hint.

Sign in to comment.


Malshikho
Malshikho on 25 May 2018
Unfortunately I have Matlab R2010b
  1 Comment
Steven Lord
Steven Lord on 25 May 2018
Then use matlabpool using the syntax described in the accepted answer by Niklas Nylén.

Sign in to comment.

Categories

Find more on Parallel Computing Fundamentals 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!