Thread

  1. Hyper threading?

    Mariusz Czułada <manieq@idea.net.pl> — 2004-09-21T08:54:48Z

    Hi all,
    
    I searched list archives, but did not found anything about HT of Pentium 
    4/Xeon processors. I wonder if hyperthreading can boost or decrease 
    performance. AFAIK for other commercial servers (msssql, oracle) official 
    documents state something like "faster, but not always, so probably slower, 
    unless faster". User opinions are generaly more clear: better swhitch off HT.
    
    Do you have any experiance or test results regarding hyperthreading? Or what 
    additional conditions can make HT useful or pointless?
    
    TIA,
    
    Mariusz
    
    
    
  2. Re: Hyper threading?

    Greg Copeland <greg@copelandconsulting.net> — 2004-09-23T19:01:57Z

    On Tue, 2004-09-21 at 03:54, Mariusz Czułada wrote:
    > Hi all,
    > 
    > I searched list archives, but did not found anything about HT of Pentium 
    > 4/Xeon processors. I wonder if hyperthreading can boost or decrease 
    > performance. AFAIK for other commercial servers (msssql, oracle) official 
    > documents state something like "faster, but not always, so probably slower, 
    > unless faster". User opinions are generaly more clear: better swhitch off HT.
    > 
    > Do you have any experiance or test results regarding hyperthreading? Or what 
    > additional conditions can make HT useful or pointless?
    > 
    
    I think you'll find that HT is very sensitive to both the OS and the
    application.  Generally speaking, most consider HT to actually slow
    things down, unless you can prove that your OS/application combination
    is faster with HT enabled.  Last I heard, most vendors specifically
    disable HT in the BIOS because the defacto is to expect HT to inflict a
    negative performance hit.
    
    IIRC, one of critical paths for good HT performance is an OS that
    understands how to schedule processes in a HT friendly manner (as in,
    doesn't push processes from a virtual CPU to a different physical CPU,
    etc).  Secondly, applications which experience a lot of bad branch
    predictions tend to do well.  I don't recall what impact SSE
    instructions have on the pipeline; but memory seems to recall that
    applications which use a lot of SSE may be more HT friendly.  At any
    rate, the notion is, if you are HT'ing, and one application/thread
    requires the pipeline to be flushed, the other HT'ing thread is free to
    run while the new branch is populating cache, etc.  Thusly, you get a
    performance gain for the other thread when the CPU makes a bad guess.
    
    Along these lines, I understand that Intel is planning better HT
    implementation in the future, but as a general rule, people simply
    expect too much from the current HT implementations.  Accordingly, for
    most applications, performance generally suffers because they don't tend
    to fall into the corner cases where HT helps.
    
    Long story short, the general rule is, slower unless you having proven
    it to be faster.
    
    
    Cheers,
    
    -- 
    Greg Copeland, Owner
    greg@copelandconsulting.net
    Copeland Computer Consulting
    940.206.8004