MATLAB: Does the Matlab 2014a only start 12 workers when I ask for more

numworkersparallel

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.

Best Answer

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".