# US 8,544,017 B1 · Dynamic job processing based on estimated completion time and specified tolerance time

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

- Number: US 8,544,017 B1
- Document ID: US8544017B1
- Status: Granted
- Kind: B1
- Application number: 13/078,753
- Filed: 2011-04-01
- Granted: 2013-09-24
- Earliest claimed: 2001-07-20
- Assignees: Searchlite Advances, LLC
- Applicants: Charles Prael; Adrian Tymes
- Inventors: Charles Prael; Adrian Tymes
- Web page: https://patentgrep.com/patent/US8544017B1

## CPC

- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/5072: {Grid computing}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 2209/5014: Reservation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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.

## Claims

### 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 time 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 less overall processing resources relative to the first job;
determining the second dynamic cluster of processing resources to complete execution of the second job prior to starting execution of the first 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 the predetermined completion time requirement.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
configuring the first and second dynamic cluster of processing resources by transmitting a configuration file to each processing resource, wherein each processing resource dynamically configures into a cluster.

### Claim 3 (depends on 1)

The method of claim 1 wherein said enqueueing includes:
maintaining one or more queues of jobs to be processed;
maintaining processing times for each job in said queue of jobs;
adding jobs to the queue of jobs in response to said processing time and the completion time requirement.

### Claim 4 (depends on 3)

The method of claim 3 further including:
reordering at least one of queues of jobs wherein jobs are enqueued to meet the completion time requirement.

### Claim 5 (depends on 1)

The method of claim 1 wherein said enqueueing includes:
maintaining a plurality of queues of jobs to be processed wherein each queue operates at a different job priority.

### Claim 6 (depends on 1)

The method of claim 1 further including:
receiving a tolerance time for each job to be processed;
wherein said enqueueing is in response to said tolerance time.

### Claim 7

One or more processor readable storage devices having non-volatile 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 time for each processing resource that is currently executing a job;
determining the second dynamic cluster of processing resources to complete execution of the second job prior to starting execution of the first 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;
receiving a second job to be processed by a second dynamic cluster of processing resources, the second job requiring less overall processing resources relative to the first job;
determining the second dynamic cluster of processing resources to complete execution of the second job prior to starting execution of the first job, at least one of the processing resources being 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 the predetermined completion time requirement.

### Claim 8 (depends on 7)

The device of claim 7 wherein the method further comprises:
configuring the first and second dynamic cluster of processing resources by transmitting a configuration file to each processing resource, wherein each processing resource dynamically configures into a cluster.

### Claim 9 (depends on 7)

The device of claim 7 wherein said enqueueing includes:
maintaining one or more queues of jobs to be processed;
maintaining processing times for each job in said queue of jobs;
adding jobs to the queue of jobs in response to said processing time and the completion time requirement.

### Claim 10 (depends on 9)

The device of claim 9 wherein said method further includes:
reordering at least one of said queues of jobs wherein jobs are enqueued to meet the completion time requirement.

### Claim 11 (depends on 7)

The device of claim 7 wherein said enqueueing includes:
maintaining a plurality of queues of jobs to be processed wherein each queue operates at a different job priority.

### Claim 12 (depends on 7)

The device of claim 7 wherein the method further includes:
receiving a tolerance time for each job to be processed;
wherein said enqueueing is in response to said tolerance time.

### Claim 13 (depends on 1)

The method of claim 1, further comprising:
adjusting a duration of the predetermined completion time requirement and the first dynamic cluster of processing resources in accordance with a set of fees.

### Claim 14 (depends on 1)

The method of claim 1, wherein at least one of the first and second job comprises a graphics rendering job.
