maxNumCompThreads() is limited to 1 on a multi-CPU Linux system

60 Ansichten (letzte 30 Tage)
Daniel
Daniel am 24 Nov. 2025 um 14:31
Bearbeitet: Daniel am 3 Dez. 2025 um 7:26
Issue:
>> maxNumCompThreads()
ans =
1
Steps taken:
1) Fresh network install of R2024b and R2025b in default folder using sudo
2) All available toolboxes (including Parallel Computing Toolbox) were installed.
3) Other non-MATLAB software using multithreading runs fine and can utilize all available CPUs
Question
Has anybody experienced similar issue before please? The lscpu shows "Core(s) per socket: 1" with 24 sockets available. "cat /proc/cpuinfo | grep "physical id" outputs 24 lines all pointing to physical ID: 0. Could it be because of the one-core-per-socket split?
Importantly, other multiprocessing tools, for instance python-based torch implementations, or tools like MRtrix, all recognize 24 cores without any problems.
I will appreciate any help on this.
Many thanks in advance!
Supporting information
System specifications
% Operating system: Debian GNU/Linux 12 (bookworm) x86_64
% Kernel: 6.1.0-41-amd64
CPU specifications (given by lscpu):
% Architecture: x86_64
% CPU op-mode(s): 32-bit, 64-bit
% Address sizes: 46 bits physical, 48 bits virtual
% Byte Order: Little Endian
% CPU(s): 24
% On-line CPU(s) list: 0-23
% Vendor ID: GenuineIntel
% Model name: Intel(R) Core(TM) Ultra 9 285
% CPU family: 6
% Model: 198
% Thread(s) per core: 1
% Core(s) per socket: 1
% Socket(s): 24
% Stepping: 2
% CPU(s) scaling MHz: 19%
% CPU max MHz: 7000.0000
% CPU min MHz: 800.0000
% BogoMIPS: 4992.00
"cat /proc/cpuinfo | grep "physical id"
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
physical id : 0
  5 Kommentare
Walter Roberson
Walter Roberson am 25 Nov. 2025 um 20:41
Hmmm....
There is the possibility that somehow the process pool settings are messed up.
Daniel
Daniel am 26 Nov. 2025 um 14:40
Thank you Walter for your help, your input guided me into the right direction and looking deeper into the local parpool cluster.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Daniel
Daniel am 26 Nov. 2025 um 14:35
Bearbeitet: Daniel am 3 Dez. 2025 um 7:26
I think I solved it. The solution involved:
1) adjust the number of workers within the local cluster
c = parcluster('local');
c.NumWorkers = 24;
2) save the adjusted cluster profile
saveProfile(c)
3) stop parpool and restart
delete(gcp('nocreate'));
parpool
The NumWorkers within the parcluster('local') was set to 1 by default. Same for the number of threads. With the procedure above, I managed to spawn the desired amount of parallel workers.
*EDIT: removing an unnecessary step from the solution.

Weitere Antworten (0)

Kategorien

Mehr zu Introduction to Installation and Licensing finden Sie in Help Center und File Exchange

Produkte


Version

R2025b

Community Treasure Hunt

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

Start Hunting!

Translated by