Improving render times

Birk Binnard wrote on 10/16/2010, 2:36 PM
I was rendering an HD video in VMS10 and thought I'd check how my i7-920's 8 CPUs were doing. So I started Task Manager and noticed that only 5 of the 8 CPUs seemed busy. (My VMS10 is set to 8 threads for rendering video.)

So I started Resource Monitor and clicked on the CPU tab. What I discovered was that most of the time 3 CPUs were "parked". When parked they were doing no work (utilization =0.) So even though VMS10 was set to use all 8, only 5 were actually working.

Why? Well apparently Microsoft decided that its OK to disable some CPUs to save power (and reduce chip temperature.) But my electricity bills are OK and my PC has a good 3rd party cooler. I figured I'd rather have all 8 CPUs working on rendering.

I Googled "CPU Parking" and found that, for each Power Scheme defined in Control Panel/Power Options there are 2 parameters that control CPU parking: Min and Max. Microsoft sets Min = 0 and Max =100 which means at any time all of the CPUs can be parked. It is not clear how Windows decides which CPUs to park when, but it apparently does.

I found the following fix to disable parking:

These steps allow a multi-core CPU to use all of its processors when rendering:

- Go to Regedit

- Find this key:- " 0cc5b647-c1df-4637-891a-dec35c318583 "

- Within this key, there is a value called: " ValueMax "

- This value represents the % number of cores the system will park - the default 100% ie: all Cores are potentially park-able

- Change the value from 64 to 0 so the " ValueMin " and " ValueMax " are both zero

- You will have to find the key a few times and repeat the process for each time it is found - the number of instances will depend on the number of power profiles in your system [ in my DAW it was only found twice ]

- Do a full shutdown and power-off and cold-re-start

This works. (You just have to restart after making the change; power off is not req'd.) After the change what I noticed is 2 things:

1. All CPUs are working during rendering

2. The workload is spread much more evenly across the CPUs than when some were parked

Here is the webpage I found that has lots of background and additional links on this:

http://forum.cakewalk.com/tm.aspx?m=1861804

From what I can tell from initial tests this change has speeded up rendering on my system by about 20%. I think this is a nice performance improvement for a simple registry tweak.

Comments

Ivan Lietaert wrote on 10/16/2010, 10:52 PM
Much appreciated and thanks for the info, but a little warning should be in its place here, though.
I would NOT call editing a registry 'simple', to begin with. Do things wrongly, and you mess up your OS pretty badly.
Second, there will be a valuable reason to park cores. Heat will age your cpu, even if you put a 2 foot cooler on top of it... So what is the use of 20% render time profit, if you burn your cpu in two months time?
Using the right codec for the right job, and using two different physical drives, or even waiting for a patch or upgrade are much safer speed gains, if you ask me.
And last, but not least, after working for 3 hours or more on a project, and rendering then lasts 12 minutes, a 20% profit in render times is only a meagre step up, not worth the risk.
rrrrob wrote on 10/19/2010, 7:27 AM
somewhat of a departure, but I found that there were some malware programs running on my PC and once I cleaned those up, projects that were taking 7 hours now came back to about 5 or 5 1/2 hours...my Norton didn't detect these programs (I knew something was up because my google search results kept redirecting my browser results), so I ended up using a common popular freeware program called malwarebytes to scan/clean my PC...great stuff!