I understand the concept of multi-core processors and something about hyperthreading within the cores. I also understand parallel processing very well. What I don't know is how fast the processor can simultaneously run processes...
Here's an example:
You have one quad-core processor with no hyper-threading.
The processor is 3000 MHz
So, let's say, for simplicity, that you have ONLY 4 threads running at one (with an OS like Windows, that'll never happen). Also, let's assume that these are completely independent threads that don't depend on the results of the other threads and are using different areas of memory.
My question: Are you, in effect, achieving what a 12 GHz, single thread, processor can do? (if you wrote a single-thread program that accomplishes what the four threads were doing without any overhead).
Secondly, about hyperthreading.... This time let's assume it's the same quad-core processor running at 3.0 GHz but it has hyperthreading to allow 2 threads on each. I read some of the responses about there being a separate set of registers, etc. So it sounds like hyperthreading only eliminates the overhead of task-switching. Am I right?
So, a quad-core with 2 threads per core is still, effectively, 12 Ghz (with 8 independent threads running) but faster than a quad core with no hyperthreading because there is little to no overhead in switching tasks? It's not equiv. to a single-thread 24 GHz processor, right?
Thanks a bunch!
Paul