Parallel processing is not able to use all my cores.

55 vues (au cours des 30 derniers jours)
Jeramy Dickerson
Jeramy Dickerson le 5 Déc 2016
Modifié(e) : Iman Aganj le 16 Mar 2022
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 commentaires
Edric Ellis
Edric Ellis le 6 Déc 2016
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 le 16 Mar 2022
Modifié(e) : Iman Aganj le 16 Mar 2022
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.

Connectez-vous pour commenter.

Réponses (3)

Iman Aganj
Iman Aganj le 16 Mar 2022
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 le 31 Jan 2018
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 commentaires
Sinan Islam
Sinan Islam le 25 Jan 2022
Modifié(e) : Sinan Islam le 25 Jan 2022
@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 le 25 Jan 2022
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.

Connectez-vous pour commenter.


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

Catégories

En savoir plus sur MATLAB Parallel Server dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by