Core parking is a new feature that dynamically selects a set of processors that should stay idle and not run any threads based on the current power policy and their recent utilization. The scheduler will attempt to honor this selection when it decides on which processors to run threads, allowing the parked cores to enter deep idle states where they consume very little power.
The affinity of a thread will always be honored. If a thread is affinitized to parked cores only, it will be scheduled to one of the parked cores. On a client machine, most threads do not explicitly set an affinity and therefore run with an affinity including all processors in the system, allowing for frequent use of core parking. On servers where applications are more often finely tuned, threads may be affinitized to specific processors, which can reduce the effectiveness of core parking.
Additionally, on NUMA systems, the scheduler is free to override the core parking mask and schedule a thread to a parked core in its ideal node. This reduces the performance impact of forcibly migrating threads away from its ideal node. If all processors in a node are parked and there are no available un-parked cores, the scheduler is free to run the thread on a parked core within the same node. Nehalem processors allow for entire processor sockets to be parked, whereas most pre-Nehalem processors only allow individual cores to be parked. The state of individual parked cores can be observed in Resource Monitor when the CPU tab is selected ...
Core parking is a optimization, based on the observation in previous operating systems that you might have four cores running background processes at 10% utilization each. The idea is to load all of those tasks onto one core and let the others idle if operating load levels allow for it. Now, you can see how these two features working together might have a significant impact on power, as ideal core prevents rabid thread migration, while core parking optimizes loading. Taken together, the pair intelligently maximizes the number of idle cores, and then keeps them from being spun up unnecessarily, yielding the theoretical power gains.
Especially mobile users benefit from core parking, while desktop users may benefit from it indirectly on their utility bill. For some multi-core processors, core parking is not enabled by default, and if you want to enable the feature you will be hard pressed to find any tools or information that allow you to do that.
Core Parking is a new Windows kernel power manager and kernel scheduler technology that helps improve the energy efficiency of a system by dynamically scaling the number of logical processors that are in use based on workload. Similar to how processor performance states help scale the performance of a single processor, Core Parking is designed to help scale the performance and energy efficiency across the set of logical processors in the system. When the Core Parking algorithm reduces the number of logical processors that are in use, it parks some of the logical processors in the system. The kernel scheduler correspondingly gives preference to unparked logical processors rather than parked logical processors when it schedules any non-affinitized threads. This lets the parked logical processors become idle, which in turn lets the corresponding processor cores transition into a lower power idle state.
Core Parking is most effective on systems that have processor idle states with extremely low power consumption. When combined with ITTD, Core Parking helps reduce the amount of interrupt activity on systems that run Hyper-V. On systems with processors that include Intel Hyper-Threading Technology, Core Parking is also leveraged to help intelligently schedule work between threads that are running on multiple logical processors in the same processor core.
Why is we doing this?
The main reason is to reduce the consumption of power (electricity) and production of heat. Microsoft has realized that most of normal users do not need to have all of their threads active for every day usage (including high graphic gaming), so by default they disabled it, however, Windows is able to enable the idle threads upon heavy usage, for example when compiling heavy codes or rendering heavy objects and then make them idle after the heavy usage. This is pretty safe and good since you will not produce a lot of heat and consume a lot of power and at the same time you will get benefit of the whole CPU power when needed. In a way parking CPU is earth friendly.
System Monitor II gadget will allow you to easily enable or disable core parking for your CPU. The first thing that you should do is to go to a resource manager to check if you have parked cores. The reason of doing so is that core parking is not enabled for all the multi-core CPU's. System Monitor II also can show you if you have parked cores.
The change will take effect without a reboot.
Let me explain some settings.
As default you cannot see additional settings into power options
We can enables this settings, but for this we can change few registry keys.
Gadget do this, if you check Enable working with registry box. Of course, you can give permission by clicking yes