Dynamic placement of heterogeneous workloads
First Claim
1. A method for managing a system of heterogeneous applications comprising the steps of:
- classifying a plurality of applications into a plurality of application types, wherein the plurality of applications comprises heterogeneous applications, and the heterogeneous applications comprise at least one interactive workload-type application and at least one non-interactive workload-type application;
classifying one or more of the plurality of applications in each of the plurality of application types into one or more collections;
computing a utility function of possible resource allocations for each of the one or more collections comprising the steps of;
(i) obtaining an execution profile for each of the plurality of applications in a given one of the one or more collections;
(ii) obtaining management policies for each of the plurality of applications; and
(iii) computing the utility function for the given one of the collections in accordance with the execution profiles for the plurality of applications, service level agreement goals for the plurality of applications, and a state of the system;
computing an application placement that optimizes a global utility of the plurality of applications in accordance with the one or more utility functions; and
modifying placement and resource allocation of the plurality of applications in the system in accordance with the application placement;
wherein an execution profile for a given interactive workload-type application comprises an average number of processor cycles consumed by requests of a given flow associated with the given interactive workload-type application, and an execution profile for a given non-interactive workload-type application comprises the number of processor cycles used to complete a job associated with the given non-interactive workload-type application, the number of threads used by the job, and the maximum processor speed at which the job progresses.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for managing a system of heterogeneous applications are provided. A plurality of applications is classified into a plurality of application types. One or more of the plurality of applications in each of the plurality of application types are classified into one or more collections. A utility function of possible resource allocations is computed for each of the one or more collections. An application placement is computed that optimizes a global utility of the plurality of applications in accordance with the one or more utility functions. Placement and resource allocation of the plurality of applications are modified in the system in accordance with the application placement.
-
Citations
18 Claims
-
1. A method for managing a system of heterogeneous applications comprising the steps of:
-
classifying a plurality of applications into a plurality of application types, wherein the plurality of applications comprises heterogeneous applications, and the heterogeneous applications comprise at least one interactive workload-type application and at least one non-interactive workload-type application; classifying one or more of the plurality of applications in each of the plurality of application types into one or more collections; computing a utility function of possible resource allocations for each of the one or more collections comprising the steps of;
(i) obtaining an execution profile for each of the plurality of applications in a given one of the one or more collections;
(ii) obtaining management policies for each of the plurality of applications; and
(iii) computing the utility function for the given one of the collections in accordance with the execution profiles for the plurality of applications, service level agreement goals for the plurality of applications, and a state of the system;computing an application placement that optimizes a global utility of the plurality of applications in accordance with the one or more utility functions; and modifying placement and resource allocation of the plurality of applications in the system in accordance with the application placement; wherein an execution profile for a given interactive workload-type application comprises an average number of processor cycles consumed by requests of a given flow associated with the given interactive workload-type application, and an execution profile for a given non-interactive workload-type application comprises the number of processor cycles used to complete a job associated with the given non-interactive workload-type application, the number of threads used by the job, and the maximum processor speed at which the job progresses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. Apparatus for managing a system of heterogeneous applications, comprising:
-
a memory; and at least one processor coupled to the memory and operative to;
(i) classify a plurality of applications into a plurality of application types, wherein the plurality of applications comprises heterogeneous applications, and the heterogeneous applications comprise at least one interactive workload-type application and at least one non-interactive workload-type application;
(ii) classify one or more of the plurality of applications in each of the plurality of application types into one or more collections;
(iii) compute a utility function of possible resource allocations for each of the one or more collections comprising the steps of;
(a) obtaining an execution profile for each of the plurality of applications in a given one of the one or more collections;
(b) obtaining management policies for each of the plurality of applications; and
(c) computing the utility function for the given one of the collections in accordance with the execution profiles for the plurality of applications, service level agreement goals for the plurality of applications, and a state of the system;
(iv) compute an application placement that optimizes a global utility of the plurality of applications in accordance with the one or more utility functions; and
(v) modify placement and resource allocation of the plurality of applications in the system in accordance with the application placement;wherein an execution profile for a given interactive workload-type application comprises an average number of processor cycles consumed by requests of a given flow associated with the given interactive workload-type application, and an execution profile for a given non-interactive workload-type application comprises the number of processor cycles used to complete a job associated with the given non-interactive workload-type application, the number of threads used by the job, and the maximum processor speed at which the job progresses. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for making a computer implemented process for the management of a system of heterogeneous applications comprising the steps of:
-
instantiating first computer instructions onto a non-transitory computer readable medium, the first computer instructions configured to classify a plurality of applications into a plurality of application types, wherein the plurality of applications comprises heterogeneous applications, and the heterogeneous applications comprise at least one interactive workload-type application and at least one non-interactive workload-type application; instantiating second computer instructions onto a non-transitory computer readable medium, the second computer instructions configured to classify one or more of the plurality of applications in each of the plurality of application types into one or more collections; instantiating third computer instructions onto a non-transitory computer readable medium, the third computer instructions configured to compute a utility function of possible resource allocations for each of the one or more collections comprising the steps of;
(i) obtaining an execution profile for each of the plurality of applications in a given one of the one or more collections;
(ii) obtaining management policies for each of the plurality of applications; and
(iii) computing the utility function for the given one of the collections in accordance with the execution profiles for the plurality of applications, service level agreement goals for the plurality of applications, and a state of the system;instantiating fourth computer instructions onto a non-transitory computer readable medium, the fourth computer instructions configured to compute an application placement that optimizes a global utility of the plurality of applications in accordance with the one or more utility functions; and instantiating fifth computer instructions onto a non-transitory computer readable medium, the fifth computer instructions configured to modify placement and resource allocation of the plurality of applications in the system in accordance with the application placement; wherein an execution profile for a given interactive workload-type application comprises an average number of processor cycles consumed by requests of a given flow associated with the given interactive workload-type application, and an execution profile for a given non-interactive workload-type application comprises the number of processor cycles used to complete a job associated with the given non-interactive workload-type application, the number of threads used by the job, and the maximum processor speed at which the job progresses.
-
Specification