Very interesting topic. I then decided to contribute to it.
In fact, I have quite the same issue, using the R2017a trial version.
I know Matlab well, and was curious to test the PCT on a dual mobo computer.
At this point, I'm very disappointed.
To sum up:
- I have a bi-xeon computer (2 xeon 2686 V4, 18/36 cores => total = 36 physical/72 logical cores) - Using PCT with 1 or 2 xeons(removing one..) at max usage, performances are the same.. - Using one xeon, I am able to run at 100% usage with 36 logical cores - Using two xeons, I am not able to run more than 58-60% (8-10% due to the 2nd cpu at idle, see 2nd print screen below) cpu usage with 36 or more logical cores (I try until 50 for instance)=> I got the same performances between 36 and 50 cores...(I did no try above 50 because I lack memory and I know this is not the issue) - In the case of the 2 xeons, when using for instance 50 cores, it seems that at the beginning (when starting the parallel pool and shortly after launching the parfor), more than one CPU is really used. But then, 30sec (average) after running the code, only one processor is really used by Matlab (always the CPU1) and at 100%. It is like Matlab decide to use only 1CPU (I think this is a central point). This is by the way another issue because the same CPU is always used in this case is and temp are high arround 90-100% usage (decreasing CPU lifetime..well anyway...). Moreover in this case, I am 100% sure that the 2nd CPU is not used. Too bad.. - I have also try running multiple instances => same issue.. - I did not try using 2 VM for instance - I did not try testing MJS (and I cannot on the trial because I need the DCS toolbox). I am pretty confident that this will not solve the issue because I know well how MJS work - Off course I maded some benchmarks to compare 1 and 2 cpu cases. Again, performance results are almost the same!
My guess: for me (and for the moment), Matlab is not able to deal with the 2 cpu case at 100% usage (without considering virtualization which I've not yet tested). Since using only one cpu there is no issue, I think that hypertreading is not the bad guy because using 1 cpu one could easily overcome this issue (using maxnumcompthreads=nbr logical cores).
By the way, if I set up another computer using the 2nd xeon, I know that theses 2 computer will give me the power I want...but I don't want to spend more money and this is the reason why dual mobo are maded for...
What's more, I know it is not a CPU issue because with others softwares I am able to use both CPU's at 100% usage (in fact I usually not go above 90/95% because it is usually proved inefficient...well known debate!), see for instance a cinebenchR15 test below (God please, I'd like to see the same CPU usage using Matlab PCT with 2 xeons!!)
@Matlab specialists:Is there a way to fix this issue?
You will find below some print screen.
1. Using one CPU
2. Using two CPU (same case for each case with parallel pool = 36 to 50 workers)
3. Cinebench R15 (able to run 2 CPU at 100%...)