Let's say we have two CPUs, One is Quad Core 3.2 Ghz with 4 Cores, and We have a Dual Core 3.2 Ghz with 2 Cores with 2 threads in each Core (Hyper-Threading). My assumption as a programmer will be, the 4 cores 4 threads should perform faster than 2 cores 4 threads since the second CPU needs to switch between threads in order to emulate 4 cores while the first one doesn't need to perform such switching as each core can perform independently and individually.
I want to confirm that my assumption is true, if not please explain why one is better than the other.
Answer
I do believe thats true - since hyper threading does share some elements - specifically the main execution resources, you'll be able to run 4 full threads at once, rather than waiting for those resources to be freed up.
The point of HT is to get better performance with a smaller use of die area - your quad core would generally be a bigger chip - say almost twice as large, than a non HT dual core chip, while a HT dual core chip would be about 5% larger. The Quad core could see up to twice the speed under the right work load (though, unlikely since you probably won't be running 4 threads at full capacity in most cases), while the dual core HT processor would see 15-30% better performance (according to wikipedia) than a dual core non HT processor.
More actual cores is usually better.
Comments
Post a Comment