# US 11,113,049 B2 · Deploying applications in a computing environment

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

- Number: US 11,113,049 B2
- Document ID: US11113049B2
- Status: Granted
- Kind: B2
- Application number: 16/285,091
- Filed: 2019-02-25
- Published: 2020-08-27
- Granted: 2021-09-07
- Earliest claimed: 2019-02-25
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Subin Modeel
- Web page: https://patentgrep.com/patent/US11113049B2

## CPC

- G06F 8/77: Software metrics
- G06F 8/443: {Optimisation}
- G06F 8/447: {Target code generation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Deploying applications in a computing environment. A method of the disclosure includes determining that a first computing device has been added to a computing environment comprising a plurality of computing devices. The first computing device includes a first component is not included in the plurality of computing devices. The method also includes determining, by a processing device, whether a performance of a first application may be improved in view of the first computing device and a plurality of benchmark applications. The first application is within the computing environment. The method further includes recompiling the first application for execution on the first computing device, in response to determining that the performance of the first application may be improved.

## Claims

### Claim 1

A method, comprising:
determining, by a processing device, that a first computing device has been added to a computing environment, the computing environment comprising a plurality of computing devices executing a plurality of benchmark applications and a first application, the plurality of benchmark applications to execute one or more tasks performed by the first application, wherein the first computing device comprises a first component that is not included in the plurality of computing devices;
in response to determining that the first computing device has been added to the computing environment recompiling the plurality of benchmark applications to execute on the first computing device in view of the first component;
determining, by the processing device, whether a functionality of the first application may be improved in view of the plurality of benchmark applications as executed on the first computing device;
in response to determining that the functionality of the first application may be improved, recompiling the first application for execution on the first computing device; and
in response to determining that the functionality of the first application may not be improved, refraining from recompiling the first application for execution on the first computing device.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining whether the functionality of the first application may be improved comprises:
executing the plurality of benchmark applications on the first computing device; and
evaluating one or more functionality criteria for the plurality of benchmark applications.

### Claim 3 (depends on 1)

The method of claim 1, wherein recompiling the plurality of benchmark applications comprises:
recompiling the plurality of benchmark applications using one or more compiler flags in view of the first computing device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first application and at least one of the plurality of benchmark applications perform a first type of computational operation.

### Claim 5 (depends on 1)

The method of claim 1, wherein recompiling the first application comprises:
automatically recompiling the first application.

### Claim 6 (depends on 1)

The method of claim 1, wherein recompiling the first application comprises:
providing an indication that the functionality of the first application may be improved to a computing device;
receiving user input from the computing device; and
recompiling the first application based on user input.

### Claim 7 (depends on 1)

The method of claim 1, wherein recompiling the first application comprises:
executing the first application on the first computing device.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first component comprises a one or more of:
new type of processing device;
a new type of storage device;
a new type of network communication device;
a new type of operating system (OS); or
a new software library.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first computing device comprises one or more of:
a virtual machine;
a container; or
a physical device.

### Claim 10

An apparatus, comprising:
a memory; and
a processing device, operatively coupled to the memory, to:
determine that a first computing device has been added to a computing environment, the computing environment comprising a plurality of computing devices executing a plurality of benchmark applications and a first application, the plurality of benchmark applications to execute one or more tasks performed by the first application, wherein the first computing device comprises a first component that is not included in the plurality of computing devices;
in response to determining that the first computing device has been added to the computing environment, recompile the plurality of benchmark applications to execute on the first computing device in view of the first component;
determine whether a functionality of the first application may be improved in view of the plurality of benchmark applications as executed on the first computing device;
in response to determining that the functionality of the first application may be improved, recompile the first application for execution on the first computing device; and
in response to determining that the functionality of the first application may not be improved, refrain from recompiling the first application for execution on the first computing device.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein to determine whether the functionality of the first application may be improved the processing device is further configured to:
executing the plurality of benchmark applications on the first computing device; and
evaluating one or more functionality criteria for the plurality of benchmark applications.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein to recompile the plurality of benchmark applications the processing device is further configured to:
recompile the plurality of benchmark applications using one or more compiler flags in view of the first computing device.

### Claim 13 (depends on 10)

The apparatus of claim 10, wherein the first application and at least one of the plurality of benchmark applications perform a first type of computational operation.

### Claim 14 (depends on 10)

The apparatus of claim 10, wherein to recompile the first application the processing device is further configured to:
automatically recompile the first application.

### Claim 15 (depends on 10)

The apparatus of claim 10, wherein to recompile the first application the processing device is further configured to:
provide an indication that the functionality of the first application may be improved to a computing device;
receive user input from the computing device; and
recompile the first application based on user input.

### Claim 16 (depends on 10)

The apparatus of claim 10, wherein to recompile the first application the processing device is further configured to:
execute the first application on the first computing device.

### Claim 17 (depends on 10)

The apparatus of claim 10, wherein the first component comprises a one or more of:
new type of processing device;
a new type of storage device;
a new type of network communication device;
a new type of operating system (OS); or
a new software library.

### Claim 18

A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:
determine that a first computing device has been added to a computing environment, wherein:
the computing environment comprises a plurality of computing devices executing a plurality of benchmark applications and a first application, the plurality of benchmark applications to execute one or more tasks performed by the first application; and
the first computing device comprises a first component that is not included in the plurality of computing devices;
in response to determining that the first computing device has been added to the computing environment recompile the plurality of benchmark applications to execute on the first computing device in view of the first component;
determine whether a functionality of the first application may be improved in view of the plurality of benchmark applications as executed on the first computing device;
in response to determining that the functionality of the first application may be improved, recompile the first application for execution on the first computing device; and
in response to determining that the functionality of the first application may not be improved, refrain from recompiling the first application for execution on the first computing device.
