
Originally Posted by
zir_blazer
There are very good examples of that, but that is because Windows XP Task Scheduler lacks intelligence. When Intel had the Pentium D Smithfield and a Pentium Extreme Edition of it that had Hyper Threading (Core and Frequency being the same), the Pentium D was faster in all applications with 2 Threads because Windows XP in the EE usually assingned them to the first two Cores, that were the Processor first Physical Core and its own Logical Core, leaving the entire second Core on Idle.
I don't think that you should need to program with Hyper Threading in mind, but this happens because you should make sure than your application is aware of Hyper Threading to not use Logical Cores before Physical Cores are fully used, however, that should be a workaround to compensate for the Task Scheduler stupidity of not knowing what Core is Physical and what one is Logical, and assign the Threads first to the Physical and then to the Logicals. If the Task Scheduler was more intelligent, you shouldn't actually need Hyper Threading specific considerations because the OS would take care of it.
Bookmarks