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?
I got around this (with my core i5 with 2 cores and 4 threads) by editing the “local” configuration for the parallel computing stuff:
Parallel->Manage Cluster ProfilesValidatethelocalprofile before changing anything.editand change theNumWorkersvariable to suit your needs.Then you can start
matlabpoollike this: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 ifparfor(or other parallel stuff) works for you or not.