Dual core CPU utilization test - X2 4400+

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
This afternoon I tried to run some objective tests of dual core CPU utilization in Windows. I don't claim that these tests, and the results, are exhaustive, but I found them interesting. The rig used to perform the test is described in my sig.

To capture the CPU utilization data I used perfmon.exe with two counters, one for "% Processor Time" for each instance, 0 and 1. I then performed some task on the system, and screen capped the resulting graph of CPU utilization. Simple enough. Here are my results.

http://www.perambula.net/media/1_starting_google_earth.jpg

A simple and quick task to begin with. Fired up Google Earth, zoomed in and spun the globe around a bit. Not surprisingly this program doesn't stress the machine much. In this test the program utilized both CPUs at roughly the same level, with utilization maxing out around 50%.

http://www.perambula.net/media/2_outlook_email_search.jpg

Thought this would be a good test, but I don't have enough email in my inbox. Both processors are utilized while the search is performed, but core 1 gets about 3x the utilization of core 0.

http://www.perambula.net/media/3_load_and_play_cod.jpg

These tests don't tell us much, so let's play some games. This is Call Of Duty 1, single player, 1920 x 1200 widescreen, all gfx settings high. The graph shows the cpu utilization as I load and play the game for about a minute. Note very significant utilization of both cores, with core 1 again getting 2x to 3x the work handed to it. Note also that we never saturated either core.

http://www.perambula.net/media/4_bf2_load_and_log_in.jpg

In this test I load Battlefield 2 and log in to the account server. Settings are 1600 x 1200, all gfx settings on high. This program appears to like core 0 better. Still getting significant utilization of both cores.

http://www.perambula.net/media/5_bf2_In-game_single_player.jpg

In this test I logged in to the account server on BF2 and loaded a single player map. Same gfx settings. PLayed for about 2 or 3 minutes. The program still likes core 0 for the hard work. Both cores heavily utilized. No saturation.

http://www.perambula.net/media/6_bf2_In-game_multiplayer.jpg

Now this gets a little more interesting. Logged in and played a BF2 multiplayer game for a few minutes. Same gfx settings. Here we come closer to saturation on core 0 a couple of times, but never quite hit 100%. Utilization of core 1 is significant, at times exceeding utilization on core 0, but overall running at a level 25% to 75% that of core 0.

http://www.perambula.net/media/7_Playing_dvd.jpg

What about heavy duty audio/video decoding? Here I use PowerDVD to play the Lord of the Rings: The Two Towers extended edition. Dolby Digital 5.1, 1920 x 1200. This task doesn't stress the machine much. PowerDVD likes core 1 for the harder work. Both cores utilized significantly with core 0 running 20% to 120% or so of core 1 utilization.

What these quick tests tell me is that even in the most intense application, i.e. BF2, on this system at least having two cores prevents CPU saturation, and obviously allows the operating system to spread the work out to a significant degree. There are CPU intensive tasks that don't parallelize, and so we see one or the other core getting used more heavily, but the other core continues to pick up a fair bit of the workload. Given the percentages here I think it is clear that in a number of cases a single core would have been saturated.

Edit: One of the things that strikes me about the graphs is the horizontal symmetry of the results in CoD and BF2. As one core loads up the other offloads, and vice-versa. I don't yet know what this means. It might be an effect of the thread scheduling algorithm in windows, or of something else that I haven't figured out yet.

Edit: The CoD graphs aren't really symmetrical in the way the BF2 graphs are, although you can still see the inverse relationship between the load on the two cores.

Edit: this evening I installed the recently released nVidia 81.82 beta drivers. These are the latest versions of the nVidia forceware drivers with optimizations for dual core processors. I set up the test as previously but this time I opened up a perfmon log and spooled out 15 minutes of processor core utilization data while playing BF2. I did not notice a huge performance increase while playing (the game already runs very fluidly on high settings, and I have vsynch on so the graphics can't get faster than 60 fps anyway). The captured processor utilization data was eye-opening, to say the least.

http://www.perambula.net/media/8_bf2_nvidia_beta_drivers.jpg

This image shows an overview of the test data. The strip has a duration of 14:39, so this view hides a lot of detail while giving a good look at core utilization over the whole run. Note the very high utilization of both cores.

http://www.perambula.net/media/8_bf2_nvidia_beta_drivers_detail.jpg

This image shows a detail view of about 3:25 of the data strip. Pretty amazing difference from the previous driver version.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Would be interesting if some people with other games installed ran this test and posted their results. I only have BF2 and CoD installed atm. If anyone wants to do this and needs help setting up perfmon post a message here. Might also be interesting to see the utilization for other intense applications like image processing, but I don't do any Photoshopping.

[yes, this is a bump :)]
 

Fresh Daemon

Senior member
Mar 16, 2005
493
0
0
If I may offer a suggestion:

At those settings, with your gfx card, aren't you creating a bottleneck at the GPU? I'd be interested to see some tests run at 1024x768 or lower, to place more relative load on the CPU. Basically, I'd like to see if they both max out, or if one core runs at less than full tilt.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
That's a very good idea. I will try to do some of that during the day tomorrow. However, even if there is a bottleneck at the GPU, meaning that the CPU often needs to wait for the GPU to finish some task, that shouldn't affect the way that Windows is parcelling out the work between the two cores. Theoretically, anyway. Tests will tell. Suppose the GPU us bottlenecked, and the restriction is removed. The result should be higher utilization of both cores, but I can't see why the distribution of cycles would change much.

Thanks for the idea. I'd also again encourage others to try the same thing on their rigs, with some of their games and apps. The test is really easy to set up.

Edit: actually you've just given me an idea that might explain the horizontal symmetry on the BF2 single- and multi-player tests. If the higher utilization core is loading up because it is driving data to the GPU, that may be why the lower utilization core is offloading at the same time. Have to think that one through.

Oh, and the settings I described are very smooth on my card, not in the least laggy. I have vsynch enabled and usually see 59.x framerates in CoD and BF2.
 

ElTorrente

Banned
Aug 16, 2005
483
0
0
This is a good thread, thanks for running these tests and posting them. This shows a lot of what is going on with dual core, under normal conditions.

Originally posted by: Fresh Daemon
If I may offer a suggestion:

At those settings, with your gfx card, aren't you creating a bottleneck at the GPU? I'd be interested to see some tests run at 1024x768 or lower, to place more relative load on the CPU. Basically, I'd like to see if they both max out, or if one core runs at less than full tilt.

That's a good idea, but I'm pretty sure the results would be the same- based on similar observations I've made with my x2.

Right now, I have one instance of Prime95 running and am watching the task manager. Core0 is generally hovering around 75%, but goes anywhere from 20 up to 90, and when it spikes up or down, the other core has an opposite spike to compensate- so you can see the second core picking up the slack when the first one drops off to do another task (like a common Windows task, or launching other apps, moving the mouse around, clicking windows, typing, etc..).

This shows why X2s are so smooth compared to the single cores - the other CPU is always there to back up the first. You normally don't need to wait for CPU time to accomplish a given task.
 

Fresh Daemon

Senior member
Mar 16, 2005
493
0
0
The result should be higher utilization of both cores, but I can't see why the distribution of cycles would change much.

Should be, but I'm just curious to see if they both max out or not. I would be interested to see what would happen if you pushed your system to the point where it was using 100% of one CPU, or if it'd ever get that far without maxing the other one out.

I wonder what's happening in these tests? For instance, I know right now most games aren't pervasively multi-threaded, but it could be that one CPU could send graphics calculations to the GPU and the other could run AI, physics etc. I don't know if that would work without a patch or if Windows could just recognize the multiple threads coming from the game and set affinity itself.

I'd love to get one of those new dual-core 939 Opterons, but they're so expensive! Maybe I'll get myself one for a Christmas present. :)
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
But most games _are_ pervasively multithreaded. Battlefield 2 for example, has eleven threads running after logging in to a multiplayer game. It's true that most of what we think of as the "CPU intensive" stuff like physics and graphics is not structured for concurrency, but virtually every Windows app is multithreaded, and DirectX games more so. I have 39 processes running on my system right now, and only 2 of them are running one thread.

What the processor utilization tests show is that (taking Battlefield 2 as an example again) BF2.EXE is using both cores significantly. It is obviously not the case, as has been theorized here before, that there is one thread doing everything in the game, and several maintenance threads doing basically nothing. You can see a number of instances in the test results where the utilization of both processors sums up to greater than 100%. But the results are actually better than that, because instead of having core 0 at 100% and core 1 at 15%, we often see both cores at 35% to 60%. This means that even when BF2.EXE is running full out there is quite a bit of processor capacity remaining on both cores. That's why I never notice anymore when Norton decides to update virus defs in the middle of Mashtur City :).
 

Fresh Daemon

Senior member
Mar 16, 2005
493
0
0
It's true that most of what we think of as the "CPU intensive" stuff like physics and graphics is not structured for concurrency,

That's kind of what I meant. The multithreading isn't symmetrical. Look at it this way: we've had AMP for a long time, the GPU is basically another processor. So it follows that games could be multithreaded along asymmetrical lines because they're used to that, however, the common consensus right now seems to be that games aren't coded to take advantage of two (or more) symmetrical processors.

virtually every Windows app is multithreaded, and DirectX games more so

I didn't realise it was that far along already! I did have an SMP rig a couple of years back, but when I was gaming on it one CPU would invariably be at full tilt and the other idle, or a 70/30 split, but certainly no more load than you'd see in a uniprocessor. Dual-core makes more sense every day, for me it's just the price point right now. I could either buy a new dual-core processor or buy another 7800GTX and run SLI. The latter, I'm certain, would give more of a performance boost.

That's why I never notice anymore when Norton decides to update virus defs

People run Norton??? That thing is a virus in its own right!

BTW, have you tried games besides BF2? I'd be interested to see if a game released before dual-core became somewhat prevalent shows the same patterns.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
[So it follows that games could be multithreaded along asymmetrical lines ]

I think the tests absolutely show this. But what surprised me was that it is not so asymmetrical that the second core is of neglible use. Remember that a huge amount of the graphics work is being done in Direct3D and in the video driver, and a large amount of sound processing is being done in DirectSound and the audio drivers. These are certainly all multithreaded, and in fact nVidia is rumored to be working on X2 optimized forceware drivers.

I will test some additional games, although BF2 and CoD are the only two "modern" games I have (i.e. DirectX 8 and later). Should note that CoD1 was released way before dual core, and shows much of the same behavior as BF2. This is almost certainly because both games are heavily reliant on DirectX.
 

Fresh Daemon

Senior member
Mar 16, 2005
493
0
0
But what surprised me was that it is not so asymmetrical that the second core is of neglible use. Remember that a huge amount of the graphics work is being done in Direct3D and in the video driver, and a large amount of sound processing is being done in DirectSound and the audio drivers. These are certainly all multithreaded, and in fact nVidia is rumored to be working on X2 optimized forceware drivers.

Yes, and it's great that you demonstrated this because a lot of people were assuming that the first core would run the game and the second would basically be idle except for O/S housekeeping. This proves it ain't so.

I will test some additional games, although BF2 and CoD are the only two "modern" games I have (i.e. DirectX 8 and later). Should note that CoD1 was released way before dual core, and shows much of the same behavior as BF2. This is almost certainly because both games are heavily reliant on DirectX.

Maybe some OpenGL games? Doom III and Serious Sam 1e/2e are both candidates. I believe these games could still benefit from dual-core just because e.g. sound processing can be offloaded to the other core.
 

orangat

Golden Member
Jun 7, 2004
1,579
0
0
Does anyone notice in the 4 gaming benchmark graphs, the added values of both cpu's do not exceed 100%? That means basically the work of 1 core is spread out.

This is quite apparent in the benches were the graphs are reflections at the 50% y-axis which proves the load is split up quite evenly to both cores but never exceeding the capability of 1 core.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Look closely. There are a number of areas in the graph where utilization sums up to 100%, and a few where it exceeds 100%. I am talking about the BF2 multiplayer and single player tests.

Also note that even in cases where they sum up to 100%, and there are many of these, that would saturate a single core, and anything else that is happening in the OS at that time would have to wait, or the game would have to wait.

Edit:

I marked up two of the images to show points in time where utilization of both cores either equaled or in one case exceeded 100%. I admit the latter case is rare, but the 100% cases satisfy the assertion that a single core would be saturated. I am not exactly sure why this one process rarely seems to use more than 100% between both cores, but it is the fact that it can use 100% of a 64 bit core and still leave almost the full capacity of another core available to other processes that is important. This has to equal smoother performance in just about any situation, and that has been my actual experience since I built my rig.

http://www.perambula.net/media/3_Load_and_play_CoD_noted.jpg

http://www.perambula.net/media/5_BF2_In-game_Single_Player_noted.jpg
 

orangat

Golden Member
Jun 7, 2004
1,579
0
0
You have to admit that it looks like games running on the X2 are limited to working out one core (on average) full tilt, under heavy load conditions. The reflection graph tells the story quite plainly. I have only noted just one instance where the load is 110%. And we must not forget overheads which explains why a slower single core cpu beats the X2 in game benchmarks.

Yes, changes like that would probably be fairly straightforward. Right now most games are processing in a single-threaded loop, i.e gather input, update model, update sound, render view, display frame, start over. What you have to do is perform a concurrency analysis on the data structures touched by each of those major chunks of processing to find the dependencies. For example, you probably can't start rendering a soundscape until you have gathered input and updated the model. But once soundscape rendering starts it should be able to be concurrent with other processing. You might have a graphics rendering thread, and a soundscape rendering thread, both waiting on a semaphore that tells them the world model is refreshed, at which point they render the view and soundscape concurrently. These kinds of changes will likely be where games go first in taking advantage of multiprocessor architectures.

The key industry change that is taking place is that multiprocessing is being mainstreamed into the consumer market. Windows already takes advantage of it to a great extent, and in the future games and other apps will be specifically architected to perform CPU-intensive tasks concurrently on more than one core.

I'm not so optimistic that software will quickly take advantage of the dual core architecture. AT had some interviews articles which suggested the reverse is more true and that directx is getting to be a pain with up to 50% processing overheads. So it might take more than a simple driver update from Nvidia/ATI to maximise the output of dual cores.

I think it will take quite a revolution for things to work out and thats why AMD has marketed the FX cpus as the ultimate gamer as opposed to X2 which the marketing brief states that it is perfect for multitaskers and media app processing (which is 100% on the mark).
 

ElTorrente

Banned
Aug 16, 2005
483
0
0
Originally posted by: orangat
You have to admit that it looks like games running on the X2 are limited to working out one core (on average) full tilt, under heavy load conditions. The reflection graph tells the story quite plainly. I have only noted just one instance where the load is 110%. And we must not forget overheads which explains why a slower single core cpu beats the X2 in game benchmarks.

Please, show us a slower clocked single core beating a faster clocked dual core. What benchmark are you basing this on? :confused:

I always see people claiming single core is faster in gaming- based on what? An FX-57, clocked at 2.8ghz, is ONLY a couple frames per second faster than the X2 4800- which is only clocked at 2.4ghz. If the X2 was clocked as fast- it would beat the FX57.

EDIT: Here's some gaming BENCHMARKS, in case anyone is curious.
 

orangat

Golden Member
Jun 7, 2004
1,579
0
0
Originally posted by: ElTorrente
.....
Please, show us a slower clocked single core beating a faster clocked dual core. What benchmark are you basing this on? :confused:

I always see people claiming single core is faster in gaming- based on what? An FX-57, clocked at 2.8ghz, is ONLY a couple frames per second faster than the X2 4800- which is only clocked at 2.4ghz. If the X2 was clocked as fast- it would beat the FX57.

Here you are. See for yourself. A 4200+ X2 is is always beat by a 3800+ and is comparable to a 3500+ running at the 'same' speed.
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2410&p=7

The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.
 

ElTorrente

Banned
Aug 16, 2005
483
0
0
Originally posted by: orangat
Originally posted by: ElTorrente
.....
Please, show us a slower clocked single core beating a faster clocked dual core. What benchmark are you basing this on? :confused:

I always see people claiming single core is faster in gaming- based on what? An FX-57, clocked at 2.8ghz, is ONLY a couple frames per second faster than the X2 4800- which is only clocked at 2.4ghz. If the X2 was clocked as fast- it would beat the FX57.

Here you are. See for yourself. A 4200+ X2 is is always beat by a 3800+ and is comparable to a 3500+ running at the 'same' speed.
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2410&p=7

The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.

Huh?!?!

The 3500 is - literally - .1 fps "faster" in about 3 of those tests than the 4200 is. In the remainder of the tests, the X2 4200 is faster than the 3500. Those look evenly matched to me..

I edited my post above to include a link to some benchmarks, also.

EDIT: C'mon.. you can do better than that if you are gonna make claims. :D The link I included in my above post shows a pretty clear lead by evenly clocked X2s.
 

Markfw

Moderator Emeritus, Elite Member
May 16, 2002
27,288
16,124
136
The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.
That ids the most ignorant statement I have seen in a long time... I won't even bother to follow up. Somebody else please set this idiot straight, I have work to do.
 

ElTorrente

Banned
Aug 16, 2005
483
0
0
Originally posted by: Markfw900
The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.
That ids the most ignorant statement I have seen in a long time... I won't even bother to follow up. Somebody else please set this idiot straight, I have work to do.


Heh - yeah I didn't realize I had bought an "X2 9600".


 

orangat

Golden Member
Jun 7, 2004
1,579
0
0
Originally posted by: ElTorrente
Originally posted by: orangat
Originally posted by: ElTorrente
.....
Please, show us a slower clocked single core beating a faster clocked dual core. What benchmark are you basing this on? :confused:

I always see people claiming single core is faster in gaming- based on what? An FX-57, clocked at 2.8ghz, is ONLY a couple frames per second faster than the X2 4800- which is only clocked at 2.4ghz. If the X2 was clocked as fast- it would beat the FX57.

Here you are. See for yourself. A 4200+ X2 is is always beat by a 3800+ and is comparable to a 3500+ running at the 'same' speed.
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2410&p=7

The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.

Huh?!?!

The 3500 is - literally - .1 fps "faster" in about 3 of those tests than the 4200 is. In the remainder of the tests, the X2 4200 is faster than the 3500. Those look evenly matched to me..

I edited my post above to include a link to some benchmarks, also.

EDIT: C'mon.. you can do better than that if you are gonna make claims. :D The link I included in my above post shows a pretty clear lead by evenly clocked X2s.

What a clown you are, its evenly matched in your own words with a 3500+ and _ALWAYS_ beat by a 3800+ which is 400+ cpu units slower. Its right in front your eyes.

If you're going to make the excuse that AMD processor ratings don't count, you're just reaching and making excuses.



 

orangat

Golden Member
Jun 7, 2004
1,579
0
0
Originally posted by: ElTorrente
Originally posted by: Markfw900
The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.
That ids the most ignorant statement I have seen in a long time... I won't even bother to follow up. Somebody else please set this idiot straight, I have work to do.


Heh - yeah I didn't realize I had bought an "X2 9600".

No the processor rating is 4800+, I never said it was a 9600 don't make a strawman argument.
And my reply was in the context of the question that the 4800+ is only running 2.2Ghz which ignores the fact that there are 2 cores not just 1, otherwise you might as well call it a 3500+.
 

ElTorrente

Banned
Aug 16, 2005
483
0
0
Originally posted by: orangat
Originally posted by: ElTorrente
Originally posted by: orangat
Originally posted by: ElTorrente
.....
Please, show us a slower clocked single core beating a faster clocked dual core. What benchmark are you basing this on? :confused:

I always see people claiming single core is faster in gaming- based on what? An FX-57, clocked at 2.8ghz, is ONLY a couple frames per second faster than the X2 4800- which is only clocked at 2.4ghz. If the X2 was clocked as fast- it would beat the FX57.

Here you are. See for yourself. A 4200+ X2 is is always beat by a 3800+ and is comparable to a 3500+ running at the 'same' speed.
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2410&p=7

The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.

Huh?!?!

The 3500 is - literally - .1 fps "faster" in about 3 of those tests than the 4200 is. In the remainder of the tests, the X2 4200 is faster than the 3500. Those look evenly matched to me..

I edited my post above to include a link to some benchmarks, also.

EDIT: C'mon.. you can do better than that if you are gonna make claims. :D The link I included in my above post shows a pretty clear lead by evenly clocked X2s.

What a clown you are, its evenly matched in your own words with a 3500+ and _ALWAYS_ beat by a 3800+ which is 400+ cpu units slower. Its right in front your eyes.

If you're going to make the excuse that AMD processor ratings don't count, you're just reaching and making excuses.


You said that a slower CLOCKED single core is faster than a dual core in gaming. I asked to see some benchmarks, and you can't produce them.

You are now arguing about naming conventions instead. :confused:

So, once again.. please show us a single core beating a dual core in gaming at a slower clock speed, like you claimed - it just isn't gonna happen...

You are seriously the first person I've ever seen who is arguing one is better or faster than the other because it is named lower. :D

Wow- that's compelling, and pretty creative :roll:

 

natto fire

Diamond Member
Jan 4, 2000
7,117
10
76
Originally posted by: orangat
Originally posted by: ElTorrente
Originally posted by: orangat
Originally posted by: ElTorrente
.....
Please, show us a slower clocked single core beating a faster clocked dual core. What benchmark are you basing this on? :confused:

I always see people claiming single core is faster in gaming- based on what? An FX-57, clocked at 2.8ghz, is ONLY a couple frames per second faster than the X2 4800- which is only clocked at 2.4ghz. If the X2 was clocked as fast- it would beat the FX57.

Here you are. See for yourself. A 4200+ X2 is is always beat by a 3800+ and is comparable to a 3500+ running at the 'same' speed.
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2410&p=7

The 4200+ X2 is clocked at 2.2Ghz which is like having 1 core at 4.4Ghz.

Huh?!?!

The 3500 is - literally - .1 fps "faster" in about 3 of those tests than the 4200 is. In the remainder of the tests, the X2 4200 is faster than the 3500. Those look evenly matched to me..

I edited my post above to include a link to some benchmarks, also.

EDIT: C'mon.. you can do better than that if you are gonna make claims. :D The link I included in my above post shows a pretty clear lead by evenly clocked X2s.

What a clown you are, its evenly matched in your own words with a 3500+ and _ALWAYS_ beat by a 3800+ which is 400+ cpu units slower. Its right in front your eyes.

If you're going to make the excuse that AMD processor ratings don't count, you're just reaching and making excuses.

Too bad you said it was beat by a lower clocked single core. Don't get hyped up in that PR system too much there, buddy. A 3500+ is clocked the same as a X2 4200+ look harder at the benches, they have clockspeed next to them. I would personally take the .1 FPS hit in those 3 games to reap the benefits of dual core. LOL
 

Leper Messiah

Banned
Dec 13, 2004
7,973
8
0
For normal apps, yes, its rather hard to get higher than 120% total usage. Which is why i always have 2 copies of F@H running in the BG. I'll always get WU's done, even while gaming, because even intense games can't load both cores.