Chrispy_ wrote:Usually the CPU is waiting on the subsystem (RAM, disk, network) for more work to do.
ronch wrote:What determines how much CPU utilization a piece of software uses?
I mean, if I fire up my web browser, it utilizes less than 10% of a particular core's resources according to Task Manager. Why does it eat up just 50% instead of 80%?
Is the program idling a little bit by not using all the CPU cycles it can? If you make that certain program eat up 50% instead of 5%, will that make it run faster?
Are there program mechanisms that deliberately make it utilize a certain level of CPU core utilization?
Flatland_Spider wrote:Scheduling aside, it's dependent on the program. I've seen some programs police themselves with limits on threads, forked processes, or utilization, but usually the OS takes care of making sure everything gets some time on the CPU.
So you think you cannot get something for nothing? Let me change your mind.
OK here's the deal, you have overclocked your processor and the game you are running doesn't really get the performance boost you were hoping for.
Here is a bit of really OLD knowledge which those of us who used to work with SMP (Symmetric MultiProcessing) machines knew but it seems to have been forgotten since SMP machines have become single die "cores".
With this simple little trick you will - depending on the game - get a hell of a lot more performance (even without overclocking) and it may even cure a games propensity to crash to desktop (CTD).
Since Windows NT one has had the ability to not only adjust the priority of a process but with multi processor machines one could also set the affinity.
Getting to the point you first of all have to turn off hyperthreading in the BIOS
If you open the Task Manager and you right click on a process you will see the option "Set Affinity". What this does is it fixes the process to run off one of the cores in your CPU, and stay there.
Now you could do this manually but the pain is that when you reboot all the settings are gone. So there is a nice utility where you can store profiles and load them to automate this process. The utility can be found here:
You are thinking to yourself, "Why the hell should I do this?"
The reason is that Windows left to its own devices will mess you and your game playing session around. The main acceleration to your processing power comes from your L2 Cache - a bit of super fast memory between your processor and your RAM.
Now what happens is that you have your game running quite happily on one of the cores of your CPU but Windows decides to swap the game over to another core which it deems to be underutilised. This will of course wipe the L2 Cache and it will have to be filled again from the incredibly slower RAM.
Also Windows works on the basis of pre-emptive multitasking, which means that processes (your game for instance) get a certain time slice on any one of the cores where it is running and then it is another processes turn - again this mucks about with your game and the L2 Cache.
So what you do is boot up your system and when it is up and running, start CPU-Control and assign all of the running processes to CPU 0. Now some games take well to multi processors and some games not so much. You will have to do a bit of research on the game engine to determine that.
If you have found that the game can only run on one processor then load the game and allocate it to one of the remaining cores. If the game can use multiple processors then simply assign the game to the other three cores (on a quad core CPU).
Assigning a game that really only runs on one core to three cores is counterproductive and you will not get the acceleration you were hoping for, so you have to do your research on the game engine.
It is not unusual to find that games which were unplayable all of a sudden feel very comfortable on your machine if your computer has a weaker CPU. It is more of a "go faster stripe" than any overclocking will ever give you, that's for sure.
I have looked around and from what I have been able to garner those games which do take advantage of more than one core will only use two cores maximum.
Thus allocating games to three cores as I mentioned above when they can only use two cores maximum will actually negate the performance gain due to core swapping by Windows.
Probably the best bet is to just allocate the game to one core, see what kind of performance you get and then allocate it to two cores and see if the performance increases.
Users browsing this forum: No registered users and 1 guest