Why does my Matlab 2014a only start 12 workers when I ask for more?

5 views (last 30 days)
First of all I'm running Matlab 2014a. I have access to multiple machines running 32 hardware cores each with 2 threads. I know that matlab might not be able to utilize the threads for 64 workers, but when I try to start a parallel pool using the 'local' profile with NumWorkers = 32, only 12 workers are spawned (verified by inspecting the process list with "top"). I've read that the limit on the number of local workers in previous versions was 12, but this should be removed in matlab 2014a according to the release notes. I have verified that the system indeed has 32 cores using lscpu giving me 32 physical cores each with 2 threads (it says 64 cpus).
Is anybody able to clarify whether I should be able to start 32 workers or not? The 'local' profile was set to 32 workers by default.

Accepted Answer

Edric Ellis
Edric Ellis on 3 Jun 2014
I think the problem here is that you either need to explicitly state when calling parpool how many workers you want, like so:
parpool('local', 32)
or, you need to change your parallel preferences to increase the "preferred pool size".
  4 Comments
Edric Ellis
Edric Ellis on 9 Jul 2014
Sorry I didn't reply - your other option is to do the following which completely bypasses preferences etc.:
c = parcluster('local');
c.NumWorkers = 32;
parpool(c, c.NumWorkers);

Sign in to comment.

More Answers (0)

Categories

Find more on File Operations 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!