# US 2018/0025289 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/0025289 A1
- Document ID: US20180025289A1
- Status: Published application
- Kind: A1
- Application number: 15/634,215
- Filed: 2017-06-27
- 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/US20180025289A1

## CPC

- G06F 9/5061: {Partitioning or combining of resources}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06N 20/00: Machine learning
- G06F 2209/501: Performance criteria
- G06F 2209/5019: Workload prediction
- G06F 2209/508: Monitor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## 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 work classification, comprising:
generating, by a processor of a computing device, a work group;
classifying, by the processor, a new work item for a software application into the generated work group using a 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 generating the work group comprises:
identifying, by the processor, that a first set of collected computing device metric data belongs to a work group;
collecting a second set of computing device metric data;
analyzing the first set of collected computing device metric data and the second set of collected computing device metric data to obtain a measured quantity;
determining whether the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group based on the measured quantity;
determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent software application work groups in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group; and
ending a current data collection session in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups.

### Claim 3 (depends on 2)

The method of claim 2, wherein computing device metrics comprise at least one 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, or advanced RISC machine (ARM) instructions.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
determining whether a minimum amount of computing device metric data has been collected in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group,
wherein determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups is performed further in response to determining that a minimum amount of computing device metric data has been collected.

### Claim 5 (depends on 2)

The method of claim 2, wherein the measured quantity is one or more of a mean, standard deviation, median, number of outliers, percentage of outliers, or a coefficient of variation.

### 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 work 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 via the transceiver, 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, a software application type of the software application to which the work item belongs to a software application type associated with one or more work groups.

### Claim 10

A computing device, comprising:
a processor configured with processor-executable instructions to perform operations comprising:
generating a work group;
classifying a new work item for a software application into the generated work group using a 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 set of provisioning rules.

### Claim 11 (depends on 10)

The computing device of claim 10, wherein the processor is further configured with processor-executable instructions to perform operations such that generating the work group comprises:
identifying that a first set of collected computing device metric data belongs to a work group;
collecting a second set of computing device metric data;
analyzing the first set of collected computing device metric data and the second set of collected computing device metric data to obtain a measured quantity;
determining whether the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group based on the measured quantity;
determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent software application work groups in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group; and
ending a current data collection session in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups.

### Claim 12 (depends on 11)

The computing device of claim 11, wherein the processor is further configured with processor-executable instructions to perform operations such that computing device metrics comprise at least one 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, or advanced RISC machine (ARM) instructions.

### Claim 13 (depends on 11)

The computing device of claim 11, wherein the processor is further configured with processor-executable instructions to perform operations comprising:
determining whether a minimum amount of computing device metric data has been collected in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group,
wherein the processor is further configured to perform operations such that determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups is performed further in response to determining that a minimum amount of computing device metric data has been collected.

### Claim 14 (depends on 11)

The computing device of claim 11, wherein the processor is further configured with processor-executable instructions to perform operations such that the measured quantity is one or more of a mean, standard deviation, median, number of outliers, percentage of outliers, or a coefficient of variation.

### Claim 15 (depends on 10)

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

### Claim 16 (depends on 10)

The computing device of claim 10, further comprising a transceiver, wherein the processor is coupled to the transceiver and further configured with processor-executable instructions to perform operations 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 17 (depends on 16)

The computing device of claim 16, wherein the processor is further configured with processor-executable instructions to perform operations 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 18 (depends on 10)

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

### Claim 19

A computing device, comprising:
means for generating a work group;
means for classifying a new work item for a software application into the generated work group using a 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 set of provisioning rules.

### Claim 20 (depends on 19)

The computing device of claim 19, wherein the means for generating the work group comprises:
means for identifying that a first set of collected computing device metric data belongs to a work group;
means for collecting a second set of computing device metric data;
means for analyzing the first set of collected computing device metric data and the second set of collected computing device metric data to obtain a measured quantity;
means for determining whether the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group based on the measured quantity;
means for determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent software application work groups in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group; and
means for ending a current data collection session in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups.

### Claim 21 (depends on 20)

The computing device of claim 20, further comprising:
means for determining whether a minimum amount of computing device metric data has been collected in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group,
wherein means for determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups comprises means for determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups further in response to determining that a minimum amount of computing device metric data has been collected.

### Claim 22 (depends on 19)

The computing device of claim 19, further comprising:
means for storing performance metrics of classified work items;
means for determining whether the stored performance metrics meet a performance quality threshold; and
means for training the work classification model in response to determining that the stored performance metrics do not meet the performance quality threshold.

### Claim 23 (depends on 19)

The computing device of claim 19, further comprising:
means for storing performance metrics of classified work items;
means for transmitting the stored performance metrics to a remote server; and
means for receiving an updated work classification model from the remote server.

### Claim 24 (depends on 23)

The computing device of claim 23, further comprising:
means for determining whether the stored performance metrics meet a performance quality threshold; and
means for 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 25

A non-transitory processor-readable medium having stored thereon processor-executable instructions configured to cause a processor of a computing device to perform operations comprising:
generating a work group;
classifying a new work item for a software application into the generated work group using a 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 set of provisioning rules.

### Claim 26 (depends on 25)

The non-transitory processor-readable medium of claim 25, wherein the stored processor-executable instructions are further configured to cause the processor of the computing device to perform operations such that generating the work group comprises:
identifying that a first set of collected computing device metric data belongs to a work group;
collecting a second set of computing device metric data;
analyzing the first set of collected computing device metric data and the second set of collected computing device metric data to obtain a measured quantity;
determining whether the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group based on the measured quantity;
determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent software application work groups in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group; and
ending a current data collection session in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups.

### Claim 27 (depends on 26)

The non-transitory processor-readable medium of claim 26, wherein the stored processor-executable instructions are further configured to cause the processor of the computing device to perform operations comprising:
determining whether a minimum amount of computing device metric data has been collected in response to determining that the first set of collected computing device metric data and the second set of collected computing device metric data belong to the same work group,
wherein the stored thereon processor-executable instructions are further configured to cause the processor of the computing device such that determining whether the first set of collected computing device metric data and the second set of collected computing device metric data represent the software application work groups is performed further in response to determining that a minimum amount of computing device metric data has been collected.

### Claim 28 (depends on 25)

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

### Claim 29 (depends on 25)

The non-transitory processor-readable medium of claim 25, wherein the stored processor-executable instructions are further configured to cause the processor of the computing device to perform operations 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 30 (depends on 29)

The non-transitory processor-readable medium of claim 29, wherein the stored processor-executable instructions are further configured to cause the processor of the computing device to perform operations 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.
