1
$\begingroup$

I have a machine with 112 CPU cores, but $ProcessorCount reports only 32 cores. Windows 11 sees all 112 cores, and other applications are able to use them, but Mathematica only sees 32. Any idea how to address this? CPUs are dual 56-core Xeons.

$\endgroup$
5
  • 4
    $\begingroup$ You might check your license configuration. You might need a Mathematica Core Extension license. $\endgroup$ Commented Nov 16, 2023 at 21:25
  • 1
    $\begingroup$ See: support.wolfram.com/27860?src=mathematica $\endgroup$ Commented Nov 16, 2023 at 21:26
  • 1
    $\begingroup$ Good thinking. Unfortunately, this machine is on a network license that allows for unlimited kernels. Other machines on the license can use more than 32. In fact, I can manually launch 112 kernels, but it still sees and uses only 32 processor cores. $\endgroup$
    – Zoid
    Commented Nov 16, 2023 at 21:50
  • $\begingroup$ I wonder if something got messed up in your settings. Since you're on Windows, using a graphical interface, I suggest you open the settings panel and check the parallel kernels setting. There you will be able to see how many kernels are configured to be used by default, and there's also a button to reset settings. $\endgroup$
    – Szabolcs
    Commented Apr 15 at 11:47
  • $\begingroup$ You can also manually override the number of subkernels to launch by default, so that'd be a better workaround than LaunchKernels[112]. $\endgroup$
    – Szabolcs
    Commented Apr 15 at 11:48

2 Answers 2

1
$\begingroup$

14.0 should report the correct number of physical cores on Windows.

$\endgroup$
3
  • $\begingroup$ This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. - From Review $\endgroup$
    – creidhne
    Commented Apr 15 at 20:31
  • 1
    $\begingroup$ That is the answer to the question. 13.3 and earlier cannot properly handle their configuration. $\endgroup$
    – ihojnicki
    Commented Apr 15 at 21:07
  • $\begingroup$ My discussions with Wolfram support back this up. They weren't able to solve the problem before but suggested it would be fixed in 14.0. I got tired of waiting and switched to Linux in the meantime, but I do believe this is the answer. $\endgroup$
    – Zoid
    Commented Apr 16 at 13:53
0
$\begingroup$

Mathematica counts physical cores only, not the multiply threaded ones reported by the task manager (the number, that in real time does not count really for a single user machines computing tasks in the second/minute range without pausing).

Type ResourceMonitor into the search Box or open it in TaskManager (Ctrl+Alt+Del).

In Menu/Help/SystemInformation/Parallel

you see, how many physical kernels are registered.

$\endgroup$
5
  • $\begingroup$ As stated in my original post, I have 112 physical CPU cores. It would be 224 if we were counting hyperthreading. $ProcessorCount reports the same information as in SystemInformation/Parallel. Mathematica only sees 32 cores, which is not even a logical fraction of 112, hence why it makes no sense to me. $\endgroup$
    – Zoid
    Commented Nov 17, 2023 at 13:21
  • $\begingroup$ Windows reports threaded numbers as I wrote. The physical number for Mathematica is a license issue. google.com/…. So its a question for your system provider, if you are using a net license, that typically shares the the total number purchased for the user pool, currently online. We used to go online at late night for maximal access. $\endgroup$
    – Roland F
    Commented Nov 17, 2023 at 14:51
  • $\begingroup$ The license this machine is on is unlimited, and $MaxLicenseProcesses confirms that. So that is not the source of the 32-core limitation. $\endgroup$
    – Zoid
    Commented Nov 17, 2023 at 19:25
  • $\begingroup$ Does not make any sense, physical core is just an implementation detail: for all purposes there are two or 4 cores in each physical core. $\endgroup$ Commented Dec 17, 2023 at 19:45
  • $\begingroup$ @Zoid, the kernel doesn't understand processor groups on Windows. As such, Windows will cap the logical processor count for the process to 64. Seeing that $ProcessorCount ignores SMT, that is how the result can end up as 32. $\endgroup$
    – ihojnicki
    Commented Dec 18, 2023 at 18:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.