Date: | October 2, 2006 / year-entry #335 |
Tags: | other |
Orig Link: | https://blogs.msdn.microsoft.com/oldnewthing/20061002-00/?p=29513 |
Comments: | 24 |
Summary: | Now that dual-core processors are gaining in popularity, there has been some confusion over whether a dual-core processor counts as one or two. This discussion of multicore processor licensing may clear things up. The short answer is that a dual-core processor still counts as one processor. For example, Windows XP Professional supports up to two... |
Now that dual-core processors are gaining in popularity, there has been some confusion over whether a dual-core processor counts as one or two. This discussion of multicore processor licensing may clear things up. The short answer is that a dual-core processor still counts as one processor. For example, Windows XP Professional supports up to two processors. If you have two dual-core processors, Windows XP will use them both, for a total of four processing units. And if you enable hyperthreading on those processors, you get eight virtual processors out of the deal! Similarly, Windows XP Home supports one processor, but you if your one processor is a dual-core processor, then it will use both cores. Now, I'm not so lucky as to actually have a dual-core machine, so I'm just taking it on faith that the linked article is correct. I haven't been able to run experiments to confirm. |
Comments (24)
Comments are closed. |
From The Fine Article:
Q. How does this licensing policy affect products such as Microsoft Windows XP Professional?
A. Microsoft Windows XP Professional and Microsoft Windows XP Home are not affected by this policy as they are licensed per installation and not per processor. Windows XP Professional can support up to two processors regardless of the number of cores on the processor. Microsoft Windows XP Home supports one processor.
So, if XP Pro is licensed per installation instead of per processor, do you have any idea why it won’t make full use of a 4-CPU home system? Or do you know who would know?
(I’d use the "contact us" link provided at the bottom of TFA, but that directs to a "volume licensing" page which doesn’t seem that relevant.)
The real answer anyway is : you should ask to your legal department.
So, realistically, how well does Windows scale and is it worth getting more than 4 cores going? I did some searching but I haven’t found any results newer than 2003.
You can run Linux on 1024+ processor machines currently; I’d be afraid to think what the licensing cost of getting Windows on a machine like that would be.
Scalability is important in these days of multicore chips, though you’ll notice it’s not one of Osterman’s "-bilities".
You mean to say, (like me) you are still running on a P4 3GHz system and are in the dilemma of the processor being too good to throw away, and not dual-core and so not hip?
And it is comforting to know that if I buy one of those new 80-core intel chips, I can still run a single XP (home or pro) on it and know that it will use all those 80 cores.
So do the new intel quad-core count as one processor too?
Verified: a quad-core is still a single proc. Just for grins I installed XP on a dual-quadcore Xeon test box. All 8 cores show up in the Task Manager performance view- best Sandra scores I’ve ever seen. :) :) :) I then promptly switched back to 2003 Server.
I’d be curious to know how well the "normal" Windows thread scheduler scales up for many cores.
PingBack from http://www.edbott.com/weblog/?p=1490
I have indeed seen and worked with the legendary 8-proc XP machine. An XP Pro machine with two hyperthreaded dual-core processors shows up with NUMBER_OF_PROCESSORS=8, and has a beautifully fractured graph in the ‘Performance’ tab of task manager.
You would have thought that since dual core procs were not generally available when XP was released, that XP Home would have had no SMP support at all. Obviously that is not the case.
So, since dual and quad core procs are newer than XP, how does it tell the difference between multiple cores and multiple procs? Does it require a certian service pack or patch to be installed? Did MS already have access to multi-core chips when XP was developed?
The DEC alpha could have multiple cores, and I’m sure some of that code still lives. Hyperthreading was announced in 2001, so Microsoft knew it would be coming by the time XP was released; maybe it was only made working in SP1 though, who know.
The XP task scheduler is the same scheduler that lives in datacenter edition, for the most part, I believe. So right there you have scalability up to 64 sockets and who knows how many cores. By the time you get up that high, it’s probably more on the shoulders of the software to efficiently support them all than the OS.
Does the linux box actually have 1024 processors under a single OS and scheduler? Not Not multiple schedulers and an MPI?
Adam: the reference to licensing there is simply that you don’t need to obtain a per-processor licence for Windows XP. The licence costs the same whether you have one processor socket or two. This is true for all editions of Windows: Enterprise Edition costs the same for one socket or eight sockets.
Windows has a hard limit of 32 logical cores (on 32-bit processors; 64 logical cores on 64-bit processors) which you can actually hit if you have Windows Server 2003 Enterprise Edition on an 8-socket box populated with dual-core, hyperthreaded processors. Before now you had to have Datacenter Edition – and a highly custom system design with multiple Memory Controller Hubs, for Intel processors – to hit this limit. The limit is simply so that a single variable can be used with the Interlocked instructions to note which processors are free or busy.
Windows has been SMP-capable right back to Windows NT 3.1, so it’s no surprise that XP Home supports multiple cores on the single licensed socket.
If interested in the details of scheduling and how Windows works out which the best processor to run a thread on, see "Windows Internals, Fourth Edition" by Mark Russinovich and David Solomon.
"So, since dual and quad core procs are newer than XP, how does it tell the difference between multiple cores and multiple procs?"
I speculate the BIOS, in its ACPI tables, indicates how many physical & logical CPU there is in the computer. Remember all those BIOS upgrades that needed to be done before hyperthreading-capable machines could actually use a HT CPU? The BIOS probably had to update their tables.
Like others have said, older Windows could enum multiple CPU – Win2000 sees one HT CPU as a two processors (though it isn’t optimized for HT)
foxyshadis:
This is a bit off topic, but the 1024 processor system I was thinking of was an SGI Altix system. The ones listed on the website
http://www.sgi.com/products/servers/altix/4000/
Mention 512 processors under one Linux instance, but I think they’ve done 1024 processor systems too.
Linux also runs on the Sun Niagara systems, what more-or-less is a 32 core processor:
http://vger.kernel.org/~davem/cgi-bin/blog.cgi/2006/02/17
Stu:
You would have thought that since dual core procs were not generally available when XP was released, that XP Home would have had no SMP support at all. Obviously that is not the case.
Just because you didn’t buy one doesn’t mean they didn’t exist. I’ve got a dual p3 system sitting around somewhere that got built in 2000 from parts I got off of pricewatch.
That seemed like good advice, but I searched my house (even the attic and cellar, and behind the couch) and couldn’t find my legal department. Any idea where they got to? :)
Microsoft is putting a bit of effort into preventing home users from pirating Windows (which is fair enough), but accidentally using the wrong license on a machine with the wrong number of CPUs is technically against the EULA terms but it’s an easy mistake to make.
Companies with legal departments can probably work it out – everyone else needs moderately comprehensible summaries of what they need to purchase.
Monday, October 02, 2006 11:42 AM by gkdada
Nope. It’ll be licenced for 80 cores, but I’ll bet you won’t be able to use it. I’ll bet it won’t even complete a boot operation before BSODing because ACPI tables will fill some 64-bit variables to 80 bits.
Monday, October 02, 2006 6:46 PM by –
If you ever type input into any program, you want the base priority boosted at that time. It’s a pain to check for which keystrokes got lost and retype them. It’s a bigger pain to not find which keystrokes got lost.
By the way it took me a long time to learn that. Computers do a lot more disk I/O so why doesn’t that have priority. Well the reason is that a missed disk read can be repeated automatically by the OS, but a missed keystroke makes a really bad user experience.
I have some sympathy for audio getting a minor boost. However, the priorities documented in MSDN are backwards and disproportionate, so on this point I agree with you more than with Microsoft.
As for whether it’s fixed in Vista, I can’t guess. Media players have rather inconsistent results so maybe possibly part of the reason might be that they don’t get excessive priority boosts any more, maybe.
Monday, October 02, 2006 7:48 PM by Cooney
>
You have a dual core p3 proc? Really? (In case of any confusion, Stu’s comment did not talk about dual procs.)
It’s a little off-topic here, but can anyone with Vista RC1 tell me if the scheduler is still broken? As in, threads have a base priority and it’s boosted by user input or I/O? I don’t have high hopes because I saw a Channel 9 video where some multimedia guys talk about how they are doing the same wrong thing again: boost the priority of "important" threads.
Everybody else does it right: base priority, and penalty for high CPU usage. So a CPU-hogging thread doesn’t cause a lot of havoc. But Windows had to do it the other way around, and… well, most of you have suffered the result already. Choose one:
* Have more cores than cpu-hogging threads
* Manually set the cpu-hogging threads (well, the corresponding processes) to low priority
* Have a miserable experience
In XP foreground processes get more time when they are scheduled, but not more priority per se, so a processor-intensive task can cause havoc.
Applications usually don’t play nice because if they’re the only one playing nice, and there’s another one not playing nice, they loose – for example, Internet Explorer’s address autocomplete is run in a low priority thread, so if you have 100% CPU usage, it’ll not work. It’s the OS job to lower the priority of CPU intensive tasks. There are even some applications designed for this very purpose, but it’s suboptimal.
The whole "dual core makes everything go smooth" thing will vanish when CPU intensive applications are updated to do processing in multiple threads :)
Mike – that doesn’t answer my question.
If I don’t need a per-processor license to run XP Pro on multiple CPUs, and I have a 4-physical-CPU box at home, why won’t XP use all 4 CPUs?
—-"and I have a 4-physical-CPU box at home, why won’t XP use all 4 CPUs?"—-
Because XP Pro is limited to to two physical CPUs
So, as Stephen mentioned, Windows XP Professional is limited to 2 physical CPUs and Windows XP Home Edition is limited to 1 physical CPU, but they are not limited for number of cores. I don
t know if you can use 80-core processor (yes, if you
ll have a driver:-) but you surely can use Quad-core CPU in Windows Home Edition. This is ONE PHYSICAL PROCESSOR.Have you read an article above?
Windows have an information about number of physical processors, cores or hypertherading technology in your computer.
I suspect drawbacks with this. I guess WGA have to be installed to use all cpus, or something similar. As usually, Raymond isn’t telling the whole truth. Rembember when he tried to convince people that region free dvd-players was a bad thing.
Stephen> Duh! *Why* is XP Pro limited to 2 CPUs if it’s not licensed per-CPU?
Sorry, am I not phrasing my question in proper English or something?
"*Why* is XP Pro limited to 2 CPUs if it’s not licensed per-CPU?"
Money. If it were the case that it were a matter of performance, multi-cored CPUs wouldn’t be supported under XP Pro. Clearly it’s a motivation for people who are pushing "the edge" to buy a Server or DataCenter version of Windows, as those products cost much more than the Professional version. It’s also why the XP Pro EULA includes a connection limit of 10, as it’s more than likely that with so many CPUs one is not using the system as the intended "workstation" any longer.
to Adam: "*Why* is XP Pro limited to 2 CPUs…
> XP Pro is limited to 2 CPU`s to differentiate a market: Home Edition for "small" home users with one-cpu computers, Professional for workstations, bussiness and advanced users (professionals) with advanced networking and (probably) need fot two-CPU computer configurations, and various Server versions for – well, for servers and other advanced computing needs.
Lot of audio / video studios I know works with 4-way CPUs and Windows 2003 Server OS.