“With the recent introduction of dual-core processors come more questions about system performance. Does a dual-core computer really perform better than a single-core CPU? How does it compare to a true multi-CPU system? What about Hyper-Threading Technology — is it a thing of the past? Read on for an explanation of dual-core processors and symmetric multiprocessing and what it means to your computing experience.”
“If your current machine is good enough for your needs, there’s no reason to upgrade.”
lol – what a advice! Couldn’t figure that out by myself.
And i don’t understand the importance of distinction between dual and multicore. The fact is that dual core is a big shift (taking os/software into consideration) from single core, but “multi core” is rather gradual evolutionary step in the same direction (i.e. not really a revolution).
Dual core == multicore but multicore != dual core
A dual core system is a multicore system, but a multicore system can be more than a dual core system, like a quadruple core. Both are multicore but only one system is dual core
Personally I’d like to have a dual AMD 64 x2 system . I just can’t afford, though I could use the power.
I liked the article. Nice and simple and it helped me understand a bit more about the differences between Intel and AMD’s dual core architecture. Looks like AMD knew what they were doing! What was surprising is that XP Home is not a multithreaded OS as was mentioned in the article and somehow that does not seem right to me. Anyone explain that?
Because Microsoft chose to make Home with the single proc kernel. At the time (in 2001), there was no such thing as dual core, there wasn’t even hyperthreading yet.
Because only only professionals and power users had more than 1 processor and as such, they should need to shell out the dough for the Pro version.
Just another way for Microsoft to milk the cows
Technically there was no reason for doing the Home edition in such a way, considering that NT4 was multithreaded in all versions, and Win2K also for all versions.
End result: Home was made purely for the sake of milking the cows. No more, no less.
“End result: Home was made purely for the sake of milking the cows. No more, no less.”
Too true. Its one of the things I dislike so much about all the different client versions of Vista that Microsoft is going to sell. I find the tactic very distastefull.
One of the evils of proprietary software.
Weeeelllll…. you can find commercial versions of GNU/Linux doing pretty much the same stuff.
It’s not so much a result of proprietary software – it’s rather a result of people lusting for money. And their companies do have to make money. Some users are just too stupid to avoid buying it.
So, what if someone doesn’t want those features, should they still have to pay the same price?
Oh wait, you want it all to cost the same as the cheapest version as well.
Because Microsoft chose to make Home with the single proc kernel. At the time (in 2001), there was no such thing as dual core, there wasn’t even hyperthreading yet.
I doubt whether Home has even got a different kernel. You you only need to change one registry key to turn Home into a kind of Pro Light, although I don’t know whether that removes the processor limitation too.
Yes, it uses a different kernel.
They have a single proc kernel (always have) and a multiproc kernel. When you install Windows, depending on your system config obviously, it chooses which one you need.
Hmm but then what about the dual cpu graphs displayed in the task scheduler when using XP Home? I have an intel 3.4 ghz with HT in my laptop and when I check the task scheduler I see the 2 graphs shown….
“Secondly, your application software must also be multi-threaded. One sure-fire way to verify that all of your applications are multi-threaded is to compile them yourself.”
I’m sorry, but recompiling a single threaded application will not magically turn it into a multithreaded application.
XP Home is multithreaded OS exactly like all WinNT derivatives (and in lesser extent, all W95 series too). I’m a bit surprised, how author of otherwise not so bad article could write this…
About multithreaded applications – it is not obligatory have applications multithreaded. Usually computers are used to run multiple applications, on all such scenaries dual/multicore CPUs give performance gain. Looking at “normal” desktop XP installation, users have about 10-20 background applications active – they will have better performance, using dualcore CPUs. Of course multithreaded applications win most – if they do not wait for HDD or other slow data channels.
Edited 2005-12-11 20:40
You are wrong. WinXP Home only supports one CPU. That means one logic core. So it’s not multi-threaded.
http://www.microsoft.com/technet/prodtechnol/winxppro/reskit/z04d62…
Edited 2005-12-11 20:50
Windows XP Home supports 1 CPU but 2 Cores
I have a (very noisy) Pentium D820 with Windows XP home and it shows two CPU’s
That got me as well. XP HOME does ‘support’ for example an AMD64 3800×2. I use the quotes as my personal experience is that this was the buggiest most likely to crash combination I have experienced since running a ZX81 with an overheated 32k RAM PACK.
XP Pro and XP pro 64 seem more reliable, fewer STOP errors.
> You are wrong. WinXP Home only supports one CPU.
> That means one logic core. So it’s not multi-threaded.
The use of multiple threads is coded into a program by the developer and has nothing to do with number of CPUs or cores that the system has or supports.
“That means one logic core. So it’s not multi-threaded. ”
You are confusing multi-threading with multiple cpu’s.
XP, and even win95, is very much multi-threaded BUT they dont necessarily take advantage of multiple cores/cpu’s.
you don’t have to have two cpus to have a multthreaded application.
Threads works just as well on a single CPU system, and some apps are actually faster on a single cpu system depending on many things including the memory manager.
So Windows XP home is multithreaded, no question about it.
This article has connections with the truth, but diverges sufficiently as to make it disinformative.
XP home, as all XPs, is always multithreading. It is just that it is configured to always choose the same processor when it has to decide which of the available processors should run a new thread. And then, it is not strictly limited to just one processor, but will take advantage of hyperthreading to run two threads in parallel. I believe it will even use both processors in a multicore, but I’m not sure of that; if not, Microsoft will enable that with a simple one-line patch once these processors become commonplace.
As for performance flattening with more than two processors, that is also BS. Symetric Multiprocessing (SMP) computers with many, many processors have fantastic performance with the right loads. “The right load” is a program written to take advantage of multiple threads executing on multiple cores; think of a database issuing a thread for each query, with many queries possibly executing at the same time; or a graphics program splitting the 3D calculations in many parallel sections, which migh execute in different processors.
This means that custom compilation for good SMP performance is also BS; if the program is not architected to split its work in multiple threads, no recompilation will change that.
And it is true that Linux is nowadays SMP and multithreading, but that wont help much with single-threaded programs (although when several single-threading programs run in a multiprocessing machines, the load will spread somewhat gross-grainedly among the processors).
In all, a bad article, written with only the bitter consideration that “they” are out there only to fool us and have our money (which might be frighteningly close to the truth, if you think about it).
I agree with you that the article is full of BS, but …
XP home, as all XPs, is always multithreading
That does not mean anything, so I doubt you know what you’re talking about.
It is just that it is configured to always choose the same processor when it has to decide which of the available processors should run a new thread
Which is a good thing, but I doubt that what you say is true, as XP Home support only one processor, which means one core. HT is NOT the same as SMP.
And then, it is not strictly limited to just one processor, but will take advantage of hyperthreading to run two threads in parallel
You are strongly mistaken like I said above. HT and SMP are two different things, and XP Home supports only one processor (or core). Again, HT is not equal to SMP.
I believe it will even use both processors in a multicore, but I’m not sure of that
You’re wrong. Only XP Pro supports more than one processor. BTW, all of this still has nothing to do with a “multithreaded OS or kernel”. “Multithreaded OS” does not mean anything BTW.
if not, Microsoft will enable that with a simple one-line patch once these processors become commonplace
We’ll see. You seem to be sure of that, I have high doubts. You assume that we won’t find anything beside dual core soon, which I highly doubt. Normal users won’t buy expensive dual core processors when there are cheaper ones with one core.
As for performance flattening with more than two processors, that is also BS
I disagree.
(SMP) computers with many, many processors have fantastic performance with the right loads
Windows does not have this right load you talk about.
This means that custom compilation for good SMP performance is also BS
Agree with that.
And it is true that Linux is nowadays SMP and multithreading
No, that does not mean anything. Linux supports SMP and HT, and the kernel is not multithreaded.
True micro kernels are multithreaded, but Linux is not, and despite their claim, I doubt Windows kernel are. Making Linux multithreaded would degrade its performance. On Linux, they go out of their way so everything executed in kernel space stay on the same processor.
that wont help much with single-threaded programs
I don’t know for Windows, but I can assert that in Linux, it helps a lot, as I use a dual CPU setup.
In all, a bad article, written with only the bitter consideration that “they” are out there only to fool us and have our money
Not so bad after all, better than your comment still.
Edited 2005-12-12 13:30
I’m confused since there are so many contradictory answers here. So here are my questions:
– I understand that if I run one single application on a computer, and that app is not designed for MT/HT, then more than one CPU or a CPU with HT, respectively,won’t help me. Is that correct?
– If an app is not designed for MT/HT, will recompiling provide any performance benefits?
– If an app *is* designed for HT/MT, can it still be compiled in such a way that it only works on one CPU. If so, why would anyone do that?
– What does it mean if one says an OS “supports” MT and/or HT? Given that an application is designed for MT/HT and also compiled for support them, and the OS does *not* support MT/HT, will the app not be able to take advantage of them if they are available hardware-wise?
Thank you for your time.
– I understand that if I run one single application on a computer, and that app is not designed for MT/HT, then more than one CPU or a CPU with HT, respectively,won’t help me. Is that correct?
MT/HT won’t necessarily help, but SMP WILL help.
This is because you don’t run only your app, in a multitasking OS (we don’t use these procs for running DOS). You also run your kernel, and your graphic layer, which take processing power too.
So, if your app is made of one process without several threads, you won’t benefit from HT, because HT counts only when you use an app with several threads. On the other hand, in SMP, your graphic layer and kernel, at least, can run on one CPU, while your app will have one processor for itself, so you will gain from SMP.
– If an app is not designed for MT/HT, will recompiling provide any performance benefits?
No, it won’t.
– If an app *is* designed for HT/MT, can it still be compiled in such a way that it only works on one CPU. If so, why would anyone do that?
No it won’t, so nobody can actually do that. It will work on one CPU though. The CPU will just have to do more work, so it will be less efficient on one CPU most of the time.
– What does it mean if one says an OS “supports” MT and/or HT?
It does not mean anything. The piece of the OS that can understand MT/HT is the kernel actually.
Specifically, it’s the scheduler : the code that decides which thread/process will run when and on which processor. So that means the scheduler actually knows that it runs on a HT processor, and must use some special rules to be efficient. If the scheduler thinks the HT processor is SMP, performance will be degraded fast, because HT (several threads) is NOT equivalent to SMP (several true cores).
Given that an application is designed for MT/HT and also compiled for support them, and the OS does *not* support MT/HT, will the app not be able to take advantage of them if they are available hardware-wise?
No, because if the kernel supports SMP, it will believe that it has 2 CPUs. As 1 CPU with HT is not equivalent to 2 CPU, performance will degrade quickly in most situations, below the level of the same processor without HT activated.
Which is a good thing, but I doubt that what you say is true, as XP Home support only one processor, which means one core.
This is incorrect. There is no limitation on the number of cores or threads that single processor can provide, whether it contains a single core, multiple cores (X2, Pentium D), or logical cores (HyperThreading).
This is incorrect. There is no limitation on the number of cores or threads that single processor can provide, whether it contains a single core, multiple cores (X2, Pentium D), or logical cores (HyperThreading).
It appears you are right.
I don’t know anymore if you are wrong.
Looking at this :
http://www.microsoft.com/windowsxp/pro/howtobuy/choosing2.mspx
Look at the “scalable multi processor” line.
Dual Core is SMP, like bi CPU is SMP. Windows XP Home DOES NOT support SMP, which is NOT the same as HT (which Windows XP Home supports).
But some people report it works with SP2. I’m confused.
Perhaps they changed licensing in SP2.
Edited 2005-12-12 16:49
As of now I would say that, we are not yet ready for dual core processors. Pentium D and AMD 64 aren’t even mainstream yet. Let’s hold unto our older machines if the still perform their tasks adequately.
http://www.microsoft.com/licensing/highlights/multicore.mspx
Basicly, their licencing policy is based on physical processor, not core or/and logical processor.
Which make sense as in the future more and more john doe’s system will eventually have a multi-core processor, but physical multi-processors systems will still targetted mostly by workstations and servers owners.