IP Library Granted Patent US 11,256,547
Granted Patent B2
US 11,256,547 · App. 15/931,456 · Granted Feb 22, 2022

Efficient allocation of cloud computing resources to job requests

Inventor: Andrea Casotto (Fremont, CA)
Assignee: Altair Engineering, Inc.
G06F9/5038G06F9/4881G06F9/5072G06F9/5077G06F2209/5011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,256,547
App. No.
15/931,456
Granted
Feb 22, 2022
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, that facilitate efficient allocation of computing resources of a cloud computing environment to job requests. Methods include receiving multiple job requests and sorting these job requests into one or more categories that include job requests with a same or similar set of job attributes. Methods include allocating a first number of computing resources of the compute farm to one or more job requests in each category. Methods include determining an allocation rate at which the first number of computing resources are allocated to the one or more job requests in each category. Methods include determining a remaining number of job requests in each category and allocating a second number of computing resources of the compute farm to the remaining number of job requests in each category based on the allocation rate.

Claims (68)

1. A computer implemented method for allocating computing resources in a cloud computing environment, comprising:

receiving a plurality of job requests;

sorting the plurality of job requests into one or more categories that include job requests with a same set of job attributes;

for each category, allocating job requests in the category to the computing resources of a compute farm, wherein the allocating comprises:

allocating a first number of computing resources of the compute farm to one or more job requests in the category;

determining an allocation rate at which the first number of computing resources are allocated to the one or more job requests in the category;

determining a remaining number of job requests in the category;

scaling the remaining number of job requests using the allocation rate to obtain an estimated time within which the remaining number of job requests will be allocated to the first number of computing resources; and

allocating a second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time.

2. The computer implemented method of claim 1 , wherein allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time, comprises:

determining that the estimated time does not exceed a first threshold;

in response to determining that the estimated time does not exceed the first threshold, allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category, wherein the second number of computing resources is the same as the first number of computing resources.

3. The computer implemented method of claim 2 , wherein the first threshold is a time required to acquire and execute a computing resource of the compute farm.

4. The computer implemented method of claim 1 , wherein allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time, includes:

determining that the estimated time exceeds a first threshold;

in response to determining that the estimated time exceeds the first threshold, allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category, wherein the second number of computing resources includes the first number of computing resources and a number of available computing resources of the compute farm.

5. The computer implemented method of claim 1 , wherein the set of job attributes includes one or more of:

memory requirements for the job request;

software license requirements for the job request;

processor requirements for the job request; or

storage requirements for the job request.

6. The computer implemented method of claim 1 , wherein allocating job requests in the category to the computing resources of a compute farm is performed on a repeating time cycle.

7. A system for allocating computing resources in a cloud computing environment, comprising:

one or more memory devices storing instructions; and

one or more data processing apparatus that are configured to interact with the one or more memory devices, and upon execution of the instructions, perform operations including:

receiving a plurality of job requests;

sorting the plurality of job requests into one or more categories that include job requests with a same set of job attributes;

for each category, allocating job requests in the category to the computing resources of a compute farm, wherein the allocating comprises:

allocating a first number of computing resources of the compute farm to one or more job requests in the category;

determining an allocation rate at which the first number of computing resources are allocated to the one or more job requests in the category;

determining a remaining number of job requests in the category;

scaling the remaining number of job requests using the allocation rate to obtain an estimated time within which the remaining number of job requests will be allocated to the first number of computing resources; and

allocating a second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time.

8. The system of claim 7 , wherein allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time, comprises:

determining that the estimated time does not exceed a first threshold;

in response to determining that the estimated time does not exceed the first threshold, allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category, wherein the second number of computing resources is the same as the first number of computing resources.

9. The system of claim 8 , wherein the first threshold is a time required to acquire and execute a computing resource of the compute farm.

10. The system of claim 7 , wherein allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time, includes:

determining that the estimated time exceeds a first threshold;

in response to determining that the estimated time exceeds the first threshold, allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category, wherein the second number of computing resources includes the first number of computing resources and a number of available computing resources of the compute farm.

11. The system of claim 7 , wherein the set of job attributes includes one or more of:

memory requirements for the job request;

software license requirements for the job request;

processor requirements for the job request; or

storage requirements for the job request.

12. The system of claim 7 , wherein allocating job requests in the category to the computing resources of a compute farm is performed on a repeating time cycle.

13. A non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations for allocating computing resources in a cloud computing environment, comprising:

receiving a plurality of job requests;

sorting the plurality of job requests into one or more categories that include job requests with a same set of job attributes;

for each category, allocating job requests in the category to the computing resources of a compute farm, wherein the allocating comprises:

allocating a first number of computing resources of the compute farm to one or more job requests in the category;

determining an allocation rate at which the first number of computing resources are allocated to the one or more job requests in the category;

determining a remaining number of job requests in the category;

scaling the remaining number of job requests using the allocation rate to obtain an estimated time within which the remaining number of job requests will be allocated to the first number of computing resources; and

allocating a second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time.

14. The non-transitory computer readable medium of claim 13 , wherein allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time, comprises:

determining that the estimated time does not exceed a first threshold;

in response to determining that the estimated time does not exceed the first threshold, allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category, wherein the second number of computing resources is the same as the first number of computing resources.

15. The non-transitory computer readable medium of claim 13 , wherein allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category based on the estimated time, includes:

determining that the estimated time exceeds a first threshold;

in response to determining that the estimated time exceeds the first threshold, allocating the second number of computing resources of the compute farm to the remaining number of job requests in the category, wherein the second number of computing resources includes the first number of computing resources and a number of available computing resources of the compute farm.

16. The non-transitory computer readable medium of claim 15 , wherein the first threshold is a time required to acquire and execute a computing resource of the compute farm.

17. The non-transitory computer readable medium of claim 13 , wherein the set of job attributes includes one or more of:

memory requirements for the job request;

software license requirements for the job request;

processor requirements for the job request; or

storage requirements for the job request.

18. The non-transitory computer readable medium of claim 13 , wherein allocating job requests in the category to the computing resources of a compute farm is performed on a repeating time cycle.

Assignments (2)
MERGER Recorded Feb 4, 2026
From: ALTAIR ENGINEERING INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 074348/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2020
From: CASOTTO, ANDREA
To: ALTAIR ENGINEERING, INC.
Reel/Frame 053222/0083 →
Continuity (2)
Provisional Application 62855476 · May 31, 2019
Related Publication 20200379813A1 · Dec 3, 2020
Cited By (2)
US 12,242,250 US 12,461,777