Compute Farm Resource Allocation via Priority-Based Job Slot Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional queuing systems in compute farms face challenges in efficiently allocating resources, leading to reduced utilization, manual intervention, and potential impact on other projects, as they do not adequately address dynamic resource needs and prioritize jobs effectively across multiple days or weeks.

Innovation Solution

A system that dynamically allocates job slots based on project requirements, uses a multi-week rolling schedule, manipulates job priorities, and employs dummy jobs to prevent resource-intensive jobs from being scheduled on the same computer system, ensuring efficient resource utilization and minimizing manual intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a system administrator dedicates a set of computer systems in the compute farm for a project to meet a milestone, then the project can ensure resource availability, but resource utilization is reduced if the project does not use all dedicated resources

Engineering Contradiction:
Improveresource availability for projectVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation where the system administrator can flexibly adjust resource dedication based on project needs. The system allows resources to be dedicated to projects when needed and released when not needed, transforming static dedicated resources into dynamic allocable resources. This resolves the contradiction by making resource availability reliable when required while maintaining high utilization through flexible reassignment.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of resource allocation from fixed/dedicated to variable/dynamic. By allowing the allocation parameters to change based on project requirements and utilization patterns, the system can guarantee resources when needed while preventing waste when resources are underutilized, thus resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the system administrator manually reconfigures the queuing system to dedicate resources, then resource allocation can be adjusted for projects, but the process inherits drawbacks and risks of manual intervention

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidmanual reconfiguration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements an automated resource allocation system that performs self-service by automatically reconfiguring the queuing system based on project requirements. The system monitors resource usage and project needs, then automatically adjusts allocations without manual intervention. This eliminates the complexity and risks of manual reconfiguration while maintaining adaptability through automated decision-making.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system incorporates feedback mechanisms that continuously monitor resource utilization and project progress, then use this information to automatically adjust resource allocations. The feedback loop enables the system to adapt to changing conditions without manual intervention, resolving the contradiction between adaptability and operational complexity.

Inventive Principle:
Principle #23Feedback

3Productivity

If the queuing system schedules jobs without understanding time and resource planning over multiple days or weeks, then simple job scheduling is maintained, but projects cannot ensure timely completion with guaranteed resources

Engineering Contradiction:
Improvejob scheduling simplicityVSAvoidproject completion timing
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by allowing project administrators to pre-allocate resources and plan resource requirements in advance for future time periods. The system can reserve resources for projects before they are needed, ensuring that resources will be available when required for milestone completion. This maintains simple job scheduling while adding forward-looking resource planning capabilities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent adds a time dimension to resource allocation by implementing multi-week rolling schedules and time-based resource guaranteeing. This transforms the simple job scheduling system into one that can plan and guarantee resources across multiple time dimensions, enabling projects to ensure timely completion while maintaining scheduling simplicity through automated time-based rules.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9465663B2Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects
Publication Date: 2016.10.11 SYNOPSYS INC
  • US9465663B2 patent drawing
  • US9465663B2 patent drawing
  • US9465663B2 patent drawing

AI summary

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.