MATLAB: Hyperthreading & Number of Cores. Parallel computing toolbox

parpool

I am using:
MATLAB Version: 8.3.0.532 (R2014a)
MATLAB License Number:
Operating System: Microsoft Windows 8.1 Version 6.3 (Build 9600)
Java Version: Java 1.7.0_11-b21 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
----------------------------------------------------------------------------------------------------
MATLAB Version 8.3 (R2014a)
Parallel Computing Toolbox Version 6.4 (R2014a)
I check my number of cores;
feature('numcores')
MATLAB detected: 4 physical cores.
MATLAB detected: 8 logical cores.
MATLAB was assigned: 8 logical cores by the OS.
MATLAB is using: 4 logical cores.
MATLAB is not using all logical cores because hyper-threading is enabled.
ans =
4
I also type;
>> p = parpool(8)
p.NumWorkers
Error using parpool (line 99)
You requested a minimum of 8 workers, but the cluster "local" has the NumWorkers property set to allow a maximum of 4 workers. To run a communicating job on
more workers than this (up to a maximum of 512 for the Local cluster), increase the value of the NumWorkers property for the cluster. The default value of
NumWorkers for a Local cluster is the number of cores on the local machine.
How can I allocate all 8 logical cores for matlab to use when running parfor.m for example? i.e. how can I make MATLAB use/ not use hyperthreading?
thanks

Best Answer

Under the Parallel Menu, choose "Manage Cluster Profiles...". This will pull up the Cluster Profile Manager window. Choose the "local" Cluster Profile, click the "Edit" button, and change the value for the NumWorkers property to 8 (or more). That field should be the second one from the top of the window, I think.