how does windows 2003 deal with multiple cpu's?

R

ring.of.steel

Guest
Hi guys,

was just wondering how windows 2003 deals with multiple cpu's. does it share the load across or can i set certain services/servers to run on a chosen cpu?

Cheers
 
NT will natively spread out some of its services when running on multi procs....
Software that supports SMP will also naturally spread the load.
Else...with non SMP supporting software, you can fiddle with some software to manually spread the load to a certain processor, using "set affinity".
 
so i cant assign a certain core to do lets say, DHCP DNS and NAT?
 
hmmm, you might be able to set one core to handle that service executable, but it's not going to be an intuitive process to do it.
Might need to muck around in w2k3's dark intestines for a while on that one.

Those things are usually so light weight, that load would be negligable even if you left windows to do it itself.
We have a dual p3 1ghz handling ad, dns, and dhcp for a company of 600 and it rarely breaks 3% utilization.
 
oh i should be ok then as i am running 4 733mhz xeons. thanks anyway.
 
NT will natively spread out some of its services when running on multi procs....
Software that supports SMP will also naturally spread the load.
Else...with non SMP supporting software, you can fiddle with some software to manually spread the load to a certain processor, using "set affinity".

Not to thread highjack, but I would then assume all NT OSes do this too, such as 2000 Pro? I didn't think it did, but please clarify.
 
i was just wondering that also, protias. I think he may mean all the operating systems running on the NT kernel that support Multiple processors? :confused:
 
yeah, since 2k, xp, 2k3 and vista are all based on teh NT client, they all support smp in basically the same way.
 
Not to thread highjack, but I would then assume all NT OSes do this too, such as 2000 Pro? I didn't think it did, but please clarify.

Yup..they're all NT based.

Only sidenote I'll add....back in the NT 4 days..if you added a processor..you had to roll up your sleeves and do a few things to the OS for it to see it. But since 2K...it will shift on the fly.

And there are subtle differences when talking about HyperThreading...more robust support for it with XP.
 
Yup..they're all NT based.

Only sidenote I'll add....back in the NT 4 days..if you added a processor..you had to roll up your sleeves and do a few things to the OS for it to see it. But since 2K...it will shift on the fly.

And there are subtle differences when talking about HyperThreading...more robust support for it with XP.

I'd call it roll up your sleeves, do a rain dance, pray to the higher processor gods, and sacrifice a few NT install floppies.

:/ Not a fun experience (i've had to do it several times in my ventures)
 
i didn't think windows made use of all the cpu's, or is that just with gaming?
 
i didn't think windows made use of all the cpu's, or is that just with gaming?

Apps has to be written to support multiple cpus for a single app(like a game) to realy take advantage of dual cpus. The advantage comes in with windows being able to off load background services to the extra cpus to help speed up multiple apps.
 
Yup..they're all NT based.

Only sidenote I'll add....back in the NT 4 days..if you added a processor..you had to roll up your sleeves and do a few things to the OS for it to see it. But since 2K...it will shift on the fly.

And there are subtle differences when talking about HyperThreading...more robust support for it with XP.

I suppose I should have clarified a little bit. Do NT systems see dual core processors or is that just XP and above? I want to say 2000 Server (versions) did this, but I never heard of anyone doing it with a regular pc.
 
I suppose I should have clarified a little bit. Do NT systems see dual core processors or is that just XP and above? I want to say 2000 Server (versions) did this, but I never heard of anyone doing it with a regular pc.

If you could get NT4 to install on a newer dual-core capable MB, I imagine it *might*, since it's a hardware function.

But I've tried to install NT4 on an HT mobo, and on a Dual core mobo, and have never been successful... (don't ask why...) so I guess you could say it won't?
 
I suppose I should have clarified a little bit. Do NT systems see dual core processors or is that just XP and above? I want to say 2000 Server (versions) did this, but I never heard of anyone doing it with a regular pc.

The short version is Yes, anything based on NT ( NT, 2kPro, 2kServer,XP,2k3), will see, and utilize (to some extent), multiple procs. However, the version of the OS will dictate HOW MANY Procs it will see/use. i.e. XP/2K/2K3 will only see/use 2 Procs. But the Advanced/Enterprise version of the Server OS's will utilize more.
 
i have the enterprise edition here so i should be ok with 4 cpu's and windows should utilize them right?
 
i have the enterprise edition here so i should be ok with 4 cpu's and windows should utilize them right?

Yes.

All Windows NT based OSes support SMP. Microsoft defines CPU licensing by the socket. Theoretically, you can have a single 4 core CPU with HT and run 8 logical processors on Windows XP Home Edition.

Here is a list of the Windows 9x/Windows NT/Windows 2000/Windows XP/Windows Server 2003 variants and what they support.

Windows 95/98/98SE/ME (1 Physical CPU)

Windows NT Workstation 3.5 (1-2 Physical CPUs)
Windows NT Server 3.5 (4 Physical CPUs)
Windows NT Workstation 3.51 (1-2 Physical CPUs)
Windows NT Server 3.51 (4 Physical CPUs)
Windows NT Workstation 4.0 (1-2 Physical CPUs)
Windows NT Server 4.0 (4 Physical CPUs)

Windows 2000 Professional (1-2 Physical CPUs)
Windows 2000 Server (4 Physical CPUs)
Windows 2000 Advanced Server (8 Physical CPUs)
Windows 2000 Data Center Server (32 Physical CPUs)
Windows 2000 Advanced Server Limited Edition (Itanium only)
Windows 2000 Data Center Server Limited Edition (itanium only)

Windows XP Home (1 Physical CPU)
Windows XP Professional (2 Physical CPUs)
Windows XP Media Center Edition (2 Physical CPUs)
Windows XP Professional x64 Edition (2 Physical CPUs)

Windows Server 2003 Standard (4 Physical CPUs)
Windows Server 2003 Enterprise (8 Physical CPUs)
Windows Server 2003 Standard x64 (4 Physical CPUs)
Windows Server 2003 Enterprise x64 (8 Physical CPUs)
Windows Server 2003 Standard R2 (4 Physical CPUs)
Windows Server 2003 Enterprise R2 (8 Physical CPUs)
Windows Server 2003 Data Center (16, 32, Physical CPUs)
Windows Server 2003 Data Center R2 (16, 32, 64 Physical CPUs)

Windows Vista Starter Edition (1 Physical CPU)
Windows Vista Home Basic (Unknown, likely 1 Physical CPU)
Windows Vista Home Premium (Unknown)
Windows Vista Business (2 Physical CPUs)
Windows Vista Enterprise (Unknown)
Windows Vista Ultimate (Unknown)

I'm not sure what Vista supports processor wise in each edition, but I am looking into it.
 
cheers for the info guys. anyone know what editions of vista can log on to domains?
 
Thanks Dan. That is what I need to know. Now time to pay more attention to what RoS wants to know :)
 
i didn't think windows made use of all the cpu's, or is that just with gaming?

An application can only basically take advantage of multiple processors in a few ways. They can be single-threaded, dual-threaded or multi-threaded. I'm not a software programmer or developer so I can't be more detailed than that.

This is just what I have come to understand reading on the subject.

Games right now are either single-threaded (99% of them anyway) and there are a few examples of games that are dual-threaded. (Quake 4 is one such example.)

At present all things being equal Quake 4 would run exactly the same on dual core and quad core machines. (Provided the CPUs are clocked the same and are the same architecture.)

Windows itself can make use of however many processors it's licensed to operate. (Refer to post above)

If the version of Windows you are using supports 4 physical processors and you've got four installed, The Windows scheduler will make use of them as best as it can. Windows can allocate (or the user can allocate) applications and processes that are single threaded to a different CPU or CPU core for better performance. The scheduler isn't the best thing in the world, so often the user will have to allocate these single threaded applications and processes to another CPU or CPU core. You can use an application like SMP SeeSaw to do this automatically, or you can allocate applications to certain cores everytime the application is run with a few extra steps in Windows. Otherwise you have to allocate these programs everytime they are run.

More resources are always better than less, but at some point with your applications, you are wasting money by having too many CPUs or CPU cores. That's why dual core is the sweet spot for home user/gaming and general application use.
 
If you want to assign specific CPU's to services, processes, exe's etc..., you can use Windows System Resource Manager.

I have just been playing around with it in fact. Developer did a app upgrade and now one of the app's services just hammers cpu cycles. So his request was to dedicate one CPU to the service. It's actually pretty straightforward and works well, at least to this point.

To add to what's already been mentioned, if the app is multithreaded, and this includes games, it can use more than one Proc.
 
Back
Top