Dynamic control of processors to reduce thermal and power costs
US-2016170470-A1 · Jun 16, 2016 · US
US9652298B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9652298-B2 |
| Application number | US-201414167213-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 29, 2014 |
| Priority date | Jan 29, 2014 |
| Publication date | May 16, 2017 |
| Grant date | May 16, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and techniques are described for power-aware scheduling. One of the techniques includes monitoring execution of a plurality of groups of software threads executing on a physical machine, wherein the physical machine comprises a physical hardware platform that includes a plurality of processor packages having a plurality of package power states, wherein the plurality of package power states includes an independent package power state; obtaining a respective independent power state measure for each of the processor packages, wherein the independent power state measure provides a measure of a percentage of time the processor package spends in the independent package power state; and adjusting an allocation of the plurality of groups of software threads across the plurality of processor packages based in part on the independent power state measures for the packages.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method comprising: monitoring execution of a plurality of groups of software threads executing on a physical machine, wherein the physical machine comprises a physical hardware platform that includes a plurality of processor packages, the processor packages each having a plurality of processor cores and having a plurality of package power states, wherein the plurality of package power states includes an independent package power state, and wherein each of the processor packages can enter the independent package power state independently of other processor packages in the plurality of processor packages; obtaining a respective independent power state measure for each of the processor packages, wherein the independent power state measure provides a measure of a percentage of time the processor package spends in the independent package power state; obtaining a respective load measure for each of the processor packages, wherein the load measure provides a measure of a percentage of time the processor package was in use during a time window; adjusting an allocation of the plurality of groups of software threads across the plurality of processor packages based in part on the independent power state measures for the packages and the load measures for the packages; and classifying each of the plurality of processor packages into a respective category based on the load measures and the independent power state measures. 2. The method of claim 1 , wherein classifying the plurality of processor packages comprises: classifying each of the plurality of processor packages into a respective one of a high load category, a medium load category, a power-efficient category, a power-inefficient category, or a parked package category. 3. The method of claim 2 , wherein adjusting the allocation comprises: migrating a first group of software threads from a first processor package that is in the high-load category to a second processor package that is in the power-inefficient category. 4. The method of claim 2 , wherein adjusting the allocation comprises: migrating a first group of software threads from a first processor package that is in the power-inefficient category to a second processor package that is in the power-inefficient category, wherein the first processor package has a higher load measure than the second processor package. 5. The method of claim 2 , wherein adjusting the allocation comprises: migrating a first group of software threads from a first processor package that is in the power-inefficient category to a second processor package that is in the medium load category. 6. The method of claim 2 , wherein adjusting the allocation comprises: migrating a first group of software threads from a first processor package that is in the power-efficient category to a second processor package that is in the power-efficient category, wherein the first processor package has a lower load measure than the second processor package. 7. The method of claim 1 , wherein a plurality of virtual machines execute on the physical machine, wherein monitoring execution of a plurality of groups of software threads comprises monitoring execution of the virtual machines, and wherein adjusting an allocation of the groups of software threads comprises adjusting an allocation of the virtual machines across the plurality of processor packages. 8. The method of claim 1 , wherein obtaining a respective independent power state measure for a processor package comprises reading a register on the processor package. 9. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising: monitoring execution of a plurality of groups of software threads executing on a physical machine, wherein the physical machine comprises a physical hardware platform that includes a plurality of processor packages, the processor packages each having a plurality of processor cores and having a plurality of package power states, wherein the plurality of package power states includes an independent package power state, and wherein each of the processor packages can enter the independent package power state independently of other processor packages in the plurality of processor packages; obtaining a respective independent power state measure for each of the processor packages, wherein the independent power state measure provides a measure of a percentage of time the processor package spends in the independent package power state; obtaining a respective load measure for each of the processor packages, wherein the load measure provides a measure of a percentage of time the processor package was in use during a time window; adjusting an allocation of the plurality of groups of software threads across the plurality of processor packages based in part on the independent power state measures for the packages and the load measures for the packages; and classifying each of the plurality of processor packages into a respective category based on the load measures and the independent power state measures. 10. The system of claim 9 , wherein adjusting the allocation comprises adjusting the allocation based on the classifying. 11. The system of claim 9 , wherein a plurality of virtual machines execute on the physical machine, wherein monitoring execution of a plurality of groups of software threads comprises monitoring execution of the virtual machines, and wherein adjusting an allocation of the groups of software threads comprises adjusting an allocation of the virtual machines across the plurality of processor packages. 12. A non-transitory machine readable storage medium storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising: monitoring execution of a plurality of groups of software threads executing on a physical machine, wherein the physical machine comprises a physical hardware platform that includes a plurality of processor packages, the processor packages each having a plurality of processor cores and having a plurality of package power states, wherein the plurality of package power states includes an independent package power state, and wherein each of the processor packages can enter the independent package power state independently of other processor packages in the plurality of processor packages; obtaining a respective independent power state measure for each of the processor packages, wherein the independent power state measure provides a measure of a percentage of time the processor package spends in the independent package power state; obtaining a respective load measure for each of the processor packages, wherein the load measure provides a measure of a percentage of time the processor package was in use during a time window; and adjusting an allocation of the plurality of groups of software threads across the plurality of processor packages based in part on the independent power state measures for the packages and the load measures for the packages; and classifying each of the plurality of processor packages into a respective category based on the load measures and the independent power state measures. 13. The machine readable storage medium of claim 12 , wherein adjusting the allocation comprises adjusting the allocation based on the classifying. 14. The machine readable storage medium of claim 12 , wherein a plurality of virtual machines execute on the physical machine, wherein monitoring execution of a plurality of groups of s
Cross-Sectional Technologies · mapped topic
Cross-Sectional Technologies · mapped topic
Techniques for rebalancing the load in a distributed system · CPC title
involving task migration · CPC title
where the allocation takes into account power or heat criteria (power management in computers in general G06F1/3203; thermal management in computers in general G06F1/206) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.