Power-aware scheduling

US9652298B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9652298-B2
Application numberUS-201414167213-A
CountryUS
Kind codeB2
Filing dateJan 29, 2014
Priority dateJan 29, 2014
Publication dateMay 16, 2017
Grant dateMay 16, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F9/5094Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9652298B2 cover?
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 sta…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/5094. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 16 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).