Why doesn’t Mathematica automatically launch as many local subkernels as I expected?
Local subkernels launch automatically when either the first parallel function or the LaunchKernels[] function is evaluated.
By design, Mathematica automatically launches subkernels equal to the number of physical CPU cores. Mathematica does not detect logical CPU cores, such as those coming from hyperthreading technology. To override this setting, use the LaunchKernels[n] function, where n is an integer indicating the number of local subkernels to launch.
Get the number of subkernels available for parallel computations:
In[1]:= $KernelCount:
Out[1]= 8
Add 4 additional local subkernels:
There are 12 local subkernels available now:
In[3]:= $KernelCount
Out[3]= 12
Mathematica can never launch more subkernels than the number of available subkernel license seats. To look up the total number of available subkernel license seats you purchased, evaluate $MaxLicenseProcesses
from within a desktop Wolfram Language session.
If there are more CPU cores than subkernel license seats, then a warning message appears for each automatic subkernel that tries to launch beyond this limit. Enabling the “Limit by license availability” option avoids this.
If there are more CPU cores than subkernel license seats, then you may wish to purchase a Mathematica Core Extension license that provides more subkernel license seats.
Some license seats may be taken up by subkernels that did not shut down properly. Ending these processes returns the held license seats.