IP Library › Granted Patent US 10,616,668
Granted Patent B2
US 10,616,668 · App. 15/395,494 · Granted Apr 7, 2020

Technologies for managing resource allocation with phase residency data

Inventors: Susanne M. Balle (Hudson, NH); Rahul Khanna (Portland, OR); Nishi Ahuja (University Place, WA); Mrittika Ganguli (Bangalore, IN)
Assignee: Intel Corporation
H04Q11/0005B25J15/0014B65G1/0492G02B6/3882G02B6/3893G02B6/3897G02B6/4292G02B6/4452G05D23/1921G05D23/2039G06F1/183G06F3/061G06F3/064G06F3/067G06F3/0611G06F3/0613G06F3/0616G06F3/0619G06F3/0625G06F3/0631G06F3/0638G06F3/0647G06F3/0653G06F3/0655G06F3/0658G06F3/0659G06F3/0664G06F3/0665G06F3/0673G06F3/0679G06F3/0683G06F3/0688G06F3/0689G06F8/65G06F9/30036G06F9/3887G06F9/4401G06F9/505G06F9/5016G06F9/5044G06F9/5072G06F9/5077G06F9/544G06F11/141G06F11/3414G06F12/0862G06F12/0893G06F12/10G06F12/109G06F12/1408G06F13/161G06F13/1668G06F13/1694G06F13/409G06F13/4022G06F13/4068G06F13/42G06F13/4282G06F15/8061G06F16/9014G06Q10/06G06Q10/06314G07C5/008G08C17/02G11C5/02G11C5/06G11C7/1072G11C11/56G11C14/0009H03M7/30H03M7/3084H03M7/3086H03M7/40H03M7/4031H03M7/4056H03M7/4081H03M7/6005H03M7/6023H04B10/2504H04L9/0643H04L9/14H04L9/3247H04L9/3263H04L12/2809H04L29/12009H04L41/024H04L41/046H04L41/082H04L41/0813H04L41/0896H04L41/145H04L41/147H04L43/08H04L43/0817H04L43/0876H04L43/0894H04L43/16H04L45/02H04L45/52H04L47/24H04L47/38H04L47/765H04L47/782H04L47/805H04L47/82H04L47/823H04L49/00H04L49/15H04L49/25H04L49/357H04L49/45H04L49/555H04L67/02H04L67/10H04L67/1004H04L67/1008H04L67/1012H04L67/1014H04L67/1029H04L67/1034H04L67/1097H04L67/12H04L67/16H04L67/306H04L67/34H04L69/04H04L69/329H04Q1/04H04Q11/00H04Q11/0003H04Q11/0062H04Q11/0071H04W4/023H05K1/0203H05K1/181H05K5/0204H05K7/1418H05K7/1421H05K7/1422H05K7/1442H05K7/1447H05K7/1461H05K7/1487H05K7/1489H05K7/1491H05K7/1492H05K7/1498H05K7/2039H05K7/20709H05K7/20727H05K7/20736H05K7/20745H05K7/20836H05K13/0486G06F2209/5019G06F2209/5022G06F2212/1008G06F2212/1024G06F2212/1041G06F2212/1044G06F2212/152G06F2212/202G06F2212/401G06F2212/402G06F2212/7207G06Q10/087G06Q10/20G06Q50/04G08C2200/00H04B10/25H04L41/12H04L41/5019H04L43/065H04Q2011/0037H04Q2011/0041H04Q2011/0052H04Q2011/0073H04Q2011/0079H04Q2011/0086H04Q2213/13523H04Q2213/13527H04W4/80H05K7/1485H05K2201/066H05K2201/10121H05K2201/10159H05K2201/10189Y02D10/14Y02D10/151Y02P90/30Y04S10/54Y10S901/01
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,616,668
App. No.
15/395,494
Granted
Apr 7, 2020
Kind
B2
Abstract

Technologies for allocating resources of a set of managed nodes to workloads based on resource utilization phase residencies include an orchestrator server to receive resource allocation objective data and determine an assignment of a set of workloads among the managed nodes. The orchestrator server is further to receive telemetry data from the managed nodes, determine, as a function of the telemetry data, phase residency data, determine, as a function of at least the phase residency data and the resource allocation objective data, an adjustment to the assignment of the workloads to increase an achievement of at least one of the resource allocation objectives without decreasing the achievement of any of the other resource allocation objectives, and apply the adjustment to the assignments of the workloads among the managed nodes as the workloads are performed.

Claims (79)

1. An orchestrator server to allocate resources of a set of managed nodes to workloads based on resource utilization phase residencies, the orchestrator server comprising:

one or more processors;

one or more memory devices having stored therein a plurality of instructions that, when executed by the one or more processors, cause the orchestrator server to:

receive resource allocation objective data indicative of multiple resource allocation objectives to be satisfied;

determine an assignment of a set of workloads among the managed nodes;

receive telemetry data from the managed nodes, wherein the telemetry data is indicative of resource utilization by each of the managed nodes as the workloads are performed;

determine, as a function of the telemetry data, phase residency data indicative of temporal lengths of resource utilization phases of the workloads, wherein each resource utilization phase is indicative of a utilization, by a corresponding workload, of a managed node component, wherein the utilization satisfies a predefined threshold amount;

determine, as a function of at least the phase residency data and the resource allocation objective data, an adjustment to the assignment of the workloads to increase an achievement of at least one of the resource allocation objectives without decreasing the achievement of any of the other resource allocation objectives, including determining a time offset for the execution of one workload of the set of workloads to shift a corresponding resource utilization phase of the one workload relative to another resource utilization phase of another workload of the set of workloads; and

apply the adjustment to the assignments of the workloads among the managed nodes as the workloads are performed.

2. The orchestrator server of claim 1 , wherein to determine the adjustment to the assignment of the workloads comprises to:

identify complementary workload utilization phases indicative of resource utilization phases of different managed node components by two or more workloads; and

determine an alignment of the complementary workload utilization phases to cause the complementary workload utilization phases to be performed concurrently by the same managed node.

3. The orchestrator server of claim 2 , wherein:

to apply the adjustments to the assignments comprises to:

temporarily suspend execution of the one or more of the workloads; and

resume execution of the one or more of the workloads after the time offset has elapsed.

4. The orchestrator server of claim 2 , wherein to determine the alignment of complementary workload phases comprises to:

determine an alternative one of the manage nodes to execute a workload; and

wherein to apply the adjustments comprises to issue a request to perform a live migration of the workload to the alternative managed node.

5. The orchestrator server of claim 1 , wherein the plurality of instructions, when executed, further cause the orchestrator server to:

determine whether a resource utilization phase of a workload is indicative of malware; and

suspend, in response to a determination that the resource utilization phase is indicative of malware, execution of the workload.

6. The orchestrator server of claim 1 , wherein the plurality of instructions, when executed, further cause the orchestrator server to generate data analytics as a function of the telemetry data.

7. The orchestrator server of claim 6 , wherein to generate the data analytics comprises to generate profiles of the workloads, wherein the profiles are indicative of an identity of each workload and a resource usage classification of each workload.

8. The orchestrator server of claim 6 , wherein to generate the data analytics comprises to predict future resource utilization of the workloads.

9. The orchestrator server of claim 1 , wherein to receive resource allocation objective data comprises to receive two or more of power consumption objective data indicative of a target power usage of one or more of the managed nodes, performance objective data indicative of a target speed at which to perform the workloads, reliability objective data indicative of a target life cycle of one or more of the managed nodes, or thermal objective data indicative of a target temperature of one or more of the managed nodes.

10. The orchestrator server of claim 1 , wherein to receive telemetry data from the managed nodes comprises to receive at least one of power consumption data indicative of an amount of power consumed by each managed node, performance data indicative of a speed at which the workloads are executed by each managed node, temperature data indicative of a temperature within each managed node, processor utilization data indicative of an amount of processor usage consumed by each workload performed by each managed node, memory utilization data indicative of an amount or frequency of memory use by each workload performed by each managed node, or network utilization data indicative of an amount of network bandwidth used by each workload performed by each managed node.

11. The orchestrator server of claim 1 , wherein the plurality of instructions, when executed, further cause the orchestrator server to determine whether the assignment of the workloads is Pareto-efficient; and

wherein to determine an adjustment to the assignment of the workloads comprises to determine, in response to a determination that the assignment of the workloads is not Pareto-efficient, an adjustment to the assignment of the workloads.

12. The orchestrator server of claim 1 , wherein to determine the adjustments comprises to determine one or more node-specific adjustments indicative of changes to an availability of one or more resources of at least one of the managed nodes to one or more of the workloads performed by the managed node.

13. One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause an orchestrator server to:

receive resource allocation objective data indicative of multiple resource allocation objectives to be satisfied;

determine an assignment of a set of workloads among the managed nodes;

receive telemetry data from the managed nodes, wherein the telemetry data is indicative of resource utilization by each of the managed nodes as the workloads are performed;

determine, as a function of the telemetry data, phase residency data indicative of temporal lengths of resource utilization phases of the workloads, wherein each resource utilization phase is indicative of a utilization, by a corresponding workload, of a managed node component, wherein the utilization satisfies a predefined threshold amount;

determine, as a function of at least the phase residency data and the resource allocation objective data, an adjustment to the assignment of the workloads to increase an achievement of at least one of the resource allocation objectives without decreasing the achievement of any of the other resource allocation objectives, including determining a time offset for the execution of one workload of the set of workloads to shift a corresponding resource utilization phase of the one workload relative to another resource utilization phase of another workload of the set of workloads; and

apply the adjustment to the assignments of the workloads among the managed nodes as the workloads are performed.

14. The one or more non-transitory machine-readable storage media of claim 13 , wherein to determine the adjustment to the assignment of the workloads comprises to:

identify complementary workload utilization phases indicative of resource utilization phases of different managed node components by two or more workloads; and

determine an alignment of the complementary workload utilization phases to cause the complementary workload utilization phases to be performed concurrently by the same managed node.

15. The one or more non-transitory machine-readable storage media of claim 14 , wherein:

to apply the adjustments to the assignments comprises to:

temporarily suspend execution of the one or more of the workloads; and

resume execution of the one or more of the workloads after the time offset has elapsed.

16. The one or more non-transitory machine-readable storage media of claim 14 , wherein to determine the alignment of complementary workload phases comprises to:

determine an alternative one of the manage nodes to execute a workload; and

wherein to apply the adjustments comprises to issue a request to perform a live migration of the workload to the alternative managed node.

17. The one or more non-transitory machine-readable storage media of claim 13 , wherein the plurality of instructions, when executed, further cause the orchestrator server to:

determine whether a resource utilization phase of a workload is indicative of malware; and

suspend, in response to a determination that the resource utilization phase is indicative of malware, execution of the workload.

18. The one or more non-transitory machine-readable storage media of claim 13 , wherein the plurality of instructions, when executed, further cause the orchestrator server to generate data analytics as a function of the telemetry data.

19. The one or more non-transitory machine-readable storage media of claim 18 , wherein to generate the data analytics comprises to generate profiles of the workloads, wherein the profiles are indicative of an identity of each workload and a resource usage classification of each workload.

20. The one or more non-transitory machine-readable storage media of claim 18 , wherein to generate the data analytics comprises to predict future resource utilization of the workloads.

21. The one or more non-transitory machine-readable storage media of claim 13 , wherein to receive resource allocation objective data comprises to receive two or more of power consumption objective data indicative of a target power usage of one or more of the managed nodes, performance objective data indicative of a target speed at which to perform the workloads, reliability objective data indicative of a target life cycle of one or more of the managed nodes, or thermal objective data indicative of a target temperature of one or more of the managed nodes.

22. The one or more non-transitory machine-readable storage media of claim 13 , wherein to receive telemetry data from the managed nodes comprises to receive at least one of power consumption data indicative of an amount of power consumed by each managed node, performance data indicative of a speed at which the workloads are executed by each managed node, temperature data indicative of a temperature within each managed node, processor utilization data indicative of an amount of processor usage consumed by each workload performed by each managed node, memory utilization data indicative of an amount or frequency of memory use by each workload performed by each managed node, or network utilization data indicative of an amount of network bandwidth used by each workload performed by each managed node.

23. The one or more non-transitory machine-readable storage media of claim 13 , wherein the plurality of instructions, when executed, further cause the orchestrator server to determine whether the assignment of the workloads is Pareto-efficient; and

wherein to determine an adjustment to the assignment of the workloads comprises to determine, in response to a determination that the assignment of the workloads is not Pareto-efficient, an adjustment to the assignment of the workloads.

24. The one or more non-transitory machine-readable storage media of claim 13 , wherein to determine the adjustments comprises to determine one or more node-specific adjustments indicative of changes to an availability of one or more resources of at least one of the managed nodes to one or more of the workloads performed by the managed node.

25. An orchestrator server to allocate resources of a set of managed nodes to workloads based on resource utilization phase residencies, the orchestrator server comprising:

circuitry for receiving resource allocation objective data indicative of multiple resource allocation objectives to be satisfied;

circuitry for determining an assignment of a set of workloads among the managed nodes;

circuitry for receiving telemetry data from the managed nodes, wherein the telemetry data is indicative of resource utilization by each of the managed nodes as the workloads are performed;

means for determining, as a function of the telemetry data, phase residency data indicative of temporal lengths of resource utilization phases of the workloads, wherein each resource utilization phase is indicative of a utilization, by a corresponding workload, of a managed node component, wherein the utilization satisfies a predefined threshold amount;

means for determining, as a function of at least the phase residency data and the resource allocation objective data, an adjustment to the assignment of the workloads to increase an achievement of at least one of the resource allocation objectives without decreasing the achievement of any of the other resource allocation objectives, including determining a time offset for the execution of one workload of the set of workloads to shift a corresponding resource utilization phase of the one workload relative to another resource utilization phase of another workload of the set of workloads; and

means for applying the adjustment to the assignments of the workloads among the managed nodes as the workloads are performed.

26. A method for allocating resources of a set of managed nodes to workloads based on resource utilization phase residencies, the method comprising:

receiving, by an orchestrator server, resource allocation objective data indicative of multiple resource allocation objectives to be satisfied;

determining, by the orchestrator server, an assignment of a set of workloads among the managed nodes;

receiving, by the orchestrator server, telemetry data from the managed nodes, wherein the telemetry data is indicative of resource utilization by each of the managed nodes as the workloads are performed;

determining, by the orchestrator server and as a function of the telemetry data, phase residency data indicative of temporal lengths of resource utilization phases of the workloads, wherein each resource utilization phase is indicative of a utilization, by a corresponding workload, of a managed node component, wherein the utilization satisfies a predefined threshold amount;

determining, by the orchestrator server and as a function of at least the phase residency data and the resource allocation objective data, an adjustment to the assignment of the workloads to increase an achievement of at least one of the resource allocation objectives without decreasing the achievement of any of the other resource allocation objectives, including determining a time offset for the execution of one workload of the set of workloads to shift a corresponding resource utilization phase of the one workload relative to another resource utilization phase of another workload of the set of workloads; and

applying, by the orchestrator server, the adjustment to the assignments of the workloads among the managed nodes as the workloads are performed.

27. The method of claim 26 , wherein determining the adjustment to the assignment of the workloads comprises:

identifying complementary workload utilization phases indicative of resource utilization phases of different managed node components by two or more workloads; and

determining an alignment of the complementary workload utilization phases to cause the complementary workload utilization phases to be performed concurrently by the same managed node.

28. The method of claim 27 , wherein:

applying the adjustments to the assignments comprises:

temporarily suspending execution of the one or more of the workloads; and

resuming execution of the one or more of the workloads after the time offset has elapsed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2020
From: BALLE, SUSANNE M.; KHANNA, RAHUL; AHUJA, NISHI; GANGULI, MRITTIKA
To: INTEL CORPORATION
Reel/Frame 051913/0275 →
Continuity (4)
Provisional Application 62365969 · Jul 22, 2016
Provisional Application 62376859 · Aug 18, 2016
Provisional Application 62427268 · Nov 29, 2016
Related Publication 20180026913A1 · Jan 25, 2018
Cited By (1)
US 12,191,987