Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects

US9465663B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9465663-B2
Application numberUS-26312608-A
CountryUS
Kind codeB2
Filing dateOct 31, 2008
Priority dateOct 31, 2008
Publication dateOct 11, 2016
Grant dateOct 11, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments provide a system for allocating resources in a compute farm. During operation, the system can receive resource-requirement information for a project. Next, the system can receive a request to execute a new job in the compute farm. In response to determining that no job slots are available for executing the new job, and that the project associated with the new job has not used up its allocated job slots, the system may execute the new job by suspending or re-queuing a job that is currently executing, and allocating the freed-up job slot to the new job. If the system receives a resource-intensive job, the system may create dummy jobs, and schedule the dummy jobs on the same computer system as the resource-intensive job to prevent the queuing system from scheduling multiple resource-intensive jobs on the same computer system.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for allocating resources in a compute farm, wherein the compute farm's resources are represented using a set of job slots, and wherein the set of job slots are managed by a queuing system, the method comprising: a priority-based allocation (PBA) layer receiving information about a first job that is pending in the queuing system, wherein the information indicates that the first job is associated with a first project, and wherein the PBA layer is separate from the queuing system; in response to the PBA layer determining that the number of job slots in the compute farm that are allocated to jobs associated with the first project is less than the number of job slots allocated to the first project, and that no free job slots are available for executing the first job, the PBA layer identifying a low-priority job slot that is currently executing a second job associated with a second project, wherein the number of job slots in the compute farm that are executing jobs associated with the second project is greater than the number of job slots allocated to the second project, the PBA layer providing a scheduling instruction to the queuing system via an interface of the queuing system, wherein the scheduling instruction instructs the queuing system to schedule the first job in the low-priority job slot, and the PBA layer providing a de-allocation instruction to the queuing system via the interface of the queuing system, wherein the de-allocation instruction instructs the queuing system to de-allocate the executing second job. 2. The method of claim 1 , wherein the de-allocation instruction instructs the queuing system to stop and re-queue the executing second job. 3. The method of claim 1 , wherein the de-allocation instruction instructs the queuing system to suspend the executing second job. 4. A non-transitory computer-readable storage medium storing instructions for a priority-based allocation (PBA) layer that when executed by a computer cause the computer to perform a method for allocating resources in a compute farm, wherein the compute farm's resources are represented using a set of job slots, and wherein the set of job slots are managed by a queuing system, the method comprising: the PBA layer receiving information about a first job that is pending in the queuing system, wherein the information indicates that the first job is associated with a first project, and wherein the PBA layer is separate from the queuing system; in response to the PBA layer determining that the number of job slots in the compute farm that are allocated to jobs associated with the first project is less than the number of job slots allocated to the first project, and that no free job slots are available for executing the first job, the PBA layer identifying a low-priority job slot that is currently executing a second job associated with a second project, wherein the number of job slots in the compute farm that are executing jobs associated with the second project is greater than the number of job slots allocated to the second project, the PBA layer providing a scheduling instruction to the queuing system via an interface of the queuing system, wherein the scheduling instruction instructs the queuing system to schedule the first job in the low-priority job slot, and the PBA layer providing a de-allocation instruction to the queuing system via the interface of the queuing system, wherein the de-allocation instruction instructs the queuing system to de-allocate the executing second job. 5. The computer-readable storage medium of claim 4 , wherein the de-allocation instruction instructs the queuing system to stop and re-queue the executing second job. 6. The computer-readable storage medium of claim 4 , wherein the de-allocation instruction instructs the queuing system to suspend the executing second job. 7. A computer system for allocating resources in a compute farm, wherein the compute farm's resources are represented using a set of job slots, and wherein the set of job slots are managed by a queuing system, the computer system comprising: a processor; and a storage medium storing instructions for a priority-based allocation (PBA) layer that, when executed by the processor, cause the computer system to perform a method, comprising: the PBA layer receiving information about a first job that is pending in the queuing system, wherein the information indicates that the first job is associated with a first project, and wherein the PBA layer is separate from the queuing system; in response to the PBA layer determining that the number of job slots in the compute farm that are allocated to jobs associated with the first project is less than the number of job slots allocated to the first project, and that no free job slots are available for executing the first job, the PBA layer identifying a low-priority job slot that is currently executing a second job associated with a second project, wherein the number of job slots in the compute farm that are executing jobs associated with the second project is greater than the number of job slots allocated to the second project, the PBA layer providing a scheduling instruction to the queuing system via an interface of the queuing system, wherein the scheduling instruction instructs the queuing system to schedule the first job in the low-priority job slot, and the PBA layer providing a de-allocation instruction to the queuing system via the interface of the queuing system, wherein the de-allocation instruction instructs the queuing system to de-allocate the executing second job. 8. The computer system of claim 7 , wherein the de-allocation instruction instructs the queuing system to stop and re-queue the executing second job. 9. The computer system of claim 7 , wherein the de-allocation instruction instructs the queuing system to suspend the executing second job.

Assignees

Inventors

Classifications

  • Resource availability · CPC title

  • the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • to service a request · CPC title

  • G06F9/485Primary

    Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence) · CPC title

  • Priority · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9465663B2 cover?
Some embodiments provide a system for allocating resources in a compute farm. During operation, the system can receive resource-requirement information for a project. Next, the system can receive a request to execute a new job in the compute farm. In response to determining that no job slots are available for executing the new job, and that the project associated with the new job has not used u…
Who is the assignee on this patent?
Mincarelli John R, Synopsys Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/485. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 11 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).