MATLAB: difference between Multithreading and Multicore
matlab, multithreading
Solution
I got around this (with my core i5 with 2 cores and 4 threads) by editing the "local" configuration for the parallel computing stuff:
- Go to `Parallel->Manage Cluster Profiles`
- Depending on you Matlab version, you'll need to `Validate` the `local` profile before changing anything.
- Click `edit` and change the `NumWorkers` variable to suit your needs.
Then you can start `matlabpool` like this:
matlabpool local
Note I have never gotten a speedup using `parfor`. Matlab's overhead has always outweighed the benefits. What I'm saying is: benchmark your code first, then decide if `parfor` (or other parallel stuff) works for you or not.
Problem
I have an i7-M620 processor that have 2 physical cores and 2 threads (multi-threaded CPU) per core (a total of 4 threads). When I use the MATLAB Parallel Computing Toolbox, I can only open 2 pools and not 4. Here is the code: ``` matlabpool(2) parfor i = 1:20 Test(i) = i^2; end matlabpool close ``` - Could someone explain why? - Am I doing multithreading or multicore computation here? - Is it possible to do both with MATLAB?