Windows XP and Quad Core Processors

Status
Not open for further replies.

jackb339

Distinguished
Nov 29, 2007
1
0
18,510
Does windows xp, either 32 or 64 actually take advantage of a quad core processor, or does the operating system only use 1 of the cores and the other 3 are idle? Or does the operating system use one core and run programs in the other cores? What about Vista, does it manage cores better? Trying to decide on a new build with quad core processor and xp or Vista.
 
(1) Windows XP SP2 or higher understands multi core processors. Whether 32 or 64 bit doesn't matter.

(2) In order to utilize multiple cores, the Application has to be written to do that. Installing a single threaded game on a multi core computer will result in only 1 core being used by the game. There is an advantage in that the OS can assign other tasks to the idle core(s). So the game can have 1 core's undivided attention. This is not a bad thing, and does result in real performance improvements. But because the game itself only "understands" 1, then it will only use 1. This is the same whether you use XP or Vista. Nearly all past and current applications for PC are only single processor/core aware. This will change over time, for sure. But in many/most cases will require developers to write completely new apps.

(3) Vista is written to be better at utilizing multi-core processors than XP is/was. Having said that: Please re-read #2.
 

Uncle_Jim

Distinguished
Feb 1, 2009
10
0
18,510
The previous posters are correct in pointing out that "it's the application" that counts. A little history lesson....back in the old days (yes, pre PC, pre MAC) computers had an ALU (arithmetic Logic Unit) and dynamic memory that would need to be reloaded everytime the "system powered up. Static memory was so expensive that a very small amount maybe 1 KB was used to "bootstrap" the loader program. Since of course shortened to "boot". As technology advanced, the CPU (Central Processor Unit) was introduced. CPU's had some built-in instructions that programmers could manipulate a little easier. Instructions like 'branch on condition" and "add", and "subtract" were much more comprehendable than "load register A", "store register A", "load register B", "Exclusive OR register B", store results. yada yada.

Even with the new architecture of "programming" it was still done at a machine language level. A complete program that read and wrote files, and totalled sales for a million dollar company, would be written in less than 32 KB of memory. Remember memory was extremely expensive. Approximately $2.00 per byte! That's right, 32K of memory would cost $64,000. Why? This was not MOSFET memory (not yet invented) but miniature ferrite toroidal cores, that were hand woven together to make a memory array. You could put hundreds of these "cores" in a tablespoon. Each core had 4 wires woven through it. An X and Y address line, a read line, and an inhibit line. The memory manager would have to inhibit against the destructive read of the cores value in a read operation, and allow a change on a write operation. This memory operated in the millisecond range.

The one thing that each programmer knew was that he owned all the memory in the computer. When his or her application was running, it was the only one taking up resources. This programming technique followed for years. When Apple and IBM came out with their respective desktop computers, not much thought was given to performing multitasking operations. Memory (now MOSFET semiconductor) had come down in price, but was still expensive to the home hobbyist. So with 64K on the original IBM PC, and DOS as the operating system, it was still prudent to run one application at a time. Again, the person who wrote the program had complete control of the system. Programs as exotic as "Visicalc", and "PeachTree Accounting"
were single threaded applications.

As users wanted to do more with the desktop computers programs such as "Top Level" (who else remembers that one?) would manage memory blocks by switching areas of memory between applications. The problem here was that many of the programs were still being written as though the programmer "owned" the machine. A nasty problem of programmer hygiene where they would not "clean up" after themselves (closing open files, releasing allocated memory, deleting stacks,etc.) would produce the so-called "memory leak". These were the zombies left running in the memory that would chew up more resources than existed.

So when OS/2 and then Windows95 were developed, a method of using flags and semaphores was created to act as a traffic cop to direct memory allocation and services. Problem here was that "old school" programmers didn't pick up on this multithreaded way of thinking/programming for quite awhile. So there was quite a bit of fingerpointing as to which application was at fault. (Not, that it's that much clearer now) Multi-threaded programming requires a lot of thought in the development process. Thread tuning involves a great working knowledge of the system that the application will be running on, a bag of chicken bones, and a whole bunch of black magic. But when it's right, you know it.
 

fkhdad

Distinguished
Feb 12, 2009
1
0
18,510
Uncle Jim, your is the most thorough and detailed response I have ever seen on this issue. THANK YOU! The question may have been 2 years old, but how many people have quad core processors. I have built my own PC's for years, but am beginning to feel inadequate with quad core processors and super speed memory busses, PATA and SATA and on and on. I'm running an Athlon 2800 with 1 gb of ram and an ok video card. The only person that complains is my 15 year old son who is getting into some graphic intensive games. All of his friends have or are building monster systems. Seems like a little excess... Could you have imagined just a few years ago that we would have drives for $1.00 per gigabyte or PC's with 8gb of RAM??? Wow! Thanks again for your wonderful commentary, some of us appreciate it when we are looking for answers to questions like these NOW...Fred
 

ufcscom

Distinguished
Feb 18, 2009
1
0
18,510
Amen fkhdad, some of us really appreciate the why's and not just an answer as well. Thank you again Uncle_Jim for the awesome answer from myself! :hello:
 

TheVanman

Distinguished
Apr 19, 2009
8
0
18,510
I know that I am a latecomer to the conversation here, and the technical information about the history of memory development and multitasking was a great read. Thank you for that. I now understand that most programs are written to use only one anyway.

However, I do not see where the original question was really clarified.

If possible, can I get clarification whether or not XP Pro 32 bit will see and potentially use all 4 processing paths in a Quad processor (Say, a Core 2 Quad Q8300 for instance)? Or do I need to go buy Vista to see all the potential processor paths?

I know that XP Pro 32 bit will see and use at least 2 processor paths, the example being my old Intel 3200ghz hyperthread processor shows up as 2 in task manager.

Maybe I am unclear on how the multi threaded processors work. If I get this straight.....They are both dual core, and the quad is different in that it multi tasks each core making it 2 hyper threaded cores where the straight core 2 has 2 non-multi tasked cores. (?)

The real question here is, Will using XP Pro 32 bit render the Quad to half a processor, essentially making it only a Dual?

Or does a Quad show up as 2 processors in task manager, even in Vista?

I am trying to decide whether to purchace a Q8300 or an E 8600, and if I need to budget in Vista if I decide to fully use the Q8300. I would rather stick with XP if I can get away with it.

Thanks for all the insight!
Vanman

 

Raviolissimo

Distinguished
Apr 29, 2006
357
0
18,780


XP32 uses all the cores, as does XP64, Vista 32, and Vista64.

the 32 bit ones just run into a limit with the RAM.

but it still depends on the application.
 

B-Unit

Distinguished
Oct 13, 2006
1,837
1
19,810
/facepalm

ScottEQ did answer the question. But I see you have some fundamental misunderstandings.

The Core2Quad doesnt use hyperthreading. The Core2Quad is 2 Core2Duos 'glued' together into one chip, giving you 4 CPU cores.

As to which to buy, its been debated endlesly, the only non-flamable concensous is if your gaming, get a high speed dual core, if photo/video editing, go for the quad.

O and avoid the Q8XXX, get yourself a Q6600 or Q9xxx.
 

Uncle_Jim

Distinguished
Feb 1, 2009
10
0
18,510
Thanks for the comments. BTW, I use a quad on XP and all 4 processors on the stuff I write.

Here is a tip for you technical folks. (Actually not related to this question/post but can come in handy).

If you you get an error message with the exception hexidecimal code like 930DFC0A (on an i386 type system, windows, linux, etc.) Look at the rightmost character. In this example the "A". If you know how to do a binary breakdown, this would read 1010. "F" is 1111, and "0" is 0000, "1" of course is 0001. The 2 rightmost bits will tell you where to start looking for the error. In the i386 architecture, there are 3 levels of programming "insulation or security". You are only interested in he righmost bits to determine 0,1,2, or 3. There is a great WIKI at http://en.wikipedia.org/wiki/Ring_(computer_security) that is a very slick read for those who want to start "getting under the hood" on these systems.


Uncle_Jim
 
I agree that with the app, thats what counts. But when it comes to just the OS Xp does not manage multicores as well as Vista does. When they are running non multithreaded apps XP tends to load the first core to its max first where as Vista tries to split it up.

NECRO!!!!!!!!!
 




One small bit for clarity's sake: "Cores" generally refers to a physical processor. So "Multicore" means a single processor with multiple physical cores. "Multi~Processor" refers to more than one physical processor, each of which can have more than one 'Core'.

"Threads" generally refers to the software side of the house. "Hyperthreading" is a(n Intel) hardware term for a processor that's able to run more than one thread on a single physical core. When we say "Single Threaded" - that generally refers to a piece of software that has a single, linear process: it goes from A, to b, to c, to d... each in it's turn. "Multithreading" refers to code that's written to run pieces of itself, at the same time, in more than one physical or virtual "place", as well as the ability for a multi~core or Hyperthread~supporting processor's ability to support that.


Apologies to our more technical bretheren for the gross over simplification.


Now, to answer your question: XP can, and does, understand Multiple Cores and does support software that can run multiple threads. So if your program is written to use multiple threads, then it will do so on an XP machine. The limitation(s) are that the software you are running has to do so as well, or the software will only run in one place at a time. This means that - Even when your hardware and your OS support Multi-threaded apps, that does not magically change the app itself. If your (Game) is single threaded, then it can/will only run in a single threaded mode.

If you want a single application to use all 4 cores at once: (1) The Hardware has to support it. If yes, step (2) is that your OS has to support that. If (1) and (2) are Yes, then (3) your application also has to be written to support it.


Vista, as much as it's lambasted, is a little bit more efficient than XP in a Multi~Core/Multi~Thread environment. XP tends to load a single core before reaching out to utilize others. Vista generally tries to spread the load more evenly. (By server side standards, neither is particularly great since the default is what it is and their load balancing behavior can't have it's rules changed. But for the desktop, it's certainly adequate.) Anyways, in both cases a demanding, single treaded app can/will take near exclusive use of a particular core. The advantage is that, even when running only single threaded apps in a multi core environment, your OS can choose to run multiple apps on the multiple cores which are available. (Hint: even when *you* are only running one app at a time, your computer is still running a laundry list of processes.)


Regardless, the short answer is "Yes, your XP machine can utilize all 4 cores".






{Edit for the techies to provide data on the assertion that multithreading was improved in Vista} Source: http://developer.amd.com/documentation/articles/Pages/282007123.aspx#two

The Incremental Improvements Within Vista

The incremental improvements within the OS relating to multicore performance include enhanced support for nonuniform memory architecture (NUMA) systems (such as the AMD Opteron™ family), pervasive prefetching (at both the low level of dealing with page faults, and the system cache read-ahead and the Prefetch/SuperFetch user-feature, which loads oft-used programs in anticipation of user launch), improvements to internally-used data structures and algorithms, an improved DLL loader that creates processes significantly faster, and a much-improved thread pool.

The thread-pool changes include generally improved performance and the ability to support multiple pools per process. This seems a good time to mention Vista's system-wide anti-convoy features. A "lock convoy" is a situation where performance tanks because a large number of threads are blocked, waiting for a resource, and when the resource becomes available, every thread is awoken, all but one fails to acquire the resource, and all but one are set back to waiting. When the number of threads is high enough and the work performed per thread is small, the time spent in overhead can overwhelm the amount of time spent working. That lock convoys arise from attempts to make thread scheduling "fair" is just one of those surprising results that turns concurrent programming into such a challenge.

Vista uses a different lock handoff mechanism that's "unfair," in that there's now a race condition between a lock becoming available and its acquisition by the first thread in the wait list. This makes it possible for a thread to "sneak in" and grab the lock sending the should-have-been-scheduled thread to the back of the wait list (and at least theoretically raising the potential of starvation). Lock convoys were, anecdotally at least, often the root problem of system-wide freezes that lasted for several seconds and then disappeared.


 

CaptainSpok

Distinguished
Apr 22, 2009
5
0
18,510
I'm looking to replace a desktop whose hard drive started clicking. Here are the specs I'm interested in:

TYPE: Desktop PC
PROCESSOR: 3ghz+
CPU: quad core
RAM: 8gb
HARD DRIVE: minimum 500gb, 7200rpm
DRIVE: DVD+-RW and DVD-ROM
PORTS: minimum 4 USB 2.0 and firewire, audio, video inputs
VIDEO CARD: I'd like to be able to run 3 LCD monitors from this PC
USES: Photoshop, website editing, video editing, some gaming

What desktop machines would you recommend?

What vendors would you recommend?

Thanks in advance.
 

TheVanman

Distinguished
Apr 19, 2009
8
0
18,510
Major thanks to B-Unit and Scotteq, and others for bringing this down to my level. I really appreciate it. I was misunderstood about how it all worked and didnt realize that the answer was there. I just didnt get it.

It is now almost clear what I need to shop for.

A couple more question's and I will be set....hopefully.

[[As to which to buy, its been debated endlesly, the only non-flamable concensous is if your gaming, get a high speed dual core, if photo/video editing, go for the quad.
O and avoid the Q8XXX, get yourself a Q6600 or Q9xxx. ]]

I will be doing ALL video and sound editing with this machine, mostly video. My primary app's are TMPGEnc 4.0 Xpress and DVD Author 3, Also Cyberlink Power Director 7.

Is there a particular reason or reasons that you recommend avoiding the Q8XXX processor? Just curious....

I will also need a Mobo. This is the one below that I have in mind. Any thoughts from anyone? If not, any other recommendations to match the Q6600 or Q9xxx? (Sorry this goes off topic a little...but while I have your attention and your wisdom...)

ASUS P5Q PREMIUM intel p45 chipset ATX form factor 4xPCI-E(x16)/1xPCI-E(x1)/2xpci/4xddr2 w/sata2 raid,quad lan(gb),1394,usb 2.0 & audio (cpu type:intel - socket 775)

Thanks again in advance of all the wisdom and help found here.

Vanman
 
The answer is "it depends on if you're going to Overclock, or not".


The reason some people avoid the Q8*** series of Intel Processors is they are a little harder to reach high speeds when you overclock - (low CPU multiplier = more stress on the mobo since 'Processor Speed = Buss speed x Multiplier=') So it's a different set of requirements than just putting together a PC.

If you're not going to overclock, then I recommend getting the latest series processor (at the speed/cost you can afford) because they can perform more "Instructions Per Clock". So even at the same speed, the newer processor will be able to move more data.


Something to think about: The new Core I7 processor is the best available on the market today for encoding/decoding. It appears you are in the position of building completely new, since you mention motherboard as part of your shopping list. So you may want to check out an I7 920 (retails for $250~ish)~based system. It's new, so there is a bit of a price premium, but for your intended use I think it would be worth it.
 

TheVanman

Distinguished
Apr 19, 2009
8
0
18,510
Thanks Scotteq. You have been very helpful.

I wasnt really planning on doing too much in the way in overclocking. Maybe a small amount. I want reliability more than anything else. Of course it will depend on the temperature that the final rig gets up to while rendering videos.

The computer will be in an entertainment center, as it is currently. Right now, I am using a 3.2ghz 800mhz HT processor/Asus mobo combo from circa 2004 that borders on the heat threshold as it is. Not sure how the Quad compares in heat production. As it is, I think I will be seeing a 4x increase in rendering speed.

I dont think I will be affording an I7, but I am now convinced that buying the quad core over the duo is the way to go, now that I know that the XP OS will support it.

If the only reason that the Q8XXX series isnt popular is that it isnt as overclockable, I can accept that for the price. I saw a Q6600 for about $220.00. That is comparable to a the middle to higher end Q8XXX series and just less than the Q9XXX series.

Any other input?

Still looking for the motherboard to accompany.

If anyone feels that this topic should be changed to a different thread, please say so......

Thanks again for your help and comments.

Tha Vanman
 
The Q66 (I've had one running at 3.2 for close to 2 years) is a wonderful overclocker, which is why it is and has remained popular. But at stock speeds, I would still recommend an 8 or 9 series for the improvements in Instructions Per Clock.
 

B-Unit

Distinguished
Oct 13, 2006
1,837
1
19,810
Sry for the delay, but the Q8xxx chips have had most of their cache disabled, hence should have been called 'Pentium Quad-Core'. While I find this just fine for a basic machine (who needs a quad in a basic machine tho) for CPU intensive tasks, you will loose performance to a Q6600 or Q9xxx.
 
Status
Not open for further replies.