# US 8,543,359 B2 · Methods, apparatus and articles of manufacture to characterize applications

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

- Number: US 8,543,359 B2
- Document ID: US8543359B2
- Status: Granted
- Kind: B2
- Application number: 12/711,762
- Filed: 2010-02-24
- Published: 2010-06-17
- Granted: 2013-09-24
- Earliest claimed: 2005-03-09
- Assignees: Hewlett-Packard Development Company, L.P.
- Applicants: Bruno Abrahao; Alex X. Zhang
- Inventors: Bruno Abrahao; Alex X. Zhang
- Web page: https://patentgrep.com/patent/US8543359B2

## CPC

- G06F 11/3414: {Workload generation, e.g. scripts, playback}
- G06F 11/3447: {Performance evaluation by modeling}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Example methods, apparatus and articles of manufacture to characterize applications are disclosed. A disclosed example method includes collecting resource utilization trace data from the two or more applications simultaneously running on one or more computational devices, determining an intrinsic dimensionality of the collected trace data, the intrinsic dimensionality representing a number of predominate features that substantially characterize the trace data, and characterizing each application's workload based on the determined intrinsic dimensionality.

## Claims

### Claim 1

A method to characterize two or more applications, the method comprising:
collecting resource utilization trace data from the two or more applications simultaneously running on one or more computational devices;
determining an intrinsic dimensionality of the collected trace data, the intrinsic dimensionality representing a number of predominant features that substantially characterize the collected trace data;
characterizing each application's workload based on the determined intrinsic dimensionality, wherein each application's workload comprises CPU utilization, memory usage, and device input/output usage;
detrending the resource utilization trace data for one of the two or more applications to remove at least one of a plurality of characteristics of the corresponding application's workload; and
constructing a trace for the one of the two or more applications based on remaining characteristics of the application's workload.

### Claim 2 (depends on 1)

A method as defined in claim 1, further comprising applying principal component analysis to the trace data to determine the predominant features that characterize each application's workload.

### Claim 3 (depends on 2)

A method as defined in claim 2, further comprising performing dimensionality analysis on the trace data to determine which of the predominant features are to be determined for the applications.

### Claim 4 (depends on 1)

A method as defined in claim 1, further comprising planning capacity usage of the one or more computational devices using the characterization of each application's workload.

### Claim 5 (depends on 1)

A method as defined in claim 1, further comprising allocating the two or more applications to the one or more computational devices using the characterization of each application's workload.

### Claim 6 (depends on 1)

A method as defined in claim 1, wherein the resource utilization trace data comprises at least one of a memory utilization, a disk usage, a network bandwidth usage or a device input/output usage.

### Claim 7 (depends on 1)

A method as defined in claim 1, further comprising generating a synthetic workload to characterize a first application's workload.

### Claim 8 (depends on 1)

A method as defined in claim 1, wherein the predominant features comprise at least one of spikiness, noisiness, or periodicity.

### Claim 9 (depends on 7)

A method as defined in claim 7, wherein generating the synthetic workload comprises at least one of amplifying or suppressing a feature of the first application's workload.

### Claim 10

An apparatus to characterize two or more applications, the apparatus comprising:
a memory to store collected resource utilization trace data from the two or more applications simultaneously running on one or more computational devices; and
a processor to determine an intrinsic dimensionality of the collected resource utilization trace data, the intrinsic dimensionality representing a number of predominant features that substantially characterize the collected resource utilization trace data, the processor to determine, for each application's workload, a value corresponding to an extent a first one of the predominant features is present in that application's workload based on the determined intrinsic dimensionality, and to compare the value to a threshold to characterize each application's workload, wherein each application's workload comprises CPU utilization, memory usage, and device input/output usage.

### Claim 11 (depends on 10)

An apparatus as defined in claim 10, wherein the processor is to apply principal component analysis to the trace data to determine the predominant features that characterize each application's workload.

### Claim 12 (depends on 11)

An apparatus as defined in claim 11, wherein the processor is to perform dimensionality analysis on the trace data to determine which of the one or more predominant features are to be determined for the applications.

### Claim 13 (depends on 10)

An apparatus as defined in claim 10, wherein the processor is to plan capacity usage of the one or more computational devices using the characterization of each application's workload.

### Claim 14 (depends on 10)

An apparatus as defined in claim 10, wherein the processor is to allocate the two or more applications to the one or more computational devices using the characterization of each application's workload.

### Claim 15 (depends on 10)

An apparatus as defined in claim 10, wherein the resource utilization trace data comprises at least one of a memory utilization, a disk usage, a network bandwidth usage or a device input/output usage.

### Claim 16 (depends on 10)

An apparatus as defined in claim 10, wherein the processor is to generate a synthetic workload to characterize a first application's workload.

### Claim 17

A tangible machine readable storage device, excluding propagating signals, comprising machine-accessible instructions that, when executed, cause a machine to at least:
collect resource utilization trace data from two or more applications simultaneously running on one or more computational devices;
determine an intrinsic dimensionality of the collected resource utilization trace data, the intrinsic dimensionality representing a number of predominant features that substantially characterize the collected resource utilization trace data; and
determine, for a workload of at least one of the applications, a value corresponding to an extent at least one of the predominant features is present in that workload based on the determined intrinsic dimensionality; and
compare the value to a threshold to characterize the workload, wherein the workload comprises CPU utilization, memory usage, and device input/output usage.

### Claim 18 (depends on 17)

A storage device as defined in claim 17, wherein the machine-accessible instructions, when executed, cause the machine to apply principal component analysis to the trace data to determine the predominant features that characterize each application's workload.

### Claim 19 (depends on 17)

A storage device as defined in claim 17, wherein the machine-accessible instructions, when executed, cause the machine to perform dimensionality analysis on the trace data to determine which of the predominant features are to be determined for the applications.

### Claim 20 (depends on 17)

A storage device as defined in claim 17, wherein the machine-accessible instructions, when executed, cause the machine to plan capacity usage for the one or more computational devices using the characterization of each application's workload.

### Claim 21 (depends on 17)

A storage device as defined in claim 17, wherein the machine-accessible instructions, when executed, cause the machine to allocate the two or more applications to the one or more computational devices using the characterization of each application's workload.

### Claim 22 (depends on 17)

A storage device as defined in claim 17, wherein the machine-accessible instructions, when executed, cause the machine to generate a synthetic workload to characterize a first application's workload.
