Parallel processing is not able to use all my cores.

30 次查看(过去 30 天)
I have dual processors (2x Intel® Xeon® Processor E5-2699 v3), each with 18 physical cores (hyperthreading is disabled) for a total of 36 physical cores. For some reason I cannot execute "parpool(36)". I can only run "parpool(18)". Is there a way to fully utilize both processors? I am running R2016b on Redhat 6. Any ideas?
  2 个评论
Edric Ellis
Edric Ellis 2016-12-6
Are the two processors running a single instance of the OS? (If not, then you'll need MATLAB Distributed Computing Server). What does feature('numcores') return? Did you try using the cluster profile manager to manually set the number of workers to 36?
Iman Aganj
Iman Aganj 2022-3-16
编辑:Iman Aganj 2022-3-16
Hello. Any update on this? I am running R2022a on a Windows Server 2022 machine with 96 physical cores (192 logical cores). According to
feature('numcores')
the OS is restricting Matlab to only 48 cores, which I think is because Matlab is only using a single processor group. How can I use 96 cores (e.g. in a parpool) on this machine? There is a bug report here, but the workaround didn't resolve the issue.
Thanks.
A quick update: Processor Group Extender feature of Process Lasso fixed the issue. With its help, Matlab can now use more than a single processor group and practically all the cores in parpool.

请先登录,再进行评论。

回答(3 个)

Iman Aganj
Iman Aganj 2022-3-16
A quick update: Processor Group Extender feature of Process Lasso fixed the issue. With its help, Matlab can now use more than a single processor group and practically all the cores in parpool.

Alexander Eiermann
Alexander Eiermann 2018-1-31
I don't think Sean's answer is accurate. I just set up a rig with dual Xeon E5-2630s on separate motherboards for a total of 20 physical and 40 logical cores. I had absolutely no problem creating parallel profiles with more than 20 workers. Your issue probably stems from the fact hyperthreading is disabled on your system. Make sure it's enabled in the BIOS. Once you've done that, also make sure that "preferred number of workers in a parallel pool" is set to 36 under Parallel Preferences.
  3 个评论
Sinan Islam
Sinan Islam 2022-1-25
编辑:Sinan Islam 2022-1-25
@Walter Roberson Windows 10 Pro for Workstations (or Windows 11 Pro for Workstations) can operate a single OS instance on multiple CPUs. I wonder if this is relevant to what you are talking about, and perhaps it would allow MATLAB to work on multiple CPUs on different motherboards on a single machine.
Walter Roberson
Walter Roberson 2022-1-25
Windows is interesting because it has a limit of 64 logical cores in one group; https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups . I seem to recall seeing some remarks along the way that on Windows, MATLAB's parallel groups are limited by this and so more than one parallel group is required to work with more than 64 logical cores.

请先登录,再进行评论。


Sean de Wolski
Sean de Wolski 2016-12-5
You'll need MATLAB Distributed computing server in order to take advantage of all of the cores since they are controlled by separate motherboards.

类别

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