Cloud compute scheduling using a heuristic contention model

US10659386B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10659386-B2
Application numberUS-201815872928-A
CountryUS
Kind codeB2
Filing dateJan 16, 2018
Priority dateDec 24, 2013
Publication dateMay 19, 2020
Grant dateMay 19, 2020

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.

Technologies for contention-aware cloud compute scheduling include a number of compute nodes in a cloud computing cluster and a cloud controller. Each compute node collects performance data indicative of cache contention on the compute node, for example, cache misses per thousand instructions. Each compute node determines a contention score as a function of the performance data and stores the contention score in a cloud state database. In response to a request for a new virtual machine, the cloud controller receives contention scores for the compute nodes and selects a compute node based on the contention score. The cloud controller schedules the new virtual machine on the selected compute node. The contention score may include a contention metric and a contention score level indicative of the contention metric. The contention score level may be determined by comparing the contention metric to a number of thresholds. Other embodiments are described and claimed.

First claim

Opening claim text (preview).

The invention claimed is: 1. A cloud controller of a cloud computing cluster, the cloud controller comprising: one or more processors; a memory coupled to the one or more processors, the memory having stored thereon a plurality of instructions that, when executed by the one or more processors, causes the one or more processors to: acquire performance data comprising an indication of a rate of cache misses per number of instructions for each of a plurality of virtual machines of each of a plurality of processors when each plurality of virtual machines is executed contemporaneously on the corresponding processor of the plurality of processors; determine, for each of the plurality of processors, a contention score based on the indication of the rate of cache misses per number of instructions for each of the plurality of virtual machines of the corresponding processor; select, based on the contention score of each of the plurality of processors and in response to receipt of a request for a new virtual machine, a processor of the plurality of processors for the new virtual machine; and schedule the new virtual machine on the selected processor. 2. The cloud controller of claim 1 , wherein to select, based on the contention score of each of the plurality of processors, the processor of the plurality of processors for the new virtual machine comprises to select the processor of the plurality of processors with the lowest contention score for the new virtual machine. 3. The cloud controller of claim 1 , wherein the performance data is based on hardware counter values read during contemporaneous execution of the plurality of virtual machines of each of the plurality of processors. 4. The cloud controller of claim 1 , wherein the plurality of instructions further causes the one or more processors to: suspend a virtual machine assigned to a first processor of the plurality of processors; select, based on the contention score of each of the plurality of processors, a second processor of the plurality of processors for the virtual machine assigned to the first processor; and reassign the virtual machine assigned to the first processor to the selected second processor. 5. The cloud controller of claim 1 , wherein the performance data comprises an indication of a rate of cache misses per number of instructions for at least two virtual machines executed simultaneously on the same processor of the plurality of processors. 6. The cloud controller of claim 1 , wherein to determine, for each of the plurality of processors, the contention score comprises to read, for each of the plurality of processors, the contention score from a cloud state database. 7. The cloud controller of claim 1 , wherein the plurality of instructions further cause the one or more processors to identify all available compute nodes, wherein the available compute nodes comprise the plurality of processors. 8. One or more non-transitory computer-readable media comprising a plurality of instructions stored thereon that, when executed by a cloud controller, causes the cloud controller to: acquire performance data comprising an indication of a rate of cache misses per number of instructions for each of a plurality of virtual machines of each of a plurality of processors when each plurality of virtual machines is executed contemporaneously on the corresponding processor of the plurality of processors; determine, for each of the plurality of processors, a contention score based on the indication of the rate of cache misses per number of instructions for each of the plurality of virtual machines of the corresponding processor; select, based on the contention score of each of the plurality of processors and in response to receipt of a request for a new virtual machine, a processor of the plurality of processors for the new virtual machine; and schedule the new virtual machine on the selected processor. 9. The one or more non-transitory computer-readable media of claim 8 , wherein to select, based on the contention score of each of the plurality of processors, the processor of the plurality of processors for the new virtual machine comprises to select the processor of the plurality of processors with the lowest contention score for the new virtual machine. 10. The one or more non-transitory computer-readable media of claim 8 , wherein the performance data is based on hardware counter values read during contemporaneous execution of the plurality of virtual machines of each of the plurality of processors. 11. The one or more non-transitory computer-readable media of claim 8 , wherein the plurality of instructions further causes the cloud controller to: suspend a virtual machine assigned to a first processor of the plurality of processors; select, based on the contention score of each of the plurality of processors, a second processor of the plurality of processors for the virtual machine assigned to the first processor; and reassign the virtual machine assigned to the first processor to the selected second processor. 12. The one or more non-transitory computer-readable media of claim 8 , wherein the performance data comprises an indication of a rate of cache misses per number of instructions for at least two virtual machines executed simultaneously on the same processor of the plurality of processors. 13. The one or more non-transitory computer-readable media of claim 8 , wherein to determine, for each of the plurality of processors, the contention score comprises to read, for each of the plurality of processors, the contention score from a cloud state database. 14. The one or more non-transitory computer-readable media of claim 8 , wherein the plurality of instructions further cause the cloud controller to identify all available compute nodes, wherein the available compute nodes comprise the plurality of processors. 15. A method comprising: acquiring, by a cloud controller, performance data comprising an indication of a rate of cache misses per number of instructions for each of a plurality of virtual machines of each of a plurality of processors when each plurality of virtual machines is executed contemporaneously on the corresponding processor of the plurality of processors; determining, by the cloud controller, for each of the plurality of processors, a contention score based on the indication of the rate of cache misses per number of instructions for each of the plurality of virtual machines of the corresponding processor; receiving, by the cloud controller, a request for a new virtual machine; selecting, by the cloud controller and based on the contention score of each of the plurality of processors, a processor of the plurality of processors for the new virtual machine; and scheduling, by the cloud controller, the new virtual machine on the selected processor. 16. The method of claim 15 , wherein selecting, based on the contention score of each of the plurality of processors, the processor of the plurality of processors for the new virtual machine comprises selecting the processor of the plurality of processors with the lowest contention score for the new virtual machine. 17. The method of claim 15 , wherein the performance data is based on hardware counter values read during contemporaneous execution of the plurality of virtual machines of each of the plurality of processors. 18. The method of claim 15 , further comprising: suspending, by the cloud controller, a virtual machine assigned to a first processor of the plurality of processors; selecting, by the could controller and based on t

Assignees

Inventors

Classifications

  • the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

  • Threshold monitoring · 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 US10659386B2 cover?
Technologies for contention-aware cloud compute scheduling include a number of compute nodes in a cloud computing cluster and a cloud controller. Each compute node collects performance data indicative of cache contention on the compute node, for example, cache misses per thousand instructions. Each compute node determines a contention score as a function of the performance data and stores the c…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification H04L47/70. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 19 2020 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).