Windows 7 CPU Parking


 

Posted

I've been hunting ghosts in my new machine for a while now, and I think I might have finally found something tangible. I use an Intel I7 processor with 8 logical cores, and on a hunch, I decided to stress City of Heroes and see what my machine was doing. Turns out four of my eight cores were running at around 80-90% efficiency, and four were doing nothing. I thought City of Heroes just wasn't able to use them (which may still be the case), but no. Turns out Windows 7 had "parked" them.

I read up on this a bit, and it seems Windows 7 comes with some kind of new fancy feature to save power by parking processor cores when they aren't needed, and no-one thought to give any kind of user interface to control this. I realise the intention is for those cores to be unparked when they are needed, but City of Heroes shows up as using 22 threads and practically capping out all four of my "unparked" cores, yet the others are still locked and parked out. There does seem to be a method for disabling CPU parking, but it seems to involve registry editing, which is something I am SERIOUSLY not comfortable with.

In fact, here's what I found. Because I don't tend to trust "some guy" from "some forum" somewhere on the 'net on his word when it comes to sticking my hands deep inside the mysterious inner workings of what is actually a very expensive machine, I thought I'd bring this here and ask you, guys. I didn't want to reuse that other thread because I made enough of a fool of myself there and I want to focus on JUST CPU parking for a bit.

A few questions pop up on their own:

*Is there any point to keeping CPU Parking on when I'm on an AC line?
*How likely is Windows to be dumb and limit programme performance rather than activating parked cores?
*How safe is it for me to fiddle with registry in this manner? I mean safe for the operating system and SAFE FOR THE HARDWARE.
*Is there any point at all in looking into this?

Can you help me out here?


Quote:
Originally Posted by Arcanaville View Post
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.

 

Posted

Okay, Sam, I think you need to read up on HyperThreading: http://en.wikipedia.org/wiki/Hyper-threading

Here's how I explained Hyperthreading several years ago: http://www.mepisguides.com/fti/rig-r...g-rec-cpu.html

Quote:
Okay, at this point I should probably explain Hyperthreading. Hyperthreading is the term Intel uses to describe the technology that allows a Pentium4 processor to be seen as two processors by the computer system. Intel advertises Hyperthreading as a performance boost, like you are getting 2 processors for the price of 1. While not an outright lie, it is important to understand some factors behind Hyperthreading.

The Pentium4 has a small problem. It is an extremely fast processor. Given the amount of marketing made by Intel that speed=power, this does not sound like a problem, and it is easy to question why being fast is a problem. Understand two items

Being fast, in and of itself, is not a bad thing.
The ends do not justify the means.

The problem is in how Intel got the Pentium4 design to be fast. If you want an engineers side of the story, read over at Arstechnicia for a more in-depth view of the Pentium design. The short story is that the Intel Pentium4 design has an extremely long processing pipeline. Much like the factory at Ford Motor Company, a computer processor does its job in an assembly-line fashion. The Pentium4 has many different steps in the assembly line that do just a little bit of work.

The more assembly line units there are in the processor, the less work each unit has to perform, and the "faster" the instruction can move through each section.

This is known as "IPC" or Instructions Per Clock and refers to the amount of work that can be done each time the processor completes a cycle of the clock. The Intel Pentium4, by design, cannot process many instructions per clock cycle. But, because the Pentium4 design is so speedy, the design should be able to make up for the amount of processing work that is lost in simplifying each step.

The problem is, much as in an assembly line in a car factory, things break. Think back to Ford Motor Company for a second. When a product breaks Ford simply shuts down that part of the line until the broken product is fixed or replaced. Meanwhile, the work that is supposed to occure is either shifted to another assembly line or halted at that point.

Computer processors don't have that luxery. When a part of the process fails, the entire instruction has to be started over. This is when you get into things like Branch Prediction that is supposed to guess how an instruction is going to be processed. The better the branch prediction, the less likely part of the assembly line will break.

The problem is with the Pentium4 design is that there is a significant performance hit for missed instructions or aborted processing lines. There is also the problem that Depending on the instruction being processed, anywhere from 25% to 75% of the processor may not be doing anything. Hence the requirement of HyperThreading. HyperThreading allows for certain types of processess to be computed at the same time. So, if one of the processes breaks and has to be restarted, at least the processor completed SOMETHING.

The actual real-life impact of HyperThreading is that it allows the processor to be more efficient in some multiple application enviroments. If you do a lot of multi-tasking that uses different types of applications, the 2 logical processors can boost percieved performance. However, if you do a lot of multi-tasking with applications that are of the same type and use the same instructions to process, you will suffer a performance decrease. Similar to if you run an application that is written with 2 real processors in mind. Sometimes you will get a boost of performance, and sometimes you will get a performance hit.

Intel prefers to call their Hyperthreading technology under the term SMT, for Simultaneous Multi Threading. The intent is to indicate that the processor is capable of processing two processor threads at once instead of just one, which is typical of just about all other processors. However, Intels implementation of SMT is drastically different from SMP, or Symmetric Multi Processing. SMP refers to having multiple physical processors installed and available to the operating system and program. This allows the operating system and program full access to all of the system components.

The ineffieciency of the Pentium4 design plays into Intels hands for promoting SMT. With between 25-75% of the processor not doing anything, even enabling just part of that wasted power to be used enables the Pentium4 designs to be percieved as more powerful. However, with the thread and usage restrictions on HyperThreading, SMT is no substitute for SMP, and users should understand that SMT's only real function in the Pentium4 processor is to make a horrible design seem somewhat decent.
The fact is, although you have 8 logical cores, you only have 4 physical cores. Under the restrictions of Hyper-Threading, those 8 logical cores will only come into play when the operating system is handling tasks that are varied. City of Heroes probably is not going to make calls that are varied enough to use those extra cores.

In most cases, forcing HTT on applications like City of Heroes will cause performance decreases... not performance increases.


 

Posted

Just leave it alone. Any change is unlikely to result in real performance improvement. The reason no interface is provided is because Windows knows better than you, I or Joe Blow on some tweaker forum how to schedule CPU time, and as you've probably found on the net, there are people out there who think that if Notepad isn't maxing out their quad-core i7 CPU then there must be something wrong.

Regarding your specific observations, you only have four cores in your CPU. The other four "logical cores" don't really exist outside of hyperthreading. So, if four cores are running balls-out at 80-90%, everything is hunky-dory. COH doesn't really scale up to lots of cores that well so there's no reason to concern yourself.


 

Posted

My short opinion: Don't mess with it. It won't make CoH go faster anyway.

Everything we've been told is that CoH processing will effectively utilize no more than 2 cores. That's the way it's been designed. So even though CoH may have 22 threads, I'm betting a lot of them are sitting around waiting for a timer to active or reading from network sockets. You trying to "wake up" idle cores won't make the game you experience go faster.

Multiple cores aren't magic. Hardware vendors are doing it because it's the easiest way to add computing capacity. But it only works if programs are designed to take advantage of them. And parallel programming is usually very difficult. Put it this way: when CoH was designed, there weren't any multi-core CPUs on the market. And it's not functionality you can "just add" to software very easily.


 

Posted

Quote:
In most cases, forcing HTT on applications like City of Heroes will cause performance decreases... not performance increases.
While I'm a fan of leaving well enough alone on the I-7 since CHV isn't going to be pushing enough to utilize it properly, the above statement was flatly proven false using a P4-3GHz-HT. Enabling the renderthread flag within CHV showed about a 15% performance boost on that proc while hyperthreading was enabled.


Be well, people of CoH.

 

Posted

Quote:
Originally Posted by Samuel_Tow View Post
I've been hunting ghosts in my new machine for a while now, and I think I might have finally found something tangible. I use an Intel I7 processor with 8 logical cores, and on a hunch, I decided to stress City of Heroes and see what my machine was doing. Turns out four of my eight cores were running at around 80-90% efficiency, and four were doing nothing. I thought City of Heroes just wasn't able to use them (which may still be the case), but no. Turns out Windows 7 had "parked" them.
From my experience of watching what the 8 threads are doing while the game is running is that two of them are running the game (CoH is built for 2 threads) and the other 2 threads are running all the other stuff running in the background or other programs.

The good news is that when I dual box on a i7, the second instance of CoH grabs two of the unused threads rather than stacking on the ones used by the first instance. So, i7s are a dual boxer's dream.

Now, if we can only get to the point to convince a Crossfired ATI set-up to use the 2 GPU for two instances of CoH instead of trying to run both instances on the first GPU, we'd be golden.


Speeding Through New DA Repeatables || Spreadsheet o' Enhancements || Zombie Skins: better skins for these forums || Guide to Guides

 

Posted

I've been very impressed with my new rig's ability to bounce between two sessions of CHV with alt-tab and the performance I retain while doing so.


Be well, people of CoH.

 

Posted

I want to say that I know a bit about multithreading and parallel programming, as I've had to host a presentation on the subject, so I'm aware of the limitations. I also know that City of Heroes is said to not be using more than two threads, though I keep hoping that all the engine tweaks will loosen that up. I also know that there's lost to be gained from proper application of multithreading, though how applicable it is to a game of this kind of engine I can't say.

On the note of "Windows knows best," no. Just no. Windows does very much NOT know best. Windows, especially Windows 7, is built under the assumption that I'm some kind of knuckle-dragging idiot who's liable to poke his eye on the sharp corners of a drop-down menu, so all of those are hidden and replaced with large, colourful icons to hold my child-like, limited attention span focused. I'm not supposed to know how my computer operates because I'm too dumb to know what to do with that knowledge, so all my system control functions are buried under a mountain of menus. I still remember having to download a service pack "for IT specialists," which so hideously complicated... That it was a self-extracting self-installer I had to run and do nothing else.

As such, I have precisely ZERO trust for Microsoft's ability to predict what decent settings are or what's good enough for me. In the case of CPU parking, the idea is for the technology to conserve power. Well, fat load of good this does me on a rig with a beefy power unit and constantly hooked up to a UPS unit. No offence, but if I wanted to save the planet, there are plenty of OTHER things I could do. I pay for my power consumption, I'm not on a limited-span battery, so who gives a crap about a marginal gain in power efficiency? If it's not dangerous to the hardware and doesn't increase equipment fatigue, then I very much do not care.

That said, I'm still going to go listen to you guys and not mess with it. Having a switch I can flip if I so desired is one thing, and I wouldn't have even made a point about it, but when I have to dig into my registry to alter hardware driver flags... That's not something I'm going to do just for no reason, even if it irritates me that something like this is done for my "benefit." I realise it probably won't help speed City of Heroes up, and yes, I realise that's just four physical cores with two logical cores each (hence why I said eight logical cores total), but I'd still disable this if a less invasive option were introduced for it.

So I guess the consensus is to leave it alone, then?


Quote:
Originally Posted by Arcanaville View Post
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.

 

Posted

You could crank up Zloth's demo launcher and have it run comparisons for you tracking average FPS.

Run a set or three without the tweak. Run it again with the tweak.

If there's no difference, undo the tweak for safety's sake. If there is a difference, come running back here with the demo launcher data dumps so we can go ooo, ahhhhh, and do the tweak ourselves.

At least, that's what I did back when I was testing the renderthread flag on my P4.


Be well, people of CoH.

 

Posted

Quote:
Originally Posted by Samuel_Tow View Post
On the note of "Windows knows best," no. Just no. Windows does very much NOT know best. Windows, especially Windows 7, is built under the assumption that I'm some kind of knuckle-dragging idiot who's liable to poke his eye on the sharp corners of a drop-down menu, so all of those are hidden and replaced with large, colourful icons to hold my child-like, limited attention span focused. I'm not supposed to know how my computer operates because I'm too dumb to know what to do with that knowledge, so all my system control functions are buried under a mountain of menus.
Just as an aside, given the people I have to work with (read: fix things for) every single day, this is actually a *really* good assumption to make. And in general STILL seems to give too many people too much credit.


 

Posted

Quote:
Originally Posted by Memphis_Bill View Post
Just as an aside, given the people I have to work with (read: fix things for) every single day, this is actually a *really* good assumption to make. And in general STILL seems to give too many people too much credit.
While true 99% of the time, for we 1%ers.... well, we have registry hacks, don't we?


Be well, people of CoH.

 

Posted

Quote:
Originally Posted by Bill Z Bubba View Post
You could crank up Zloth's demo launcher and have it run comparisons for you tracking average FPS.

Run a set or three without the tweak. Run it again with the tweak.

If there's no difference, undo the tweak for safety's sake. If there is a difference, come running back here with the demo launcher data dumps so we can go ooo, ahhhhh, and do the tweak ourselves.

At least, that's what I did back when I was testing the renderthread flag on my P4.
You know, thing is I don't want to root around in my registry without a very good reason. I fancy myself a fairly advanced user, but I know when I'm out of my depth, and hand-editing registry files when I have no direct understanding of what they mean or how they operate is pretty much the deep end of the pool in this regard.

To be honest, what I was hoping to hear when I made this thread was something along the lines of "Yeah, that's right! Fix that bugger! Here's how to do it. Don't worry, it's safe. And it'll make a big difference." Anything short of that really isn't worth messing with things I don't understand. I don't want to turn into one of the people Memphis Bill fixes things for

If the general consensus is don't bother, it's better to leave it alone and it won't make a difference anyway, then I just don't want to fiddle with it. Let Windows do its thing for the moment.


Quote:
Originally Posted by Arcanaville View Post
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.

 

Posted

Hyperthreading allows a core that has it to be a bit more efficient with the use of it's "guts" by running two threads at the same time instead of the OS scheduling them sequentially.

While Sam is right about the safety scissors and bubble wrap of the Windows 7 UI and administration functionality you have to remember that the core purpose of a multitasking OS is to share limited resources among all the tasks that want to use them.

As for CPU parking, now that Intel has CPUs that will automatically overclock if the workload can be handled by fewer cores and AMD has CPUs can power down unused cores (and in the future also overclock the remaining), giving the OS the "smarts" to restrict the number of cores being used until a certain backlog is reached seems like a good idea to me.


Father Xmas - Level 50 Ice/Ice Tanker - Victory
$725 and $1350 parts lists --- My guide to computer components

Tempus unum hominem manet

 

Posted

Interesting stuff. I might just have to take Bill Z's challenge and see if it does make a difference. Suggestions for a good test run?


It is known that there are an infinite number of worlds, simply because there is an infinite amount of space for them to be in. However, not every one of them is inhabited. Therefore, there must be a finite number of inhabited worlds. Any finite number divided by infinity is as near to nothing as makes no odds, so the average population of all the planets in the Universe can be said to be zero. From this it follows that the population of the whole Universe is also zero, and that any people you may meet from time to time are merely the products of a deranged imagination.

 

Posted

Quote:
Originally Posted by Samuel_Tow View Post
I want to say that I know a bit about multithreading and parallel programming, as I've had to host a presentation on the subject, so I'm aware of the limitations. I also know that City of Heroes is said to not be using more than two threads, though I keep hoping that all the engine tweaks will loosen that up. I also know that there's lost to be gained from proper application of multithreading, though how applicable it is to a game of this kind of engine I can't say.
Exactly. While in certain types of loads you MAY realize performance increases, likely CoH isn't one of those things that will see performance boosts from massive parallelism.

Quote:
On the note of "Windows knows best," no. Just no. Windows does very much NOT know best.
While I agree with the general sentiment, it's when we get down to brass tacks and specific cases that I'll likely disagree with you.

I noticed you didn't touch processor affinity. Why? Oh yeah, because fiddling with that usually will destabilize the system.

Quote:
Windows, especially Windows 7, is built under the assumption that I'm some kind of knuckle-dragging idiot who's liable to poke his eye on the sharp corners of a drop-down menu, so all of those are hidden and replaced with large, colourful icons to hold my child-like, limited attention span focused.
Do you want a NICE response to this?
Or do you want a FUNNY response to this?
Or are you going to lie and say that you want an HONEST response to this?

Nice: I'm sure you're probably right. You might even know better.
Funny: ... ... Oh the irony!
Honest: Likely, with regards to Window 7's multithreading subsystem, you ARE the equivalent of some knuckle-dragging mouth-breather. Simply understanding multithreading and parallelism as concepts (even in-depth) doesn't automatically mean you know better than the people who implemented the subsystem or the other systems resting on top of it and are therefore "okay" to futz with it.

I don't mean to be rude. Just trying to be unambiguous about it.

Quote:
I'm not supposed to know how my computer operates because I'm too dumb to know what to do with that knowledge, so all my system control functions are buried under a mountain of menus. I still remember having to download a service pack "for IT specialists," which so hideously complicated... That it was a self-extracting self-installer I had to run and do nothing else.
If you want complete control over your system, use BSD or Linux.

You're using a consumer-grade OS. It's not going to be anywhere near as configurable. Sorry.



Clicking on the linked image above will take you off the City of Heroes site. However, the guides will be linked back here.

 

Posted

Quote:
Originally Posted by Samuel_Tow View Post
Windows, especially Windows 7, is built under the assumption that I'm some kind of knuckle-dragging idiot who's liable to poke his eye on the sharp corners of a drop-down menu, so all of those are hidden and replaced with large, colourful icons to hold my child-like, limited attention span focused.
Yeah, pretty much. Like....
  • the person who thought the CD-ROM tray was a cup-holder.
  • the person who didn't understand why their computer wasn't working and couldn't tell if their computer was plugged in or not - because it was too dark to see, since there was a power outage.
  • like the NUMEROUS people who can't find the 'ANY' key, when instructed to "Press any key."
  • like the person who thought the mouse was a foot pedal.
  • like the person trying to scan a document by holding it up to the monitor.

Do I need to continue?


Paragon City Search And Rescue
The Mentor Project

 

Posted

Quote:
like the person trying to scan a document by holding it up to the monitor
but.. but.. it's got a webcam!


Be well, people of CoH.

 

Posted

The mouse isn't a foot pedal????

NOW I find out!


@Mental Maden @Maden Mental
"....you are now tackle free for life."-ShoNuff

 

Posted

Quote:
Originally Posted by Ironblade View Post
Yeah, pretty much. Like....
  • the person who thought the CD-ROM tray was a cup-holder.
  • the person who didn't understand why their computer wasn't working and couldn't tell if their computer was plugged in or not - because it was too dark to see, since there was a power outage.
  • like the NUMEROUS people who can't find the 'ANY' key, when instructed to "Press any key."
  • like the person who thought the mouse was a foot pedal.
  • like the person trying to scan a document by holding it up to the monitor.

Do I need to continue?
Most of those are Urban Legends...




[ ProTip: The banner is a link to art refs!! | The Khellection | The HBAS Repository | Brute Guides (4/16/10) | How To Post An Image - A Quick Guide ]
Biggest Troll on the forums? I'll give you a hint:

 

Posted

Quote:
Originally Posted by Kheldarn View Post
Most of those are Urban Legends...
  1. Not a legend. Have seen imbeciles do this even within the last 5 years.
  2. Not a legend. Have actually had customers call up with this. It took actual effort to not scream at them at the top of my lungs. On top of this, they'd had a fire setting off a WATER sprinkler system and wanted our help in getting them back up and running NOW. No joke. No BS.
  3. Not a legend. Have actually had someone, non-jokingly, ask about an "any key". Granted this was more than 10 years ago, but still.
  4. Never run into this. Possible it's an urban legend.
  5. Never run into this. Have met people who were stupid/technologically illiterate enough that they could probably be sent on a snipe hunt for something like this.



Clicking on the linked image above will take you off the City of Heroes site. However, the guides will be linked back here.

 

Posted

Quote:
Originally Posted by Hyperstrike View Post
Honest: Likely, with regards to Window 7's multithreading subsystem, you ARE the equivalent of some knuckle-dragging mouth-breather. Simply understanding multithreading and parallelism as concepts (even in-depth) doesn't automatically mean you know better than the people who implemented the subsystem or the other systems resting on top of it and are therefore "okay" to futz with it.

I don't mean to be rude. Just trying to be unambiguous about it.
No offence taken. The goal of this was to understand how smart fiddling with that was, and you guys have pretty much unambiguously told me that it was not very smart, indeed. I don't pretend to be some kind of computer genius, and since I'm asking, I clearly don't know enough to just go do it, or even know if I want to so much as try, so I submit that, in that particular aspect, I am a newbie all the way.

My rant was directed towards a more general case. Something as simple as NOT hiding the extensions of known file types for me, because I'd rather know, myself, rather than just letting the system know and handle them would be a good example. Yeah, the system recognises it as a "Text Document," but it recognises *.txt, *.log and basically everything I have set up to open with Notepad. Or, say, setting up a system restore point. I still don't know where that is hidden in Windows 7, because it's not in the same play where rolling back to an earlier restore point is, so I have to search for it every time. And Lord help me once I start needing that disk management tool to alter my partitions, because I've no idea where to even look. It's in Computer Management in XP, I believe, but Windows 7 doesn't seem to follow any logic that I can deduce. At least the thing still allows me easy access to my TCP/IP settings, and Lord knows I need those with how often our work group here messes with the network settings for the building.

Basically, I was looking for one of two things:
1. An encouraging, positive answer to just go do it, in which case I would have.
2. Practically anything else, in which case I would do nothing. That's what I ended up getting, and that's fine. I can accept this.


Quote:
Originally Posted by Arcanaville View Post
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.

 

Posted

Quote:
Originally Posted by Samuel_Tow View Post
Or, say, setting up a system restore point. I still don't know where that is hidden in Windows 7, because it's not in the same play where rolling back to an earlier restore point is, so I have to search for it every time. And Lord help me once I start needing that disk management tool to alter my partitions, because I've no idea where to even look. It's in Computer Management in XP, I believe, but Windows 7 doesn't seem to follow any logic that I can deduce
Do you use the Start menu's search bar?

Hit Start and immediately type "system restore". I see the System Restore app, followed by "Restore... etc, etc" and "Create a restore point".

"disk management" gives me "create and format hard disk partitions", which is a reasonable name for what turns out to be Disk Management.

It's a great little feature. You can also flip Control Panel back to something more classic with "View by: Small icons"


Forum mod: less obtrusive signatures

 

Posted

Quote:
Originally Posted by Back_Blast View Post
Interesting stuff. I might just have to take Bill Z's challenge and see if it does make a difference. Suggestions for a good test run?
Go find an area that hammers your performance, turn on demo record, kill stuff for 5-10 minutes, turn off demo.

Use that as the test demo. Should give you a good idea. Also, be sure to turn off vertical sync during the demo playbacks so that you have a more accurate test.


Be well, people of CoH.

 

Posted

Quote:
Originally Posted by Bill Z Bubba View Post
Go find an area that hammers your performance, turn on demo record, kill stuff for 5-10 minutes, turn off demo.

Use that as the test demo. Should give you a good idea. Also, be sure to turn off vertical sync during the demo playbacks so that you have a more accurate test.
Hm. Have to see what I can come up with for that. Maybe I can find a ship raid or something to try it on.


It is known that there are an infinite number of worlds, simply because there is an infinite amount of space for them to be in. However, not every one of them is inhabited. Therefore, there must be a finite number of inhabited worlds. Any finite number divided by infinity is as near to nothing as makes no odds, so the average population of all the planets in the Universe can be said to be zero. From this it follows that the population of the whole Universe is also zero, and that any people you may meet from time to time are merely the products of a deranged imagination.

 

Posted

Pretty sure when I did it I used a demo of my main villain fighting along the north edge of grandville.


Be well, people of CoH.