Assume that I have a computer called A with a processor that has two cores and has hyperthreading, i.e it has 2 cores with 4 threads (I understand that this can supply to 4 processes simultaneously), assume also that I have another computer called B has 2 cores but no hyperthreading, (as I understand it can 2 processes simultaneously supply) now assume that A and B has the same 3.4GHz clock frequency, assume I wrote an algorithm that calculates an average, but I designed the algorithm so that ONLY use two processes, with this in mind, what computer operation finishes first?. (assume that the input is the same, and the only difference between A and B is hyperthreading).
As long as Windows avoids the 2 'fake' cores on the hyperthreaded machine, then there will be no difference.
If windows decides to run both threads on cpu0 and cpu1 (the fake one), then this will be a significant performance hit.
I'm having trouble finding reference on the web, but I would imagine that the windows OS is smart enough by now.
The algorithm will be faster on the hyperthreaded machine, if you execute it with 4 threads