physical vs. logical core allocation for Matlab in slurm
4 views (last 30 days)
I'm a user on a slurm cluster which is configured to consider each physical core to have two CPUs for allocation (via hyperthreading). Matlab generates up to one thread per physical core, so would it be appropriate for me to request two CPUs per task/parpool worker, even though I'll only be generating half that number of threads? I think that would be against the cluster policy, but it seems like it would be in my own best interest, and not wasting resources if Matlab is fully loading the cores.
Siddharth Sundar on 15 Oct 2014
For optimal performance, I would say that you should have one worker per physical core. Even though you have hyperthreading enabled, the number of physical cores still remains the same (one) while the number of logical cores is now two (in your case). Therefore, there would not be too much of an improvement in performance even if you were to use as many workers as the number of logical cores, because the number of physical cores still remains constant.