9021490

Optimizing Allocation of Computer Resources by Tracking Job Status and Resource Availability Profiles

PublishedApril 28, 2015
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
19 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for maximizing use of shared computing resources in a computing system, the method comprising: receiving a plurality of job requests; storing said job requests in a queue; determining, for each job request, a resource consumption profile including a set of first values, each first value corresponding to a different resource and representing a required amount of that resource for executing the job request; maintaining a resource availability profile for said computing resources as the system runs, said resource availability profile including a set of second values, each second value corresponding to a different resource and representing an un-used amount of that resource; assigning a status for each job request, said status comprising at least one of: input, running, waiting, and finished; wherein the input status applies to job requests in the queue, the running status applies to job requests being currently executed, the waiting status applies to job requests that have been dispatched but are suspended from execution, the finished status applies to job requests whose execution is finished; dynamically and continuously reordering the job requests in the queue as the execution runs based on the first values and the second values, the reordering including suspending one or more job requests which are presently running by placing them in the waiting status, and/or transitioning one or more job requests from the waiting status to the running status for selecting a mix of job requests which when dispatched for execution minimize the second values to a lowest possible, thus maximizing use of the computing resources in the computing system; wherein each of the jobs in the running status can make changes to its resource consumption profile to signal the comparison of a new resource availability profile to trigger the reordering for a new optimal allocation of computer resources.

2

2. The method of claim 1 , wherein dynamically reordering comprises dispatching a particular job request for execution when the first values associated with the particular job request are lower than or equal to the corresponding second values of the resource availability profile, irrespective of an order of the job request in the queue.

3

3. The method of claim 1 , wherein dynamically reordering comprises advancing an order associated with a particular job request in the queue when the first values associated with the particular job request are lower than or equal to the corresponding second values of the resource availability profile.

4

4. The method of claim 1 , wherein dynamically reordering comprises retarding an order associated with a particular job request in the queue when one or more of the first values associated with the particular job request are higher than the corresponding second values of the resource availability profile.

5

5. The method of claim 1 , further comprising, when the status of a particular job request changes from input to running, decrementing the second values of the resource availability profile by the first values associated with the particular job request.

6

6. The method of claim 1 , further comprising, when the status of a particular job request changes from running to finished, incrementing the second values of the resource availability profile by the first values associated with the particular job request.

7

7. The method of claim 1 , wherein the computing resources include at least two of: memory, bus bandwidth, input/output bandwidth, and processor time.

8

8. The method of claim 1 , wherein dynamically reordering comprises applying heuristic rules to the first values and the second values as the system is running to determine a re-ordering arrangement that maximises resource consumption.

9

9. The method of claim 1 , further comprising dispatching a plurality of job requests for execution, wherein sums of the first values associated with each job request are lower than or equal to the corresponding second values of the resource availability profile.

10

10. A non-transitory memory having recorded thereon computer readable instructions for implementing the method of claim 1 .

11

11. A computing system comprising a plurality of shared computing resources, said system comprising: a memory comprising an input queue for storing a plurality of job requests; a processor for executing said job requests; a job scheduler for allocating computing resources to the job requests; a resource allocation optimizer adapted to: determine, for each job request, a resource consumption profile including a set of first values, each first value corresponding to a different resource and representing a required amount of that resource for executing the job request; maintain a resource availability profile for said computing resources, said resource availability profile including a set of second values, each second value corresponding to a different resource and representing an un-used amount of that resource; assigning a status for each job request, said status comprising at least one of: input, running, waiting, and finished; wherein the input status applies to job requests in the queue, the running status applies to job requests being currently executed, the waiting status applies to job requests that have been dispatched but are suspended from execution, the finished status applies to job requests whose execution is finished; and continuously and dynamically reorder the job requests in the queue based on the first values and the second values including suspending one or more job requests which are presently running by placing them in the waiting status, and/or transitioning one or more job requests from the waiting status to the running status for selecting a mix of job requests which when dispatched for execution minimize the second values to a lowest possible, for maximizing use of the computing resources in the computing system, wherein each of the jobs in the running status can make changes to its resource consumption profile to signal the comparison of a new resource availability profile to trigger the reordering for a new optimal allocation of computer resources.

12

12. The computing system of claim 11 , wherein the system dispatches a particular job request for execution when the first values associated with the particular job request are lower than or equal to the corresponding second values of the resource availability profile, irrespective of an order of the job request in the queue.

13

13. The computing system of claim 11 , wherein the system advances an order associated with a particular job request in the queue when the first values associated with the particular job request are lower than or equal to the corresponding second values of the resource availability profile.

14

14. The computing system of claim 11 , wherein the system retards an order associated with a particular job request in the queue when one or more of the first values associated with the particular job request are higher than the corresponding second values of the resource availability profile.

15

15. The computing system of claim 11 , wherein, when the status of a particular job request changes from input to running, the system decrements the second values of the resource availability profile by the first values associated with the particular job request.

16

16. The computing system of claim 11 , wherein when the status of a particular job request changes from running to finished, the system increments the second values of the resource availability profile by the first values associated with the particular job request.

17

17. The computing system of claim 11 , wherein the computing resources include at least two of: memory, bus bandwidth, input/output bandwidth, and processor time.

18

18. The computing system of claim 11 , wherein the system applies heuristic rules to the first values and the second values as the system is running to determine a re-ordering arrangement that maximises resource consumption.

19

19. The computing system of claim 11 , wherein the system dispatches a plurality of job requests for execution, wherein sums of the first values associated with each job request are lower than or equal to the corresponding second values of the resource availability profile.

Patent Metadata

Filing Date

Unknown

Publication Date

April 28, 2015

Inventors

Benoît Marchand

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “OPTIMIZING ALLOCATION OF COMPUTER RESOURCES BY TRACKING JOB STATUS AND RESOURCE AVAILABILITY PROFILES” (9021490). https://patentable.app/patents/9021490

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.