matlabpool open n; doesn't work.

조회 수: 9 (최근 30일)
Martin
Martin 2014년 5월 7일
댓글: Bruno Silva 2020년 1월 17일
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!

채택된 답변

Niklas Nylén
Niklas Nylén 2014년 5월 7일
편집: Niklas Nylén 2014년 5월 7일
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'))

추가 답변 (2개)

Matt J
Matt J 2014년 5월 7일
편집: Matt J 2014년 5월 7일
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
Haseeb Hassan
Haseeb Hassan 2018년 10월 7일
Thank you Matt for your useful hint.
Bruno Silva
Bruno Silva 2020년 1월 17일
Thanks!

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


Malshikho
Malshikho 2018년 5월 25일
Unfortunately I have Matlab R2010b
  댓글 수: 1
Steven Lord
Steven Lord 2018년 5월 25일
Then use matlabpool using the syntax described in the accepted answer by Niklas Nylén.

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

카테고리

Help CenterFile Exchange에서 Parallel Computing Fundamentals에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by