Job Scheduler Using Preemption and Backfilling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As computing systems grow in size and complexity, efficiently scheduling computing jobs across numerous nodes with varying resources becomes increasingly challenging, particularly in ensuring timely execution due to resource unavailability and priority management.
Innovation Solution
A method and apparatus for scheduling computing jobs that selects jobs based on priority, identifies nodes capable of satisfying required resources, and allows preemption of lower-priority jobs to free resources for higher-priority jobs, enabling efficient resource utilization by scheduling jobs on the best nodes during optimal time intervals.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional scheduling examines jobs in arrival order and places them in waiting queues when resources are unavailable, then resource availability is respected, but job execution time increases and system productivity decreases
Solution Approach 1:
The scheduler performs preliminary actions by identifying and reserving resources for future job execution before the actual execution time. The system schedules jobs to start at future times when resources will be available, rather than waiting passively in queues. This includes identifying computing nodes that will satisfy resource requirements during specific time periods and pre-allocating those resources.
Solution Approach 2:
The scheduling system dynamically adjusts job execution times and resource allocations based on real-time system state. The scheduler can preempt lower-priority jobs that were previously scheduled to free up resources for higher-priority jobs. This dynamic reconfiguration allows the system to optimize resource utilization and reduce waiting times adaptively.
2Productivity
If the system schedules more jobs to maximize resource utilization, then productivity improves, but scheduling complexity and difficulty of managing resource allocation increases
Solution Approach 1:
The scheduling problem is segmented by dividing jobs into priority levels and processing them in hierarchical order. The scheduler handles high-priority jobs separately from lower-priority jobs, and further segments jobs by their resource requirements and time periods. This segmentation simplifies the overall scheduling complexity by breaking down the monolithic scheduling decision into manageable sub-problems.
Solution Approach 2:
The system changes scheduling parameters dynamically based on job priority, resource availability, and system state. The scheduler adjusts execution times, preemption thresholds, and resource allocation parameters to optimize utilization while managing complexity. Parameters such as priority thresholds and time period selections are varied to balance resource utilization with scheduling manageability.
3Reliability
If the system allows preemption of lower-priority jobs to free resources for higher-priority jobs, then job priority fulfillment improves, but system stability and resource allocation reliability deteriorates
Solution Approach 1:
The system uses parameter changes by adjusting preemption thresholds and priority levels dynamically. Preemption is triggered based on specific parameter conditions, such as when a high-priority job requires resources and the priority difference exceeds a threshold. This parameter-based control allows the system to maintain stability under normal conditions while enabling necessary preemptions when critical priorities are involved.
Data Source
AI summary
A method for scheduling computing jobs in a scheduling event. A computing node is identified that is able to satisfy the required resource during a first time period. A second computing job is determined to have previously been scheduled to execute during a second time period, where the second time period overlaps a first time period. Execution of the second computing job is preempted if the first computing job's priority is greater than the second computing job's priority by at least a threshold amount, and if preempting the second job frees the required resource for use by the first computing job. Execution of the first computing job is scheduled to take place on a first computing node during the first time period, where a start time associated with the first time period is a time selected from the group consisting of a current time and a future time.


