Dynamic job processing based on estimated completion time and specified tolerance time
First Claim
1. A computer-implemented method, comprising:
- receiving a first job to be processed by a first dynamic cluster of processing resources, the first job having a predetermined completion time requirement;
receiving processing information from a pool of processing resources, said processing information including at least completion times for each processing resource that is currently executing a job;
determining the first dynamic cluster of processing resources from the pool of processing resources to execute the first job in the future in response to the predetermined completion time requirement and the completion times of the processing resources that are currently executing a job;
receiving a second job to be processed by a second dynamic cluster of processing resources, the second job requiring different overall processing resources relative to the first job;
determining the second dynamic cluster of processing resources to complete execution of the second job, the second dynamic cluster of processing resources differing in composition from the first dynamic cluster of processing resources while at least one of the processing resources of the second dynamic cluster of processing resources is also reserved for the first job in the first dynamic cluster of processing resources; and
enqueueing the first job to complete execution prior to starting execution of the second job, the second job completing execution prior to a predetermined completion time requirement for the second job.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention provides a system and method for managing clusters of parallel processors for use by groups and individuals requiring supercomputer level computational power. A Beowulf cluster provides supercomputer level processing power. Unlike a traditional Beowulf cluster; however, cluster size in not singular or static. As jobs are received from users/customers, a Resource Management System (RMS) dynamically configures and reconfigures the available nodes in the system into clusters of the appropriate sizes to process the jobs. Depending on the overall size of the system, many users may have simultaneous access to supercomputer level computational processing. Users are preferably billed based on the time for completion with faster times demanding higher fees.
-
Citations
17 Claims
-
1. A computer-implemented method, comprising:
-
receiving a first job to be processed by a first dynamic cluster of processing resources, the first job having a predetermined completion time requirement; receiving processing information from a pool of processing resources, said processing information including at least completion times for each processing resource that is currently executing a job; determining the first dynamic cluster of processing resources from the pool of processing resources to execute the first job in the future in response to the predetermined completion time requirement and the completion times of the processing resources that are currently executing a job; receiving a second job to be processed by a second dynamic cluster of processing resources, the second job requiring different overall processing resources relative to the first job; determining the second dynamic cluster of processing resources to complete execution of the second job, the second dynamic cluster of processing resources differing in composition from the first dynamic cluster of processing resources while at least one of the processing resources of the second dynamic cluster of processing resources is also reserved for the first job in the first dynamic cluster of processing resources; and enqueueing the first job to complete execution prior to starting execution of the second job, the second job completing execution prior to a predetermined completion time requirement for the second job. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. One or more non-transitory processor readable storage devices having non-volatile and non-transitory processor readable code embodied on said storage devices, said processor readable code for programming one or more processors to perform a method comprising:
-
receiving a first job to be processed by a first dynamic cluster of processing resources, the first job having a predetermined completion time requirement; receiving processing information from a pool of processing resources, said processing information including at least completion times for each processing resource that is currently executing a job; determining the first dynamic cluster of processing resources from the pool of processing resources to execute the first job in the future in response to the predetermined completion time requirement and the completion times of the processing resources that are currently executing a job; receiving a second job to be processed by a second dynamic cluster of processing resources, the second job requiring different overall processing resources relative to the first job; determining the second dynamic cluster of processing resources to complete execution of the second job, the second dynamic cluster of processing resources differing in composition from the first dynamic cluster of processing resources while at least one of the processing resources of the second dynamic cluster of processing resources is also reserved for the first job in the first dynamic cluster of processing resources; and enqueueing the first job to complete execution prior to starting execution of the second job, the second job completing execution prior to a predetermined completion time requirement for the second job. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A hardware device, with a resource management system, the hardware device comprising:
-
a processor; and a memory, storing; a queue to receive a first job to be processed by a first dynamic cluster of processing resources, the first job having a predetermined completion time requirement; a resource manager to receive processing information from a pool of processing resources, said processing information including at least completion times for each processing resource that is currently executing a job, the resource manager to determine the first dynamic cluster of processing resources from the pool of processing resources to execute the first job in the future in response to the predetermined completion time requirement and the completion times of the processing resources that are currently executing a job, wherein the queue receives a second job to be processed by a second dynamic cluster of processing resources, the second job requiring different overall processing resources relative to the first job, wherein the resource manager determines the second dynamic cluster of processing resources to complete execution of the second job, the second dynamic cluster of processing resources differing in composition from the first dynamic cluster of processing resources while at least one of the processing resources of the second dynamic cluster of processing resources is also reserved for the first job in the first dynamic cluster of processing resources; and a resource scheduler to queue the first job to complete execution prior to starting execution of the second job, the second job completing execution prior to a predetermined completion time requirement for the second job.
-
Specification