I have a code which works really good in a parallelized way (with ParallelTable). I have a machine with 1 processor, 4 physical/8 logical cores, there 100% of the CPU is used for calculations: enter image description here

I have another machine with 22 physical/44 logical cores. It also worked 100% there (i.e. it used 44 cores). Today I got another processor for that machine, so it has now 44/88 cores. But surprisingly, now it only uses 44 cores: enter image description here

Of course, I started the 88 kernels manually:

enter image description here

For the reasons above, I don't think it's a problem with multithreading (as explained here), but that Mathematica does can not use two processors simultaneously. Unfortunately, I have not found any relevant information about this.

I will be very happy for every possible suggestion which leads to a solution (or workaround).

Edit - more details on the system:

The computer is a HP Z840 Workstation with 2 Intel Xeon E5-2699v4 CPUs with 2x22 physical/2x44 logical cores (see in the link, Boost your HP Workstation performance when you need to by adding a second processor to your existing single-processor system). Windows as well as several benchmarking programs detect and use the two Processors simultaneously.

I use Windows 10, and Mathematica 11.0.

Edit2 (more details):

When executing ParallelEvaluate[$KernelID], it gives me a list from 1-88. When I execute $ProcessorCount, it gives me 22.

Edit3 (Parallelize with different Method):

Suggested in the discussion by rhermans, i tried different Methods, all from the documentation:

Parallelize[Map[Labeled[Framed[#], $KernelID] &, Range[10]], Method -> "FinestGrained"]

Parallelize[Map[Labeled[Framed[#], $KernelID] &, Range[10]], Method -> "CoarsestGrained"]

Parallelize[Table[Labeled[Framed[i], $KernelID], {i, 12}], Method -> "EvaluationsPerKernel" -> 2]

Parallelize[Table[Labeled[Framed[i], $KernelID], {i, 18}], Method -> "ItemsPerEvaluation" -> 5]

Parallelize[Table[Labeled[Framed[i], $KernelID], {i, 20}], Method -> Automatic]

Parallelize[Select[Range[4000, 5000], PrimeQ[2^# - 1] &], Method -> "FinestGrained"]

All of them have the same behaviour as stated above: only 44 out of 88 cores are running. Furthermore, the 44 cores stay at high (50-70%) CPU use, even after they finished the evaluation.

  • 1
    $\begingroup$ Comments are not for extended discussion; this conversation has been moved to chat. $\endgroup$
    – Kuba
    Commented Jul 12, 2017 at 18:25
  • $\begingroup$ What happens if you overwrite $ProcessorCount = 44? $\endgroup$
    – user21
    Commented Jul 31, 2017 at 14:21

1 Answer 1


The problem of using only one of two processors has been solved in Mathematica 11.1.

task manager screen shot

The problem, that all cores stay active after finishing the parallel execution remains.

  • $\begingroup$ Can anyone speak to if this (or any dual processor) issues remain with Mathematica 12.3? $\endgroup$
    – Ghersic
    Commented Sep 25, 2021 at 5:34
  • 1
    $\begingroup$ I used Mathematica 12 with a dual processor, and ParallelTable worked fine, i didnt do many other parallelizations. If you have concrete questions, let me know. $\endgroup$ Commented Sep 25, 2021 at 23:56
  • 1
    $\begingroup$ That's great. Sounds like the "remaining active after finishing the parallel execution" issue has been resolved, then. $\endgroup$
    – Ghersic
    Commented Sep 29, 2021 at 4:33

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.