On Tue, 8 Mar 2005 21:35:55 +0000, Brian J. Beesley <[EMAIL PROTECTED]> wrote:
> The overhead is internal to the processor, it shows up in the fact that the > Prescott P4 CPUs (with hyperthreading) have greater iteration times than > Northwood P4 CPUs (without hyperthreading) running at the same clock > frequency. Even with hyperthreading disabled! ISTR this is because of longer > instruction pipelines therefore a greater loss of cycles when a branch is > guessed incorrectly Yes, Prescotts have longer pipelines and do have greater iteration times than Northwood. What I am saying is that if you take a Prescott with HT enabled, it will have greater iteration times as the exact same CPU with HT disabled. The pipeline length is the same in both cases, so there is obviously other overhead at work to manage multiple threads. > Eh? It's those cycles wasted by prefetch failures which are potentially > available to the "hyperthreaded" process. Nothing is lost. Hyperthreaded CPUs > are NOT dual core... Sorry, I should have been more specific. I meant to say if your application is not multi-threaded then it will not take advantage of the HT capabilities. That is what I meant when I said "optimized for HT". > Sure. Two threads competing for one set of resources. Repeat after me, > hyperthreading is NOT DUAL CORE technology! If your parallel code is assuming > that all four CPUs are the same - as opposed to four virtual processors > running in two physical cores - then it's very likely going to cripple itself > by making completely wrong assumptions about the symmetry of resource > availability. Thanks Brian, I know HT != dual core. I am saying that when I run my parallel code with the affinity of the two threads set to the two physical processors, it runs much faster when HT is disabled than when it is enabled. There are no other applications running on the machine (except regular OS housekeeping). Again, there is obviously some overhead in managing HT if I see such a big difference in performance when my software is only running on the physical processors and not the virtual ones. Repeat after me, hyperthreading increases the overhead of processing on the same CPU when enabled considering the length of the pipeline is the same. Jeff. _______________________________________________ Prime mailing list [email protected] http://hogranch.com/mailman/listinfo/prime
