Windows Vista question and dual core processors -- how does it work?

hpkeeper

Diamond Member
Jun 30, 2000
4,036
0
0
Okay, I'm a noob when it comes to dual core processors and the technology of Windows Vista.

I'm an avid world of warcraft player, but I'm hearing that Vista is going to split the processor speed which would ultimately take away from the available processor speed available for other applications. Hence I wouldn't have enough processor speed to play WoW.

So... let's say I have a 3.0Ghz dual core processor with Vista on it, would I be splitting the processor into 2 separate processors at 1.5Ghz? therefore any other program that I'd be running would only have 1.5Ghz processor speed to use? Or would one processor be dedicated to Vista and the other dedicated to any other application that I might be running?

How's it work?
 

mechBgon

Super Moderator<br>Elite Member
Oct 31, 1999
30,699
1
0
Big picture: my little sister plays WoW on an AthlonXP 1800+ in WinXP. I don't think you're going to have a problem with a dual-core anything :D

Basically you have a non-issue here. Dual-core processors already have two separate processing cores running at x.xGHz per core and if a program is single-threaded, it can only get x.xGHz of performance no matter what the OS is (WinXP, Linux, Vista, whatever). It might get half the cycles from one core and half from the other core, but your aggregate CPU usage would be hovering around 50% if you have a single-threaded game running with all the CPU power it can ask for.

The benefit is that your system still has the other 50% to run the OS, antivirus, other programs, etc. It makes for a much smoother system than single-core when you're multitasking.
 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
K, hpkeeper this IS a noob question for sure. Pretty bad one too. I'm gonna give you the answer with no noob flames whatsoever provided this is the end of it :)

First: Warcraft is going to be fine. I'm running it on a dual core if that makes you feel better.

Second, If you have a dual core 3GHZ cpu then you have two cores running at 3GHZ each not 1.5GHZ each.

Third, This is VERY briefly how the whole thing works. Applications running on your box are actually running as "threads" or sub-processes. The developer typically spins up a thread for each task he's doing. As a guess, warcraft is probably running a thread for rendering, a thread for networking and at least one main game thread to drive the others . A processor can run ONE thread at a time. It switches many threads in and out one after the other to give the illusion that it's doing more than one thing at a time. A multicore CPU (or multiple single core CPUs) can run one thread per core. This truly allows more than one thing to be done at once. Traditionally a lot of games were written in a single threaded model so the performance gains form multi-core were lost. One core would run the one thread and the other core would have nothing to do. Multithreading and hence good multicore performance are now becoming commonplace. If WoW is still single threaded no biggie. Any CPU modern enough to be multicore is also going to have really fast individual cores so one of them working away while the other is idle won't be noticed.



 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
couple more lil things.

XP and Vista are different but **for the purposes of this discussion** they run the same.

To get an idea of how many threads are being juggled around take a look at the performance tab of task manager. I think you'll realize there is plenty for your second core to be getting done while running a single threaded game (if that's what WoW happens to be)
 

hpkeeper

Diamond Member
Jun 30, 2000
4,036
0
0
So here comes another question then...

why isn't there software written by Microsoft within vista to split the processing speed of all the applications run through vista to make it more efficient?
since all programs are ultimately going to be run through vista anyways...

So i'm guessing that the bigger concern in running Vista will be the RAM, not so much the processor speed if I have a dual core processor.


 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
There is such software. Every modern OS has it built in including Vista.

There is a portion of the kernel that juggles all the active processes and threads and gets them to execute as efficiently as possible with the hardware available.

With single threaded applications there is only so much you can do. Think of this (imaginary) scenario:

Right now I'm on a dual core box.
I'm running 1007 threads for 68 processes.
My CPU is sitting at about 3% on each core.

If Vista shoves EVERY one of those 1007 threads over to a single core I'll be running about 6% on that core and 0% on the other.

Now lets say I fire up a game that is a single threaded app and Vista is wise enough to put it on the 0% CPU. If it's a really taxing game it will spin the CPU up to 100% but I'll still have my other core only running at 6%. There is nothing the OS can do about this. It has literally picked the most efficient thread handling possible but one core is still idle. You can move the thread back and forth between the two cores of course but all you would end up with is 50% and 56%.

At some point if you want performance out of your multicore CPU the developer is going to have to write it for a multicore CPU and that means breaking his code into multiple threads that the OS can juggle around for efficiency.
 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
As for RAM, yea run a Gig and you'll be good. I'm running 2 but that's because a few of my games really need that to run right.
 

Aikouka

Lifer
Nov 27, 2001
30,383
912
126
Originally posted by: hpkeeper
So here comes another question then...

why isn't there software written by Microsoft within vista to split the processing speed of all the applications run through vista to make it more efficient?
since all programs are ultimately going to be run through vista anyways...

So i'm guessing that the bigger concern in running Vista will be the RAM, not so much the processor speed if I have a dual core processor.

Parallelism isn't a simple method to program in, and it's even harder to correctly judge lines of compiled code to parallelize while running. There's also a chance that it will not be faster anyway, because of the overhead that it'd require to parallelize at run-time. Not to mention, some processors would handle this better than others. Processors with shared caches could by-far benefit from parallelized code rather than split, as accessing the same "data" could require calls out to main memory to acquire them, even if the other core already has them in cache. Of course, two cores working on the same data would require a check-in/check-out process to verify that the data isn't being used by an application and hasn't been updated yet.

Also, WoW is single-threaded.

EDIT:

WoW uses about 500mb of ram at once, just keep this in mind ;).
 

Smilin

Diamond Member
Mar 4, 2002
7,357
0
0
Convert to Vista?

If you are running the modern hardware that you mention, then yes. If you are running something from a few years ago then it depends. Might be worth the upgrade, might want to just snag Vista along with whatever rig you buy next.


Note:
SUPER BIASED opinion here. I kinda work for MS :)


Personally I'm digging it more and more. I think we've got a winner here.