# US 2018/0024859 A1 · Performance Provisioning Using Machine Learning Based Automated Workload Classification

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0024859 A1
- Document ID: US20180024859A1
- Status: Published application
- Kind: A1
- Application number: 15/257,491
- Filed: 2016-09-06
- Published: 2018-01-25
- Earliest claimed: 2016-07-20
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Paras Surendra Doshi; Manish Goel; Ayush Agarwal; Kunal Punjabi
- Web page: https://patentgrep.com/patent/US20180024859A1

## CPC

- G06F 9/505: {considering the load}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/5061: {Partitioning or combining of resources}
- G06F 9/5094: {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)}
- G06N 20/00: Machine learning
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Various aspects may include methods, computing devices implementing such methods, and non-transitory processor-readable media storing processor-executable instructions implementing such methods for improving battery life with performance provisioning using machine learning based automated workload classification. Various aspects may include creating a machine learning model based at least in part on computing device metrics, training the machine learning model using performance provisioning rules for work groups; classifying a new work item for a software application into a work group using the trained machine learning model, and applying resource provisioning rules for the work group to the new work item.

## Claims

### Claim 1

A method for resource provisioning using workload classification, comprising:
creating, by a processor of a computing device, a work classification model based at least in part on computing device metrics;
classifying, by the processor, a new work item for a software application into a work group using the work classification model;
selecting, by the processor, a set of provisioning rules for the work item based, at least in part, on the work group to which the work item was classified; and
executing, by the processor, the work item according to the selected set of provisioning rules.

### Claim 2 (depends on 1)

The method of claim 1, wherein the computing device metrics are orthogonal system metrics.

### Claim 3 (depends on 1)

The method of claim 1, wherein the computing device metrics comprise at least one or more of graphical processing unit (GPU) frequency range, central processing unit (CPU) frequency for a cluster of little CPUs, CPU frequency for a cluster of big CPUs, CPU utilization of the cluster of little CPUs, CPU utilization of the cluster of big CPUs, and advanced RISC machine (ARM) instructions.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
monitoring, by the processor, system performance and operations for a period of time to obtain computing device metrics;
executing, by the processor, a function on at least a portion of the computing device metrics to produce group expressions;
mapping, by the processor, the group expressions to an N-dimensional space; and
classifying, by the processor, each region bounded by the group expressions as a work group.

### Claim 5 (depends on 4)

The method of claim 4, wherein “N” is defined by a number of computing device metrics.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
storing, by the processor, performance metrics of classified work items;
determining, by the processor, whether the stored performance metrics meet a performance quality threshold; and
training the classification model, by the processor, in response to determining that the stored performance metrics do not meet the performance quality threshold.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
storing performance metrics of classified work items;
transmitting, by the processor via a transceiver of the computing device, the stored performance metrics to a remote server; and
receiving, by the processor, an updated work classification model from the remote server.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining, by the processor, whether the stored performance metrics meet a performance quality threshold; and
transmitting, by the processor via the transceiver, a request for an updated classification model in response to determining that the stored performance metrics do not meet a performance quality threshold.

### Claim 9 (depends on 1)

The method of claim 1, wherein classifying a new work item for a software application into a work group using the work classification model comprises matching, by the processor, an application type of the software application to which the work item belongs to an application type associated with one or more work groups.

### Claim 10 (depends on 1)

The method of claim 1, further comprising;
receiving an input from a user that sets or annotates a performance indicator; and
implementing the user set or annotated performance indicator to improve accuracy of the work classification model.

### Claim 11

A computing device comprising:
a transceiver; and
a processor coupled to the transceiver and configured with processor-executable instructions to perform operations comprising:
creating a work classification model based at least in part on computing device metrics;
classifying a new work item for a software application into a work group using the work classification model;
selecting a set of provisioning rules for the work item based, at least in part, on the work group to which the work item was classified; and
executing the work item according to the selected provisioning rules.

### Claim 12 (depends on 11)

The computing device of claim 11, wherein the processor is configured with processor-executable instructions to perform operations such that the computing device metrics are orthogonal system metrics.

### Claim 13 (depends on 11)

The computing device of claim 11, wherein the processor is configured with processor-executable instructions to perform operations such that the computing device metrics comprise at least one or more of graphical processing unit (GPU) frequency range, central processing unit (CPU) frequency for a cluster of little CPUs, CPU frequency for a cluster of big CPUs, CPU utilization of the cluster of little CPUs, CPU utilization of the cluster of big CPUs, and advanced RISC machine (ARM) instructions.

### Claim 14 (depends on 11)

The computing device of claim 11, wherein the processor is configured with processor-executable instructions to perform operations further comprising:
monitoring system performance and operations for a period of time to obtain computing device metrics;
executing a function on at least a portion of the computing device metrics to produce group expressions;
mapping the group expressions to an N-dimensional space; and
classifying each region bounded by the group expressions as a work group.

### Claim 15 (depends on 14)

The computing device of claim 14, wherein the processor is configured with processor-executable instructions to perform operations such that “N” is defined by a number of computing device metrics.

### Claim 16 (depends on 11)

The computing device of claim 11, wherein the processor is configured with processor-executable instructions to perform operations further comprising:
storing performance metrics of classified work items;
determining whether the stored performance metrics meet a performance quality threshold; and
training the classification model in response to determining that the stored performance metrics do not meet the performance quality threshold.

### Claim 17 (depends on 11)

The computing device of claim 11, wherein the processor is configured with processor-executable instructions to perform operations further comprising:
storing performance metrics of classified work items;
transmitting the stored performance metrics to a remote server; and
receiving an updated work classification model from the remote server.

### Claim 18 (depends on 17)

The computing device of claim 17, wherein the processor is configured with processor-executable instructions to perform operations further comprising:
determining whether the stored performance metrics meet a performance quality threshold; and
transmitting a request for an updated classification model in response to determining that the stored performance metrics do not meet a performance quality threshold.

### Claim 19 (depends on 11)

The computing device of claim 11, wherein the processor is configured with processor-executable instructions to perform operations further comprising classifying a new work item for a software application into a work group using the work classification model by matching an application type of the software application to which the work item belongs to an application type associated with one or more work groups.

### Claim 20 (depends on 11)

The computing device of claim 11, wherein the processor is configured with processor-executable instructions to perform operations further comprising;
receiving an input from a user that sets or annotates a performance indicator; and
implementing the user set or annotated performance indicator to improve accuracy of the work classification model.

### Claim 21

A non-transitory computer-readable medium having stored thereon processor-executable instructions configured to cause a processor to perform operations comprising:
creating a work classification model based at least in part on computing device metrics;
classifying a new work item for a software application into a work group using the work classification model;
selecting a set of provisioning rules for the work item based, at least in part, on the work group to which the work item was classified; and
executing the work item according to the selected provisioning rules.

### Claim 22 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the computing device metrics comprise at least one or more of graphical processing unit (GPU) frequency range, central processing unit (CPU) frequency for a cluster of little CPUs, CPU frequency for a cluster of big CPUs, CPU utilization of the cluster of little CPUs, CPU utilization of the cluster of big CPUs, and advanced RISC machine (ARM) instructions.

### Claim 23 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the stored processor-executable instructions are further configured to cause the processor to perform operations further comprising:
monitoring system performance and operations for a period of time to obtain computing device metrics;
executing a function on at least a portion of the computing device metrics to produce group expressions;
mapping the group expressions to an N-dimensional space; and
classifying each region bounded by the group expressions as a work group.

### Claim 24 (depends on 23)

The non-transitory computer-readable medium of claim 23, wherein “N” is defined by a number of computing device metrics.

### Claim 25 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the stored processor-executable instructions are further configured to cause the processor to perform operations further comprising:
storing performance metrics of classified work items;
determining whether the stored performance metrics meet a performance quality threshold; and
training the classification model in response to determining that the stored performance metrics do not meet the performance quality threshold.

### Claim 26 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the stored processor-executable instructions are further configured to cause the processor to perform operations further comprising:
storing performance metrics of classified work items;
transmitting the stored performance metrics to a remote server; and
receiving an updated work classification model from the remote server.

### Claim 27 (depends on 26)

The non-transitory computer-readable medium of claim 26, wherein the stored processor-executable instructions are further configured to cause the processor to perform operations further comprising:
determining whether the stored performance metrics meet a performance quality threshold; and
transmitting a request for an updated classification model in response to determining that the stored performance metrics do not meet a performance quality threshold.

### Claim 28 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the stored processor-executable instructions are further configured to cause the processor to perform operations such that classifying a new work item for a software application into a work group using the work classification model by matching, by the processor, an application type of the software application to which the work item belongs to an application type associated with one or more work groups.

### Claim 29 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein the stored processor-executable instructions are further configured to cause the processor to perform operations further comprising:
receiving an input from a user that sets or annotates a performance indicator; and
implementing the user set or annotated performance indicator to improve accuracy of the work classification model.

### Claim 30

A computing device, comprising:
means for creating a work classification model based at least in part on computing device metrics;
means for classifying a new work item for a software application into a work group using the work classification model;
means for selecting a set of provisioning rules for the work item based, at least in part, on the work group to which the work item was classified; and
means for executing the work item according to the selected provisioning rules.
