Job Scheduling via Static Priority and Predicted Completion Time
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As computing systems grow in size and complexity, efficiently scheduling computing jobs to utilize available resources becomes increasingly challenging due to the need to manage various fixed and floating resources across multiple computing nodes, often leading to delays in job execution due to resource unavailability.
Innovation Solution
A method that calculates a static priority for each computing job and selects the job needing resources, identifying a subset of computing nodes capable of satisfying these resources, predicting the earliest completion time for each node, and scheduling the job on the node with the earliest predicted completion time, while also considering preemption and backfilling to optimize resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional scheduling examines jobs in arrival order and places them in waiting queues when resources are unavailable, then resource availability is maintained, but job execution time increases due to delays
Solution Approach 1:
The patent calculates static priority for each job in advance before resource availability is determined. This preliminary priority assignment enables the scheduler to proactively identify which jobs should be executed first when resources become available, rather than passively waiting in arrival order. The priority calculation considers multiple factors including job importance, resource requirements, and system state, allowing the system to prepare scheduling decisions ahead of time and reduce execution delays.
Solution Approach 2:
The scheduling system dynamically adjusts job selection based on real-time resource availability and pre-calculated priorities. When resources become available, the scheduler dynamically identifies which waiting job has the highest priority and assigns it to available nodes. This dynamic adaptation allows the system to respond flexibly to changing conditions while maintaining optimized execution order, resolving the contradiction between reducing time loss and managing scheduling complexity.
2Productivity
If multiple computing nodes are available to execute a job, then resource utilization improves, but determining the optimal node increases scheduling complexity
Solution Approach 1:
The patent identifies a subset of computing nodes that are locally suitable for executing a specific job based on resource matching criteria. Rather than evaluating all nodes in the system, the scheduler filters nodes to find those with compatible resources (CPU type, memory, storage, software licenses) for the job's requirements. This local quality assessment reduces the search space and simplifies node selection while still achieving high resource utilization by matching jobs to appropriate nodes.
Solution Approach 2:
The scheduling system changes parameters such as predicted completion time and resource availability status when evaluating different nodes for job execution. By calculating and comparing these parameters across the subset of suitable nodes, the scheduler can objectively determine the optimal node based on quantitative metrics rather than complex qualitative assessments. This parameter-based approach simplifies the decision-making process while improving resource utilization through systematic evaluation.
3Productivity
If jobs are scheduled based on static priority only, then scheduling simplicity is maintained, but resource utilization efficiency decreases
Solution Approach 1:
The patent extends the scheduling decision-making process from a single dimension (static priority) to multiple dimensions by incorporating predicted completion time as an additional criterion. After identifying jobs in priority order, the scheduler evaluates multiple computing nodes and selects based on which node can complete the job earliest. This dimensional extension allows the system to maintain simple priority-based job selection while adding efficiency through multi-dimensional node evaluation, resolving the contradiction between simplicity and efficiency.
Solution Approach 2:
The system performs preliminary calculations of predicted completion times for each node-job pair before making the final scheduling decision. This advance computation of execution metrics allows the scheduler to efficiently compare nodes and select the optimal one without adding significant complexity to the overall process. The preliminary action of calculating completion times enables efficient resource utilization while keeping the scheduling methodology relatively simple and systematic.
Data Source
AI summary
A method for scheduling computing jobs in a scheduling event includes calculating a static priority of each computing job ready for scheduling, and then selecting a first computing job having the highest static priority as compared to at least one other computing jobs ready for scheduling, the first computing job being associated with at least one required resource. Further, a subset of computing nodes able to satisfy the at least one required resource are identified, and predictions are made for each node of an earliest predicted completion time that the first computing job can be completed on each of those nodes, taking into account already scheduled jobs. Finally, execution of the first computing job is scheduled on the node having the earliest predicted completion time.


