maximize multicore cpu performance in windows 7 - disable core parking

 

Overview

by default, windows 7 comes boxed using usually only part of your cpu (it's throttled). you can fix this with Park Control. my computer has overheating problems when using too many cores with prime95 for 20-40 minutes (test for 4 hours is good, monitor with cpuid.com's hwmonitor and perfmonitor2)

this idea is based on an article in the cakewalk forums article and the notebook review article (preferable). it works for multithreaded software that is not a DAW too, and parallel compiler builds (or if you just multitask a lot)! it does this by making 3 registry entry changes that disable or adjust core parking in Windows. in the notebook review article, I woould correct the article saying that you don't rename Attributes, you set the Attribute value to 0.

disabling core parking and adjusting "Max processor state" can give windows a more even/balanced approach to using threads and a performance boost for multithreaded programs. without, you get about 1/2 the performance during things like compression, video encoding, audio editing, video editing.

I have not tried this in windows 8 or 8.1 so I don't know if this works on that platform or not.

closed loop liquid cooling can be a good thing. keeps your cpu cool if you have a hot proc. make sure you get the maximum model (largest mm, currently 280mm) and it fits your case.

make sure you monitor cpu temperature during the testing, especially on laptops! laptops are not made for full usage, they are made to save on power and heat.

or, buy a dual-core box if you have heat problems. sigh. CPU Core Parking Manager v3 (1.0.0.5) (don't use the big download button, that's not it). use the little link with the tiny green icon left of it.

what this is useful for

  • multithreaded/multicore programs
    • antivirus programs (mcafee for instance)
    • adobe CC/CS, especially Premiere Elements Premiere Pro or other video editor
    • video editing
    • audio encoding
    • video encoding
    • optimizing workstation performance
    • optimizing server performance
    • adjusting power usage within a building, maybe. there are a lot of settings in the registry for this you can turn on by setting Attributes to 0.
    • chrome browser
    • video conversion
    • audio conversion
    • anything compiled with VC++'s /QPAR or /QVEC or gcc's parallel switches or make -j (problem with handling the single-threaded STDIO)
    • file compression, decompression (file archivers like
    • parallel software compilation for software and tool developers
  • parallel builds using a compiler - note that visual studio does not have this feature yet as of 2013 and GNU make -fMakefile -j 4 (for 4 parallel compile jobs) causes compile errors as of 3/27/2013. waiting for a fix. people are just starting to think more in parallel. but compilers are starting to be able to auto-parallize loops, so any program can be parallized to some degree automatically.

Instructions to hand-tune your PC for maximum threading and safe temperature:

cpu TCASE maximum temperature information for your cpu model:
---->>DO THIS FIRST!<<----
  1. print your processor specs (Intel or AMD) that must have a maximum case temperature somewhere, may have a funny acronym like tCASE, but it's a temperature in °C. look up the maximum cpu temperature and memorize it, put a label on the side of your PC/laptop if you have to.
  2. calculate what I will call safety-margin temperature (this is not the cpu's maximum temperature, but a smaller percentage of it as a safety margin). I am guessing about 85% of cpu maximum temperature. that means 85%*maximum=0.85*maximum so for example, if your cpu has a maximum temperature of 68°C, 0.85*68°C=57.8°C

    safety-margin temperature=

    safety-margin temperature=


    for subtraction
  3. download and double-click the first .reg file and allow it to make changes to the computer. these contain the maximum allowable values you can use in the power options in the control panel. having min and max values for core parking swapped disables core parking.
  4. if you want to verify/change its contents, you can edit it with Notepad in Accessories or you can use notepad in All programs, accessories, notepad or [windows-logo-flag-key]-R notepad [Enter] or notepad++ to edit it.
  5. windows explorer [windows-logo-flag-key]-E, browse to control panel, power options, change plan settings on your current power profile, change advanced power settings.
  6. make the following changes to the registry first, then these changes in the power options for processor:
    find:Processor performance core parking min cores (search for the last GUID number in the registry key)
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583
    ValueMin=100 (decimal)
    ValueMax=0
    Attribute=0 (this enables it in power options) this is a DWORD value you migh tneed to create.
    this disables core parking
    
    find:Processor performance core parking max cores
    ValueMin=100 (decimal)
    ValueMax=0
    Attribute=0 (this enables it in power options) this is a DWORD value you migh tneed to create.
    this disables core parking
    
    Find:Min processor state
    ValueMin=0
    ValueMax=100 (decimal)
    Attribute=0 (this enables it in power options) this is a DWORD value you migh tneed to create.
    
    Find:Max processor state
    ValueMin=0
    ValueMax=100 (decimal)
    Attribute=0 (this enables it in power options) this is a DWORD value you migh tneed to create.
    this scales back the processor from overheating.
    I have mine set to 79-82. tweak this value down 1-5 if it overheats and reduce it and click Apply,
    it will react nearly immediately. wait 14-20min before changing again for temp to stabilize.
    most boxes will probably be able to handle 100 for ValueMax,
    since cooling is not a big issue like it is with the i7-3970x.
    
    reboot after putting these changes into the registry, then start adjusting values.
    
    I have to set Max processor state to 79% due to overheating (i7-3970x 150W with 240mm closed loop liquid cooling, should have gotten a 280mm liquid cooler and a bigger case). Most people aren't going to max out a 12-core, but once in a while I do large parallel jobs.
  7. smiley-face method on cpu is best method for applying paste.
  8. to make sure the changes for the last number you put in actually get set, click in a different field to change it. it's the data change+field switchover that is causing the setting to keep.
  9. click Apply (but not OK). changes will be immediate.
  10. keep this window open and drag it onto another monitor if necesasary so it's separate on your screen from other programs and doesn't get lost.
  11. download cpuid.com's hwmonitor and perfmonitor2 and install hwmonitor, right click on perfmonitor2 and pin it to taskbar (fun to watch). perfmonitor2 may be all you need.
  12. start perfmonitor2. it requires you to run it as administrator, so make sure you modify the taskbar shortcut properties to run it as Administrator. when you get a black screen with just a UAC window and it complains about security, tell it to allow the program to run.
  13. start taskmanager [windows-logo-flag-key]-R taskmgr [Enter] and click Performance, click Resource monitor, CPU tab. according to the notebook article, parked threads/cores are shown as "parked". this window is optional - what I am focusing on here is temperature first. if temperature doesn't become a problem, then you can simply disable core parking.
  14. download and extract prime95 cpu stress test double-click on executable. you must stop it and then exit to make it close.
  15. move and resize the power options window, perfmonitor2, and prime95 so they all fit on the screen.
  16. prime95: make note of how to stop (!) and torture test - this does not mean closing it, it simply minimizes and continues to run. options, torture test, OK.
  17. if you have already run prime95, wait for cpu to cool down some. reset hwmonitor min and max.
  18. remembering your max cpu temperature (I label the side of my PC), watch perfmonitor2's temperature. it should stay at or under safety-margin temperature. watch for at least 20-40 minutes. blink a few times every 20min and look away from the monitor at the wall to keep your eyes in good working condition. the internal case temperature might get warmed up over long time. after 20-40min it may start to increase gradually, it may stop rising. you want a stable temperature that stays at or under safety-margin temperature.
  19. any adjustments you make to max core parking and Max processor state, you must:
    1. switch to a different field value
    2. Apply
    3. stop prime95 (closing only minimizes to tray, does not exit)
    4. start another session in prime95 with options, torture test, OK
    5. then watch perfmonitor2 again for another 20-40 minutes.
    6. if temp gets beyond 7.8degC under TCase, stop prime95 immediately and let CPU cool down, adjust value down one step, and start test over for another up to 20 minutes.
  20. if you can adjust Max processor state to 100% and it still works great for 20-40 minutes, you will probaly have wonderful success.
  21. I first adjust Max processor state to 100%. then I adjust it down if cpu gets too warm (beyond my theoretical maximum - too uncomfortable for me). if it increases beyond safety-margin temperature at all, immediately adjust Max processor state down 5-10% and go to step 17. if this doesn't work, adjust max core parking down 5-10% and go to step 17. If you don't have Max processor state in your OS, adjust core parking after swapping max and min values.
  22. get out a timer. 4 hours is a good stress test. watch for 3 1/2 more hours. if it does not stay under safety-margin temperature, adjust core parking or Max processor state (whatever it takes) to get the temperature down and stable and go to step 17.
  23. if it stays under safety-margin temperature for total run from start of changes for 4 hours, have some ice cream and enjoy your newly-tuned PC.

Downloads

Download Now
maximize-cpu-thread-usage-in-windows.reg - executable .reg file (12/10/2014)


Download Now
restore-cpu-thread-parking.reg - executable .reg file (12/10/2014)


Download Now
unpark.cmd - executable .cmd batch file (12/10/2014)


fixed incorrect values in these files.

cpu TCASE maximum temperature information for your cpu model:
---->>DO THIS FIRST!<<----
software to do the job
you must right click on the program and pick pin to taskbar (or start menu) to make regular use of it, no installer yet.
hwmonitor, free. a pro version for $$ is available for monitoring multiple pc's
for monitoring temperature, SMART, etc. and other sensors in computers
make sure you monitor cpu temperature, especially on laptops! laptops are not made for full usage, they are made to save on power and heat.
part of process lasso, used for servers, workstations, but you can use for your desktop or laptop too. doesn't allow for "Min/Max processor state" which I use for cpu temperature adjusts. that setting doesn't appear in the registry in all versions of windows.