On Sat, Jun 10, 2006 at 10:14:41PM -0500, Ron Johnson wrote: > Nate Bargmann wrote: > > I have been considering an HT based machine and would like to > > learn of any potential pitfalls. > > The h/w emulates 2 CPUs. Thus, even more than a single CPU > switching contexts, the HT-enabled CPU adds the overhead of trying > to pretend it's 2 CPUs. > > Remember: the CPU only has X amount of processing power. This is a bit simplistic. Hyper-Threading (or more correctly, simultaneous multithreading (SMT)) is almost always a win because at any given time a CPU is often waiting for other stages of the pipeline to complete before it can progress with what it is being tasked to do. By having multiple threads of execution it can be getting on with something useful more of the time. Of course, unless the software being run is paralellizable then very little gains will be realised, but the execution part should never actually get slower. There have been bugs in the Pentium 4 architecture that have caused various software to run slower under hyperthreading, and lack of paralellism can lead to no discernible benefit, but the concept of SMT when done right has no downside from the point of view of a CPU executing instructions. Choosing which thread to execute in the CPU does not involve a context switch or any sort of overhead as you suggest, as each stage of the instruction pipeline has duplicated registers which are loaded simultaneously at no additional cost. At each stage the CPU can execute either thread/queue at full speed depending on which is ready to be executed. Now, where real problems can manifest is the parts of the CPU that are shared between both threads, e.g. the on-CPU caches. In a worst case one thread can be loading lots of data into the cache, then the other thread can be throwing it away and loading its own, resulting in them both blocking each other's execution. In the end the only way to be sure is to benchmark the system under typical load in both configurations, but SMT can't be dismissed as greater parallelism becomes increasingly important. Cheers, Andy -- http://strugglers.net/wiki/Xen_hosting -- A Xen VPS hosting hobby Encrypted mail welcome - keyid 0x604DE5DB
Attachment:
signature.asc
Description: Digital signature