# US 2014/0195673 A1 · DYNAMICALLY BALANCING EXECUTION RESOURCES TO MEET A BUDGET AND A QoS of PROJECTS

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

- Number: US 2014/0195673 A1
- Document ID: US20140195673A1
- Status: Published application
- Kind: A1
- Application number: 13/738,346
- Filed: 2013-01-10
- Published: 2014-07-10
- Earliest claimed: 2013-01-10
- Assignees: Hewlett-Packard Development Company, L.P.
- Applicants: Hewlett-Packard Development Company, L.P.
- Inventors: Nigel T. Cook; Paolo Faraboschi; Dejan S. Milojicic
- Web page: https://patentgrep.com/patent/US20140195673A1

## CPC

- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/5025: by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems, methods, and machine-readable and executable instructions are provided for dynamically balancing execution resources to meet a budget and/or a QoS of projects. An example method can include analyzing a submitted program for a project, where the program comprises data to execute the project and a specification for the project, determining a computing resource allocation based upon the submitted data and the specification, and deploying for execution the submitted data to the determined computing resource allocation. The method can include monitoring progress during the execution of the data to determine a probability of project completion satisfying the specification, and dynamically balancing the execution resources to meet the budget and/or the QoS of the project to satisfy the specification.

## Claims

### Claim 1

A computer-implemented method for dynamically balancing execution resources to meet a budget and/or a quality of service (QoS) of projects, comprising:
analyzing a submitted program for a project, wherein the program comprises data to execute the project and a specification for the project;
determining a computing resource allocation based upon the submitted data and the specification;
deploying for execution the submitted data to the determined computing resource allocation;
monitoring progress during the execution of the data to determine a probability of project completion satisfying the specification; and
dynamically balancing the execution resources to meet the budget and/or the QoS of the project to satisfy the specification.

### Claim 2 (depends on 1)

The method of claim 1, comprising executing the previously stated functions as instructed by computer-implemented machine-readable instructions.

### Claim 3 (depends on 1)

The method of claim 1, comprising a user submitting the program.

### Claim 4 (depends on 1)

The method of claim 1, wherein dynamically balancing the execution resources to meet the budget comprises dynamically increasing or decreasing a cost of the project.

### Claim 5 (depends on 1)

The method of claim 1, wherein dynamically balancing the execution resources to meet the QoS comprises dynamically increasing or decreasing the computing resource allocation.

### Claim 6 (depends on 5)

The method of claim 5, wherein dynamically increasing the computing resource allocation comprises scaling out the computing resource allocation.

### Claim 7 (depends on 5)

The method of claim 5, wherein dynamically increasing the computing resource allocation comprises scaling up the computing resource allocation.

### Claim 8

A non-transitory machine-readable medium storing a set of instructions for dynamically balancing execution resources to meet a budget and/or a quality of service (QoS) of projects, wherein the set of instructions is executable by a processor to cause a computer to:
analyze a submitted program for a project, wherein the program comprises data to execute the project, an intended budget, and an intended QoS;
determine a computing resource allocation based upon the submitted data, the intended budget, and the intended QoS;
deploy for execution the submitted data to the determined computing resource allocation;
monitor indicators during the execution of the data to determine a probability of project completion satisfying the intended budget and the intended QoS; and
dynamically balance the execution resources to meet the budget and/or the QoS of the project according to project preferences.

### Claim 9 (depends on 8)

The medium of claim 8, wherein the indicators comprise a number of metrics that measure performance of contributors to the project completion.

### Claim 10 (depends on 8)

The medium of claim 8, wherein the indicators comprise a number of attributes that measure a size of and/or a number of contributors to the project completion.

### Claim 11 (depends on 8)

The medium of claim 8, wherein the indicators comprise a number of markers indicative of execution of functions encoded in the submitted program.

### Claim 12

A computing system for dynamically balancing execution resources to meet a budget and/or a quality of service (QoS) of projects, comprising:
a memory;
a processor resource coupled to the memory, to:
analyze a submitted program for a project in a cloud, wherein the program comprises data to execute the project, an intended budget, and an intended QoS;
determine a computing resource allocation in the cloud based upon the submitted data, the intended budget, and the intended QoS;
deploy for execution in the cloud the submitted data to the determined computing resource allocation;
track performance of the submitted program in the cloud to determine a probability of project completion satisfying the intended budget and the intended QoS; and
take corrective action to dynamically balance the execution resources to meet the budget and/or the QoS of the project.

### Claim 13 (depends on 12)

The system of claim 12, wherein the program is submitted to an engine in the cloud that executes the previously stated functions, including to take corrective action to dynamically balance the execution resources to meet the budget and/or the QoS of the project according to user inputted project preferences.

### Claim 14 (depends on 12)

The system of claim 12, wherein to track the performance of the submitted program comprises to track throughput of the data in a number of virtual machines as a QoS consideration.

### Claim 15 (depends on 12)

The system of claim 12, comprising a number of user interfaces to submit the program for the project and to authorize the corrective action to dynamically balance the execution resources to meet the budget and/or the QoS.
