Systems and methods to allocate application tasks to a pool of processing machines
First Claim
1. A processor-implemented method, comprising:
- receiving, via processor, from a requestor a scope request including an indication of a number of compute units to be reserved for a scope, the compute units representing a quantifiable parameter associated with processing machines that define an amount of processing power;
receiving, via the processor, an application request associated with the scope, wherein the scope request includes an indication of a subscription period;
determining, via the processor, a requested number of compute units for the application request;
allocating, via the processor, the requested number of compute units and an additional number of compute units for the application request, wherein allocating comprises allocating at least one of any available processing machines from a pool of processing machines having the requested number of compute units and the additional number of compute units to the application request, and wherein other processing machines from the pool are allocated to other application requests associated with other scopes;
dividing, via the processor, the application request into a plurality of tasks;
associating, via the processor, a deadline with each task;
assigning, via the processor, each task to one of the allocated processing machines;
if a processing machine does not complete the task before the deadline, reassigning, via the processor, the task to another allocated processing machine; and
allocating, via the processor, a cost to the requestor, wherein the allocated cost is based at least in part on a number of compute units reserved for the scope and a cost-per-compute unit computed by dividing an overall cost associated with the entire pool of processing machines by a total number of compute units representing the processing power associated with all of the processing machines.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided to allocate application tasks to a pool of processing machines. According to some embodiments, a requestor generates a scope request including an indication of a number of compute units to be reserved. The requestor also provides an application request associated with the scope. A subset of available processing machines may then be allocated to the scope, and the application request is divided into a number of different tasks. Each task may then be assigned to a processing machine that has been allocated to the application request. According to some embodiments, each task is associated with a deadline. Moreover, according to some embodiments an overall cost is determined and then allocated to the requestor based on the number of compute units that were reserved for the scope.
28 Citations
23 Claims
-
1. A processor-implemented method, comprising:
-
receiving, via processor, from a requestor a scope request including an indication of a number of compute units to be reserved for a scope, the compute units representing a quantifiable parameter associated with processing machines that define an amount of processing power; receiving, via the processor, an application request associated with the scope, wherein the scope request includes an indication of a subscription period; determining, via the processor, a requested number of compute units for the application request; allocating, via the processor, the requested number of compute units and an additional number of compute units for the application request, wherein allocating comprises allocating at least one of any available processing machines from a pool of processing machines having the requested number of compute units and the additional number of compute units to the application request, and wherein other processing machines from the pool are allocated to other application requests associated with other scopes; dividing, via the processor, the application request into a plurality of tasks; associating, via the processor, a deadline with each task; assigning, via the processor, each task to one of the allocated processing machines; if a processing machine does not complete the task before the deadline, reassigning, via the processor, the task to another allocated processing machine; and allocating, via the processor, a cost to the requestor, wherein the allocated cost is based at least in part on a number of compute units reserved for the scope and a cost-per-compute unit computed by dividing an overall cost associated with the entire pool of processing machines by a total number of compute units representing the processing power associated with all of the processing machines. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable medium storing instructions that when executed by a processor performs a method, said method comprising:
-
receiving from a requestor a scope request including an indication of a number of compute units to be reserved for the scope, the compute units representing a quantifiable parameter associated with processing machines that define an amount of .processing power; receiving an application request associated with the scope, wherein the scope request includes an indication of a subscription period; determining a requested number of compute units for the application request; allocating, via the processor, the requested number of compute units and an additional number of compute units for the application request, wherein allocating comprises allocating at least one of any available processing machines from a pool of processing machines having the requested number of compute units and the additional number of compute units to the application request, and wherein other processing machines from the pool are allocated to other application requests associated with other scopes; dividing, via the processor, the application request into a plurality of tasks; associating, via the processor, a deadline with each task; assigning, via the processor, each task to one of the allocated processing machines; if a processing machine does not complete the task before the deadline, reassigning, via the processor, the task to another allocated processing machine; and allocating a cost to the requestor, wherein the allocated cost is based at least in part on a number of compute units reserved for the scope and a cost-per-compute unit computed by dividing an overall cost associated with the entire pool of processing machines by a total number of compute units representing processing power associated with all of the processing machines. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A scheduling/distribution manager, comprising:
-
a processor; and a storage device in communication with said processor and storing instructions that when executed by said processor, causes the processor to; receive from a requestor a scope request including an indication of a number of compute units to be reserved for a scope, the compute units representing a quantifiable parameter associated with processing machines that define an amount of processing power for the processing machines based on a number of processors, processor speed, an amount of memory, and hard disk drive storage; receive an application request associated with the scope, wherein the scope request includes an indication of a subscription period; determine a requested number of compute units for the application request; allocate the requested number of compute units and an additional number of compute units for the application request, wherein allocating comprises allocating at least one of any available processing machines from a pool of processing machines having the requested number of compute units and the additional number of compute units to the application request, and wherein other processing machines from the pool are allocated to other application requests associated with other scopes; divide the application request into a plurality of tasks; associate a deadline with each task; assign each task to one of the allocated processing machines; if a processing machine does not complete the task before the deadline, reassign the task to another allocated processing machine; and allocate a cost to the requestor, wherein the allocated cost is based at least in part on a number of compute units reserved for the scope and a cost-per-compute unit computed by dividing an overall cost associated with the entire pool of processing machines by a total number of compute units representing the processing power associated with all of the processing machines.
-
-
23. A system, comprising:
-
a processing machine pool; and a scheduling/distribution manager, comprising; a processor; and a storage device in communication with said processor and storing instructions when executed by said processor, causes the processor to; receive from a requestor a scope request including an indication of a number of compute units reserved for a scope, the compute units representing a quantifiable parameter associated with processing machines that define an amount of processing power; receive an application request associated with the scope, wherein the scope request includes an indication of a subscription period; determine a requested number of compute units for the application request; allocate the requested number of compute units and an additional number of compute units for the application request, wherein allocating comprises allocating at least one of any available processing machines from a pool of processing machines having the requested number of compute units and the additional number of compute units to the application request, and wherein other processing machines from the pool are allocated to other application requests associated with other scopes; divide the application request into a plurality of tasks; associate a deadline with each task; assign each task to one of the allocated processing machines; if a processing machine does not complete the task before the deadline, reassign the task to another allocated processing machine; and allocate a cost to the requestor, wherein the allocated cost is based at least in part on a number of compute units reserved for the scope and a cost-per-compute unit computed by dividing an overall cost associated with the entire pool of processing machines by a total number of compute units representing the processing power associated with all of the processing machines.
-
Specification