HP and Dell, among other workstation manufacturers, have been shipping their systems with the function turned off. Right now, workstation makers say, the broad array of software used in that segment of the market doesn’t take advantage of the technology yet. Users, though, can easily turn on the hyperthreading function if they wish (in the BIOS). Although the situation will change, the wrinkle in the workstation market–where Intel said users could see performance benefits of up to 30 percent on select applications–underscores the difficulties in gaining broad acceptance and use for a new technology. Only 30 apps had been fully optimized for the Pentium4 CPU in the first 9 months the chip was on sale.
I think that most apps ship for windows. And most of those are compiled using MSVC, or perhaps Borland Builder. Now, neither of these compilers support hyperthreading. (I imagine that Intel’s do, but it probably requires some more work on the source). So sure, if every x86 targetting compiler knew about hyperthreading, then there would probably be many more apps which are pentium 4 optimized. It’ll take two or three years before most compilers are hyperthreading aware, so then perhaps another year before there are a lot of apps using it.
Ralph
I seem to recall that there was some question about whether or not Microsoft would try and charge extra money in order to allow customers to take advantage of secondary processors, even if they’re “virtual” ones. Might only affect XP Professional, 2000 Server, stuff like that? Not sure. I also think that Oracle was making noises about something similar, too.
Ami I confusing this with true dual/quad/oct processor systems?
I don’t know anything about hyperthreading, but I don’t think it requires changes in the compilers to take advantage of that type of technology. Hyperthreading makes the system behave like an SMP system. This should big a performance boost to all applications, even those that aren’t heavily threaded or designed for SMP, because they would be separate process which still need time on a CPU. The more CPUs your system appears to have the better it will perform. And since with Hyperthreading you get extra CPU for everyone you buy it only makes sense to offer this as a value added option. But again I don’t know anything about hyperthreading. If it doesn’t work the way I expect then its nothing more than hype, no matter how hyper it was supposed to be. If it requires recompilation for the software to take advantage of it then Intel will lose its competitive edge once again.
Um, there seems to be some misconceptions about hyperthreading here.
1) It doesn’t require recompile, only threaded programs (most of them, these days). Hell, even running more than more program at the same time will be enough. Of course, it also requires an SMP OS, to utilize the multiple “virtual CPUs.” That said, OSs that have special optimizations for Hyperthreading (like taking into account that switching between two virtual CPUs on the same real CPU is cheaper than switching between two virtual CPUs on different real CPUs) will perform better.
2) It doesn’t give you an extra CPU (like multi-core CPUs do). Instead, it allows you to split up the resources on CPU to serve two thread at once. Current processors are what they call super-scaler, in that they have more than one execution unit. For example, the current Athlon as six (three integer, three floating point). For several reasons (lack of parallelism in programs, differences in the type of instructions that can be executed on each unit, etc) current processors have a hard time keeping all those units busy. Hyperthreading allows two threads to share the same resources, in the hopes that, by having two streams of instructions to choose from, more of the execution units can be working simultaniously.
Ars Technica has a good article on this, as well as a lot of other CPU/OS related stuff.
My WinXP Pro CD it says “For 1 to 2 CPUs” or something to that effect. With Hyperthreading on it would be 2 CPUs so that probably means you’d need Win 2000 or XP Pro to take advantage of it. Furthermore, in dual P4 Xeon workstations with hyperthreading you would in theory have 4 CPUs, therefore another license needs to be purchased – assuming one license covers 2 CPUs.
As long as the compiler supports SMP, then it supports hyperthreading. That was the response I have from a person who used both Windows 2000/XP and Linux.
RE: TLy
If you have a dual Xeon processor with hyperthreading, just as an example, Windows XP would detect 2 physical processors and 2 “virtual processors” that come about due to the nature of hyperthreading. This issue has already been covered by Microsoft in the Home XP and hyperthreading issues.
As far as I remember from the presentations Intel did about hyperthreading at Be when I was working there, applications don’t need to do anything different for hyperthreading compared to what they’d have to do for regular SMP systems: it’s just a matter of launching enough threads.
At the kernel level, there are pretty much two changes:
-cannot rely on bogomips when busy-sleeping, use RDTSC instead.
-use a special instruction in the busy loops (busy-sleep, spinlocks) (optional change)
And that’s all there is to it.
Actually Dell servers are coming with hyperthreading turned on, well the two PowerEdge 2600 Servers I just bought for here at work certainly did!
Makes for a *very* responsive system over a standard non hyper-threading cpu of the same speed.
Hrmm … that’s very few – is there a list somewhere ?
You also want to make your OS smart enough to know that migrating threads on-core is okay since they are still the same cache and so you don’t have a performance hit like you do between two phyiscal processors. Not that this would matter on Windows since it is setup to level CPU usage between the CPUs regardless of the cost of moving the thread(s) around.
One thing to note is that you don’t get two CPUs at the same Mhz level. You get 1/2 for each one. So a 2Ghz Xeon in hyperthreading mode would show up as 2x1Ghz. Because of that you really need to have programs/systems that can take advantage of the multiple CPUs to get a real benifit.
My WinXP Pro CD it says “For 1 to 2 CPUs” or something to that effect. With Hyperthreading on it would be 2 CPUs so that probably means you’d need Win 2000 or XP Pro to take advantage of it. Furthermore, in dual P4 Xeon workstations with hyperthreading you would in theory have 4 CPUs, therefore another license needs to be purchased – assuming one license covers 2 CPUs.
The XP license is for 1 or 2 physical CPUs. XP Professional works just fine on a dual P4 XEON box with Hyperthreading turned on. The machine reports 4 CPUs–both in the BIOS and from within Windows.
Not that this would matter on Windows since it is setup to level CPU usage between the CPUs regardless of the cost of moving the thread(s) around.
This statement is not 100% accurate. You can set thread affinity to any CPU you like in Windows, thus preventing load balancing. Given, this takes more work.
We use hyperthreaded servers at work. They are dual proc XEON ~2ghz (appearing as 4 in the Windows Task Manager). They run like champs. I’m a big fan of hyperthreading, and I’m hoping my next dev machine has it, so I can still use it during the build .
I give you that. You can manually do the work the kernel should be smart enough to do for you. Seriously though, I was very dissapointed with this “feature” when I moved to an SMP box running XP. Flip-flopping between CPUs is really not cheap.
And I think the statement is 100% accurate, it is setup to do CPU level balancing – but you can set it up to be different.
Does anyone know if the mobile P4s will support hyperthreading as well?
They should, apperently it takes only a small number of extra transistors (5% or so) to enable hyper-threading. Shouldn’t have any impact on power usage, in fact, it might increase the power/power-usage ratio. Because you pay (in terms of electricity) for functional units even if you don’t use them, keeping t hem more full gets you more performance per a given amount of electricity.
If hyperthreading is just another SMP emulation and your kernel is SMP aware, then what are those mythical 30 apps ?
All threaded apps should work, right ?
Or does it mean that there are only 30 apps that can run on SMP system at all ?
Do you mean, only 30 apps were optimised for Pentium-4 ? Gentoo people, where are you ? Oh, you mean, only 30 windows apps were optimised for Pentium-4? This just shows that programmers are quite sane – who would make applications depending on CPU stepping.
Too much buzzwords, too little sense – journalists writings about technology are always fun to read. Still can’t top “the rattling noise of accelerating protons” , IMHO.
I have no idea what this thing is all about.
All I know is this link to an Intel page might give some light on Hyperthreading.
http://cedar.intel.com/cgi-bin/ids.dll/topic.jsp?catCode=DCK
Here is a tutorial on Hyperthreading…
http://cedar.intel.com/media/training/hyper_threading_intro/tutoria…
turn it on by default then maybe, just maybe, people will see it as a feature to be exploit, but this works too…
hey customer to user our software you’ve gotta monkey with your BIOS
mmmm BIOS monkey
> If hyperthreading is just another SMP emulation and your kernel is SMP aware,
> then what are those mythical 30 apps?
Running on something and being *optimized* for something are not the same thing.
> All threaded apps should work, right?
All single-threaded apps should work, but they will only use up to one-half the resources of the physical CPU.
> Or does it mean that there are only 30 apps that can run on SMP system at all?
No.
> Do you mean, only 30 apps were optimised for Pentium-4?
Hint 1: Read the news item before posting.
Hint 2: Peruse the thread before posting.
> Gentoo people, where are you? Oh, you mean, only 30 windows apps were
> optimised for Pentium-4? This just shows that programmers are
> quite sane – who would make applications depending on CPU stepping.
You do not seem to understand; Intel will be introducing hyperthreading on its product line. In that respect it is like SSE1/2 – it can bring tangible performance benefits if properly used, and it will be on future chips as well.
Where did you get the idea that Hyperthreading would only be around for one stepping of a CPU?
If I am reading this right, there is no functional diffirence between this and standard SMP machines as far as the software can see. Does this mean that I can run BeOS 5.03 on a Dual-XEON 2GHz machine? If so does anyone know where to buy the motherboards for this? Looks like you end up with a machine that appears to be a dual CPU 2.4GHz or single CPU 4.8GHz, that should keep me happy for a while.
Just heard the news that Cinema 4D R8 is released in the UK and will reach worldwide distributors in mid-November. http://www.cgfocus.com reports that it is optimized for Hyperthreading, as null_pointer_us pointed out running on something is different than being optimized for something.
I bought R7 at the right time and qualify for free R8 upgrade. I’ll have to get my hands on a HT capable P4 and test it on/off.
> If I am reading this right, there is no functional diffirence between
> this and standard SMP machines as far as the software can see. Does this
> mean that I can run BeOS 5.03 on a Dual-XEON 2GHz machine?
That depends on BeOS. If the operating system is not written very well, it may not run on future processors. BeOS had issues with the P4 even though the instruction set architecture (ISA) did not changed. If BeOS can already handle dual Xeons, it *should* be able to handle a single Xeon with Hyperthreading enabled.
Maybe someone in the BeOS community could provide you with more information…
> If the operating system is not written very well, it may not run on future processors.
I mean, “if the operating system kernel is not written…”
It is trivial to produce code, somewhat, optimised for hyperthreaded architectures with the Intel C/C++ compiler… simply add the “-parallel” switch. With some trivial code changes (mostly just reorganising loops to allow out-of-order processing), you can observe some quite repectable speed-ups.
Hyperthreading does *not* add any more resources. Repeat, hyperthreading does *not* add any more resources. A 2.4 GHz P4 with hyperthreading is exactly the same as a 2.4 GHz p4 without hyperthreading, in terms of execution units and and registers. The only thing is that the hyperthreading enabled CPU has more scheduling resources so it can run two threads at once. Again, hyperthreading does not add more resources, it just helps you use the ones you have more efficiently.
> Hyperthreading does *not* add any more resources. Repeat, hyperthreading
> does *not* add any more resources.
1+1=2, 1=1, 1/0 is nonsense, etc.
Can anybody think of any more painfully obvious things of which I was already aware?