MATLAB Answers


Can parallel computing toolbox not parallellise over multiple CPUs?

Asked by Thomas Arildsen on 10 Jul 2019
Latest activity Commented on by Thomas Arildsen on 11 Jul 2019
I am programming a parfor loop to run on a computer with 2 CPUs with 12 cores each. Despite several different attempts to initialise a parpool with 24 workers, I get pools with maximum 12 workers. I have Parallel Computing Toolbox but not Distributed Computing Server.
Is there a way to parallellise over all 24 cores with PCT? Is 12 workers perhaps an upper limit in PCT, or is it because two separate CPUs in one computer requires DCS?


Sign in to comment.

1 Answer

Answer by Matt J
on 10 Jul 2019
Edited by Matt J
on 10 Jul 2019


I have R2018b, so I guess this is not the problem in my case.
You can change the properties in the Local scheduler to run whatever number of workers you wish.
Parallel > Create and Manage Clusters > local > Edit, then set "Number of workers to start on your local machine" to 24.
If you always want to open the pool with 24, also set the preference to do so - Preferences > Parallel Computing Toolbox > Preferred number of workers in a parallel pool.
One caveat to understand is to check the number of cores vs. number of threads supported by your CPUs. The operating system will report all cores as if they are "real", but processing only happens on the cores. So if you have two CPUs with 6 cores / 12 threads on each, upping the number of workers is not likely to increase your performance, as you will be bottlenecked waiting on the cores.
If you Google your processor you can find this out, the processor manufacurers publish them in the CPU specs.
I figured it out now: It was a setting for the SLURM job scheduler on the computer that prevented Matlab from using more cores.

Sign in to comment.