Hyperthreading vs. Dual proc

Dec 22, 2003 12 Replies

I just got done reading a through a couple of recent threads on the subject of "the best machine" to build for Xilinx tools. Last week I had a conversation the head a a design group who said that "getting hyperthreading systems for my engineers made a huge difference in performance".



I'm looking to replace a 1.8GHz P4 with the latest and greatest and I find myself confused between hyperthreading and dual processor boxes as two distinct options at (maybe) different ends of the scale. Also, Xeon vs. P4?



Sorry to stirr-up a slightly different version of a recent thread.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Martin Euredjian To send private email: 0_0_0_0_@pacbell.net where "0_0_0_0_" = "martineu"

We have a dual processor box here with hyperthreading (i.e. 2 processors, each capable of running 2 threads at the same time) that we use for running xilinx software.

I don't notice any great difference in speed when hyperthreading is switched on or off. I have it switched *off* at the moment, because that is supposed to be faster for the single threaded apps we are running (at most two apps at a time).

The benefit of hyperthreading would be much more significant if there was only a single processor, or if there were lots of threads running.

Note that hyperthreading doesn't work with win2k; you need XP (or SMP Linux).

Regards, Allan.

Hyperthreading is a take-off on the parallel processing direction utilizing the numerous execution units on the die. I believe it was cost-effective as well. The advantages are savings in real-estate on the board over a multiple chip architecture. Utilization by applications at present are scarce. I hoping Intel develops this further as on-chip parallel processing would be (what I believe) the best way to over-come speed and power concerns.

Dual processors are very useful, hyperthreading in it's current incarnation on the P4 isn't. I have a dual Xeon system, I did a lot of benchmarking when I got it and found that hyperthreading improved the throughput slightly (about 10%) while hurting single thread performance by about 25%. It's not clear why hyperthreading works so badly on the P4, it could be a hardware issue, when hyperthreading is on the number of registers available to a single thread is halved as is the cache size. It's also prossible that the 2.4.x scheduler doesn't do a good job on hyperthreaded systems. It's possible that hyperthreading will work better on 2.6 kernels, I haven't tried 2.6 yet so I don't know.

In the long run dual Opterons should do better than dual Xeons because each Opteron has it's own memory system so the total available memory bandwidth of a dual Opteron system is twice that of a dual Xeon. However memory access in an Opteron system is non-uniform (NUMA), specifically access to RAM on the other processor is much slower than access to local RAM. The 2.6 kernel is supposed to do a good job with NUMA systems, chances are the 2.4 kernel is sub-optimal in this area so it's possible that a Dual Opteron system won't live up to it's potential with a current distribution. I have minimal experience with Opterons so I'm not really qualified to speak about their current performance except to say that even with the 2.4 kernel it's competitive with the the Xeon (the dual Opteron system that I tried was roughly equal to a dual 3GHz Xeon when doing a big make -j 2).

SMT (Hyperthreading) and SMP (Symmetric multiprocessing) are orthoginal and complementary.

Get either just SMT (single processor) or SMP+SMT (Dual processor using P4-HT or Xeons).

Xeons have much better cache, but are otherwise effectively identical in function. Some of the Xeon chipsets are better (eg, better ECC support etc).

GET ECC MEMORY/ECC SUPPORTING MOTHERBOARD.

Nicholas C. Weaver nweaver@cs.berkeley.edu

Apparently there's something called "Pentium4 Extreme"? Are marketing guys making it confusing on purpose?

-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Martin Euredjian

To send private email:

0_0_0_0 snipped-for-privacy@pacbell.net where "0_0_0_0_" = "martineu"

subject

hyperthreading

find

P4?

P4?

I don't believe Xilinx is utilizing this feature (Hyperthreading-HT) availible in the later P4 chips. It is not an intrinsic feature that software would utilize (ie such as a faster processor speed). SW would have to be designed to take advantage of this. Currently XP Professional utilizes the HT for some operating system functions (ie print) but can not specifically in the application.

There are issues with cache utilization in hyperthreading where performance could actually be degraded as well as potential bottlenecking the FSB with concurrent processes - scheduling would again burden the application.

I would personally like to see HT utilized for MTI simulation.

Yes, they took a xeon, and put it in a p4 package to try and counter the athlon 64. Mainly to make sure they stay ahead in the bench tables on the various games web sites.

Can only be run in single proccessor system.

Alex Gibson

I've found that enabling HT makes my machine useful for writing documentation, reading email and other non-demanding tasks whilst PAR is running.

Not quite - Win2K treats the "extra" processor as a whole extra (real) processor for scheduling purposes. Apparantly the XP scheduler understands the difference, and schedules things differently - I don't know what the differences are though.

Cheers, Martin

martin.j.thompson@trw.com TRW Conekt, Solihull, UK http://www.trw.com/conekt

I think (but is not sure) that if you have a Multiprocessing system, then there could be a problem using HT. I believe that Win2k and maybe WinXP restricts you to use 2 processors. If you want to use 2 physical processors with HT enabled, then this should count as 4 processors, and you will maybe need the server edition of Win2k/XP.

I see that the major benefit is improved response time when windows (mis) behaves in the background... Got my Multiprocessor server board mainly to get more PCI slots.

Best Regards Ulf at atmel dot com These comments are intended to be my own opinion and they may, or may not be shared by my employer, Atmel Sweden.

The big difference is in the cache behavior.

In an SMP (Symmetric Multiprocessing) two different processors working on the same task will cause coherancy cache misses, as each takes write access from the other for the common working set.

In an SMT, two different processes working on different memory will case incoherancy misses, as each process is fighting for its share of a common cache.

Nicholas C. Weaver nweaver@cs.berkeley.edu

It sounds like you have a single processor machine. The differences are much less obvious on a multi-processor machine, and certain things (e.g. PAR) may be slower with hyperthreading enabled.

Regards, Allan.

This is true - more "real" hardware is always better, but the single processor with hyperthreading amkes for a reasonably cheap compromise. I very rarely do anything where I could fully load a dual processor box, hence justifying the cost would be tricky :-)

Cheers, Martin

martin.j.thompson@trw.com TRW Conekt, Solihull, UK http://www.trw.com/conekt

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required