IP Library Granted Patent US 10,949,261
Granted Patent B2
US 10,949,261 · App. 16/367,120 · Granted Mar 16, 2021

Automated resource provisioning using double-blinded hardware recommendations

Inventor: Shao-Wen Yang (San Jose, CA)
Assignee: Intel Corporation
G06F9/5038G06F9/4881G06F9/505G06F9/5072H04L41/0806H04L41/0896H04L41/12G06F2209/506G06F2209/5017
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,949,261
App. No.
16/367,120
Granted
Mar 16, 2021
Kind
B2
Abstract

In one embodiment, an apparatus comprises a communication interface to communicate over a network, and a processor. The processor is to: receive a workload provisioning request from a user, wherein the workload provisioning request comprises information associated with a workload, a network topology, and a plurality of potential hardware choices for deploying the workload over the network topology; receive hardware performance information for the plurality of potential hardware choices from one or more hardware providers; generate a task dependency graph associated with the workload; generate a device connectivity graph associated with the network topology; select, based on the task dependency graph and the device connectivity graph, one or more hardware choices from the plurality of potential hardware choices; and provision a plurality of resources for deploying the workload over the network topology, wherein the plurality of resources are provisioned based on the one or more hardware choices.

Claims (129)

1. An apparatus, comprising:

a communication interface to communicate over a network with a user and one or more hardware providers; and

a processor to:

receive, via the communication interface, a workload provisioning request from the user, wherein the workload provisioning request comprises information associated with a workload, a network topology, and a plurality of potential hardware choices for deploying the workload over the network topology;

receive, via the communication interface, hardware performance information associated with the plurality of potential hardware choices, wherein the hardware performance information is received from the one or more hardware providers;

generate a task dependency graph associated with the workload, wherein the task dependency graph represents a plurality of tasks associated with the workload, a plurality of dependencies among the plurality of tasks, a plurality of potential hardware implementations of the plurality of tasks, and a plurality of resource requirements;

generate a device connectivity graph associated with the network topology, wherein the device connectivity graph represents a plurality of nodes in the network topology, a plurality of connections among the plurality of nodes, a plurality of potential hardware devices for implementing the plurality of nodes, and a plurality of resource capacities;

select, based on the task dependency graph and the device connectivity graph, one or more hardware choices from the plurality of potential hardware choices; and

provision a plurality of resources for deploying the workload over the network topology, wherein the plurality of resources are provisioned based on the one or more hardware choices.

2. The apparatus of claim 1 , wherein the processor to generate the task dependency graph associated with the workload is further to:

generate the task dependency graph to represent the plurality of tasks associated with the workload and the plurality of dependencies among the plurality of tasks, wherein the plurality of tasks are represented as graph vertices and the plurality of dependencies are represented as graph edges;

expand the task dependency graph to represent the plurality of potential hardware implementations of the plurality of tasks, wherein the graph vertices corresponding to the plurality of tasks are expanded to represent the plurality of potential hardware implementations; and

insert weights onto the graph vertices and the graph edges to represent the plurality of resource requirements.

3. The apparatus of claim 1 , wherein the processor to generate the device connectivity graph associated with the network topology is further to:

generate the device connectivity graph to represent the plurality of nodes in the network topology and the plurality of connections among the plurality of nodes, wherein the plurality of nodes are represented as graph vertices and the plurality of connections are represented as graph edges;

expand the device connectivity graph to represent the plurality of potential hardware devices for implementing the plurality of nodes, wherein the graph vertices corresponding to the plurality of nodes are expanded to represent the plurality of potential hardware devices; and

insert weights onto the graph vertices and the graph edges to represent the plurality of resource capacities.

4. The apparatus of claim 1 , wherein the plurality of potential hardware choices comprise:

the plurality of potential hardware implementations of the plurality of tasks; and

the plurality of potential hardware devices for implementing the plurality of nodes.

5. The apparatus of claim 1 , wherein the processor to select, based on the task dependency graph and the device connectivity graph, the one or more hardware choices from the plurality of potential hardware choices is further to:

select one or more hardware implementations of the plurality of tasks, wherein the one or more hardware implementations are selected from the plurality of potential hardware implementations; and

select one or more hardware devices for implementing the plurality of nodes, wherein the one or more hardware devices are selected from the plurality of potential hardware devices.

6. The apparatus of claim 1 , wherein the processor to select, based on the task dependency graph and the device connectivity graph, the one or more hardware choices from the plurality of potential hardware choices is further to:

identify a deployment objective for the workload;

identify a plurality of deployment constraints for the workload, wherein the plurality of deployment constraints are identified based at least partially on the task dependency graph and the device connectivity graph; and

identify the one or more hardware choices that optimize the deployment objective and satisfy the plurality of deployment constraints, wherein the one or more hardware choices are identified from the plurality of potential hardware choices based on the task dependency graph and the device connectivity graph.

7. The apparatus of claim 6 , wherein the deployment objective comprises:

minimizing network resource utilization;

minimizing hardware resource utilization;

minimizing hardware costs; or

minimizing workload latency.

8. The apparatus of claim 6 , wherein the processor to identify the one or more hardware choices that optimize the deployment objective and satisfy the plurality of deployment constraints is further to:

identify optimal paths through the task dependency graph and the device connectivity graph, wherein the optimal paths are identified to optimize the deployment objective and satisfy the plurality of deployment constraints; and

extract the one or more hardware choices corresponding to the optimal paths through the task dependency graph and the device connectivity graph.

9. The apparatus of claim 8 , wherein the processor to identify the optimal paths through the task dependency graph and the device connectivity graph is further to:

perform directed acyclic graph to directed acyclic graph (DAG-to-DAG) scheduling to select the optimal paths through the task dependency graph and the device connectivity graph, wherein the task dependency graph and the device connectivity graph are each represented as a directed acyclic graph (DAG).

10. The apparatus of claim 8 , wherein the processor to identify the optimal paths through the task dependency graph and the device connectivity graph is further to:

solve an integer linear programming (ILP) model to optimize the deployment objective based on the plurality of deployment constraints, wherein:

the plurality of deployment constraints are based at least partially on the plurality of resource requirements from the task dependency graph and the plurality of resource capacities from the device connectivity graph;

the ILP model is supplied with a plurality of possible paths through the task dependency graph and the device connectivity graph as input; and

the ILP model evaluates the plurality of possible paths to identify the optimal paths that optimize the deployment objective and satisfy the plurality of deployment constraints.

11. A system, comprising:

a plurality of heterogeneous computing resources associated with a computing environment;

a communication interface to communicate over a network with a user and one or more hardware providers; and

a processor to:

receive, via the communication interface, a workload provisioning request from the user, wherein the workload provisioning request comprises information associated with a workload, a network topology, and a plurality of potential hardware choices for deploying the workload over the network topology;

receive, via the communication interface, hardware performance information associated with the plurality of potential hardware choices, wherein the hardware performance information is received from the one or more hardware providers;

generate a task dependency graph associated with the workload, wherein the task dependency graph represents a plurality of tasks associated with the workload, a plurality of dependencies among the plurality of tasks, a plurality of potential hardware implementations of the plurality of tasks, and a plurality of resource requirements;

generate a device connectivity graph associated with the network topology, wherein the device connectivity graph represents a plurality of nodes in the network topology, a plurality of connections among the plurality of nodes, a plurality of potential hardware devices for implementing the plurality of nodes, and a plurality of resource capacities;

select, based on the task dependency graph and the device connectivity graph, one or more hardware choices from the plurality of potential hardware choices; and

provision a plurality of resources for deploying the workload over the network topology, wherein the plurality of resources are provisioned on the plurality of heterogeneous computing resources based on the one or more hardware choices.

12. The system of claim 11 , wherein:

the processor to generate the task dependency graph associated with the workload is further to:

generate the task dependency graph to represent the plurality of tasks associated with the workload and the plurality of dependencies among the plurality of tasks, wherein the plurality of tasks are represented as task vertices in the task dependency graph, and wherein the plurality of dependencies are represented as dependency edges in the task dependency graph;

expand the task dependency graph to represent the plurality of potential hardware implementations of the plurality of tasks, wherein the task vertices are expanded to represent the plurality of potential hardware implementations; and

insert weights onto the task vertices and the dependency edges to represent the plurality of resource requirements; and

the processor to generate the device connectivity graph associated with the network topology is further to:

generate the device connectivity graph to represent the plurality of nodes in the network topology and the plurality of connections among the plurality of nodes, wherein the plurality of nodes are represented as node vertices in the device connectivity graph, and wherein the plurality of connections are represented as connection edges in the device connectivity graph;

expand the device connectivity graph to represent the plurality of potential hardware devices for implementing the plurality of nodes, wherein the node vertices are expanded to represent the plurality of potential hardware devices; and

insert weights onto the node vertices and the connection edges to represent the plurality of resource capacities.

13. The system of claim 11 , wherein the processor to select, based on the task dependency graph and the device connectivity graph, the one or more hardware choices from the plurality of potential hardware choices is further to:

identify a deployment objective for the workload, wherein the deployment objective comprises minimizing network resource utilization, minimizing hardware resource utilization, minimizing hardware costs, or minimizing workload latency;

identify a plurality of deployment constraints for the workload, wherein the plurality of deployment constraints are identified based at least partially on the task dependency graph and the device connectivity graph; and

identify the one or more hardware choices that optimize the deployment objective and satisfy the plurality of deployment constraints, wherein the one or more hardware choices are identified from the plurality of potential hardware choices based on the task dependency graph and the device connectivity graph.

14. The system of claim 13 , wherein the processor to identify the one or more hardware choices that optimize the deployment objective and satisfy the plurality of deployment constraints is further to:

identify optimal paths through the task dependency graph and the device connectivity graph, wherein the optimal paths are identified to optimize the deployment objective and satisfy the plurality of deployment constraints; and

extract the one or more hardware choices corresponding to the optimal paths through the task dependency graph and the device connectivity graph.

15. The system of claim 14 , wherein the processor to identify the optimal paths through the task dependency graph and the device connectivity graph is further to:

perform directed acyclic graph to directed acyclic graph (DAG-to-DAG) scheduling to select the optimal paths through the task dependency graph and the device connectivity graph, wherein the task dependency graph and the device connectivity graph are each represented as a directed acyclic graph (DAG).

16. The system of claim 14 , wherein the processor to identify the optimal paths through the task dependency graph and the device connectivity graph is further to:

solve an integer linear programming (ILP) model to optimize the deployment objective based on the plurality of deployment constraints, wherein:

the plurality of deployment constraints are based at least partially on the plurality of resource requirements from the task dependency graph and the plurality of resource capacities from the device connectivity graph;

the ILP model is supplied with a plurality of possible paths through the task dependency graph and the device connectivity graph as input; and

the ILP model evaluates the plurality of possible paths to identify the optimal paths that optimize the deployment objective and satisfy the plurality of deployment constraints.

17. At least one machine accessible storage medium having instructions stored thereon, wherein the instructions, when executed on a machine, cause the machine to:

receive, via a communication interface, a workload provisioning request from a user, wherein the workload provisioning request comprises information associated with a workload, a network topology, and a plurality of potential hardware choices for deploying the workload over the network topology;

receive, via the communication interface, hardware performance information associated with the plurality of potential hardware choices, wherein the hardware performance information is received from one or more hardware providers;

generate a task dependency graph associated with the workload, wherein the task dependency graph represents a plurality of tasks associated with the workload, a plurality of dependencies among the plurality of tasks, a plurality of potential hardware implementations of the plurality of tasks, and a plurality of resource requirements;

generate a device connectivity graph associated with the network topology, wherein the device connectivity graph represents a plurality of nodes in the network topology, a plurality of connections among the plurality of nodes, a plurality of potential hardware devices for implementing the plurality of nodes, and a plurality of resource capacities;

select, based on the task dependency graph and the device connectivity graph, one or more hardware choices from the plurality of potential hardware choices; and

provision a plurality of resources for deploying the workload over the network topology, wherein the plurality of resources are provisioned based on the one or more hardware choices.

18. The storage medium of claim 17 , wherein:

the instructions that cause the machine to generate the task dependency graph associated with the workload further cause the machine to:

generate the task dependency graph to represent the plurality of tasks associated with the workload and the plurality of dependencies among the plurality of tasks, wherein the plurality of tasks are represented as task vertices in the task dependency graph, and wherein the plurality of dependencies are represented as dependency edges in the task dependency graph;

expand the task dependency graph to represent the plurality of potential hardware implementations of the plurality of tasks, wherein the task vertices are expanded to represent the plurality of potential hardware implementations; and

insert weights onto the task vertices and the dependency edges to represent the plurality of resource requirements; and

the instructions that cause the machine to generate the device connectivity graph associated with the network topology further cause the machine to:

generate the device connectivity graph to represent the plurality of nodes in the network topology and the plurality of connections among the plurality of nodes, wherein the plurality of nodes are represented as node vertices in the device connectivity graph, and wherein the plurality of connections are represented as connection edges in the device connectivity graph;

expand the device connectivity graph to represent the plurality of potential hardware devices for implementing the plurality of nodes, wherein the node vertices are expanded to represent the plurality of potential hardware devices; and

insert weights onto the node vertices and the connection edges to represent the plurality of resource capacities.

19. The storage medium of claim 17 , wherein the instructions that cause the machine to select, based on the task dependency graph and the device connectivity graph, the one or more hardware choices from the plurality of potential hardware choices further cause the machine to:

identify a deployment objective for the workload, wherein the deployment objective comprises minimizing network resource utilization, minimizing hardware resource utilization, minimizing hardware costs, or minimizing workload latency;

identify a plurality of deployment constraints for the workload, wherein the plurality of deployment constraints are identified based at least partially on the task dependency graph and the device connectivity graph;

identify optimal paths through the task dependency graph and the device connectivity graph, wherein the optimal paths are identified to optimize the deployment objective and satisfy the plurality of deployment constraints; and

extract the one or more hardware choices corresponding to the optimal paths through the task dependency graph and the device connectivity graph.

20. The storage medium of claim 19 , wherein the instructions that cause the machine to identify the optimal paths through the task dependency graph and the device connectivity graph further cause the machine to:

perform directed acyclic graph to directed acyclic graph (DAG-to-DAG) scheduling to select the optimal paths through the task dependency graph and the device connectivity graph, wherein the task dependency graph and the device connectivity graph are each represented as a directed acyclic graph (DAG).

21. The storage medium of claim 19 , wherein the instructions that cause the machine to identify the optimal paths through the task dependency graph and the device connectivity graph further cause the machine to:

solve an integer linear programming (ILP) model to optimize the deployment objective based on the plurality of deployment constraints, wherein:

the plurality of deployment constraints are based at least partially on the plurality of resource requirements from the task dependency graph and the plurality of resource capacities from the device connectivity graph;

the ILP model is supplied with a plurality of possible paths through the task dependency graph and the device connectivity graph as input; and

the ILP model evaluates the plurality of possible paths to identify the optimal paths that optimize the deployment objective and satisfy the plurality of deployment constraints.

22. A method, comprising:

receiving, via a communication interface, a workload provisioning request from a user, wherein the workload provisioning request comprises information associated with a workload, a network topology, and a plurality of potential hardware choices for deploying the workload over the network topology;

receiving, via the communication interface, hardware performance information associated with the plurality of potential hardware choices, wherein the hardware performance information is received from one or more hardware providers;

generating a task dependency graph associated with the workload, wherein the task dependency graph represents a plurality of tasks associated with the workload, a plurality of dependencies among the plurality of tasks, a plurality of potential hardware implementations of the plurality of tasks, and a plurality of resource requirements;

generating a device connectivity graph associated with the network topology, wherein the device connectivity graph represents a plurality of nodes in the network topology, a plurality of connections among the plurality of nodes, a plurality of potential hardware devices for implementing the plurality of nodes, and a plurality of resource capacities;

selecting, based on the task dependency graph and the device connectivity graph, one or more hardware choices from the plurality of potential hardware choices; and

provisioning a plurality of resources for deploying the workload over the network topology, wherein the plurality of resources are provisioned based on the one or more hardware choices.

23. The method of claim 22 , wherein:

generating the task dependency graph associated with the workload comprises:

generating the task dependency graph to represent the plurality of tasks associated with the workload and the plurality of dependencies among the plurality of tasks, wherein the plurality of tasks are represented as task vertices in the task dependency graph, and wherein the plurality of dependencies are represented as dependency edges in the task dependency graph;

expanding the task dependency graph to represent the plurality of potential hardware implementations of the plurality of tasks, wherein the task vertices are expanded to represent the plurality of potential hardware implementations; and

inserting weights onto the task vertices and the dependency edges to represent the plurality of resource requirements; and

generating the device connectivity graph associated with the network topology comprises:

generating the device connectivity graph to represent the plurality of nodes in the network topology and the plurality of connections among the plurality of nodes, wherein the plurality of nodes are represented as node vertices in the device connectivity graph, and wherein the plurality of connections are represented as connection edges in the device connectivity graph;

expanding the device connectivity graph to represent the plurality of potential hardware devices for implementing the plurality of nodes, wherein the node vertices are expanded to represent the plurality of potential hardware devices; and

inserting weights onto the node vertices and the connection edges to represent the plurality of resource capacities.

24. The method of claim 22 , wherein selecting, based on the task dependency graph and the device connectivity graph, the one or more hardware choices from the plurality of potential hardware choices comprises:

identifying a deployment objective for the workload, wherein the deployment objective comprises minimizing network resource utilization, minimizing hardware resource utilization, minimizing hardware costs, or minimizing workload latency;

identifying a plurality of deployment constraints for the workload, wherein the plurality of deployment constraints are identified based at least partially on the task dependency graph and the device connectivity graph;

identifying optimal paths through the task dependency graph and the device connectivity graph, wherein the optimal paths are identified to optimize the deployment objective and satisfy the plurality of deployment constraints; and

extracting the one or more hardware choices corresponding to the optimal paths through the task dependency graph and the device connectivity graph.

25. The method of claim 24 , wherein identifying the optimal paths through the task dependency graph and the device connectivity graph comprises:

solving an integer linear programming (ILP) model to optimize the deployment objective based on the plurality of deployment constraints, wherein:

the plurality of deployment constraints are based at least partially on the plurality of resource requirements from the task dependency graph and the plurality of resource capacities from the device connectivity graph;

the ILP model is supplied with a plurality of possible paths through the task dependency graph and the device connectivity graph as input; and

the ILP model evaluates the plurality of possible paths to identify the optimal paths that optimize the deployment objective and satisfy the plurality of deployment constraints.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2019
From: YANG, SHAO-WEN
To: INTEL CORPORATION
Reel/Frame 048719/0955 →
Continuity (1)
Related Publication 20190220321A1 · Jul 18, 2019
Cited By (3)
US 12,481,946 US 12,585,500 US 12,657,020