Work Scheduling on Candidate Processing Unit Collections
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems, higher priority units of work can be starved due to long-running lower priority tasks, leading to increased scheduling complexity and overhead as the number of processing resources grows, which existing schedulers struggle to manage effectively.
Innovation Solution
A scheduler that employs a scheduling technique that does not substantially increase resource usage with the quantity of processing units, utilizing lockless buffers and thread domains to prioritize and schedule units of work based on locality and priority, reducing contention and scheduling overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional scheduling techniques are used to manage processing resources, then scheduling coverage is maintained across all processing units, but scheduling complexity and resource usage increase substantially with the quantity of processing units
Solution Approach 1:
The system segments processing units into thread domains, where each domain manages its own set of processing units independently. This segmentation allows scheduling decisions to be made locally within each domain rather than globally across all processing units, reducing the complexity growth rate as system size increases.
Solution Approach 2:
Idle processing units act as intermediaries that can steal work from other thread domains. This intermediary mechanism distributes workload dynamically without requiring centralized scheduling coordination for every task, reducing overall scheduling complexity while maintaining system-wide productivity.
2Productivity
If traditional scheduling techniques are used to manage processing resources, then all processing units can be utilized, but resource usage for scheduling increases with the quantity of processing units
Solution Approach 1:
By dividing the system into independent thread domains, each domain manages its own processing units and work queues independently. This segmentation reduces the scheduling overhead that would otherwise scale with the total number of processing units, as each domain operates autonomously with minimal inter-domain coordination.
Solution Approach 2:
Thread domains and processing units are designed to be self-sufficient, making their own scheduling decisions without requiring centralized coordination. Idle processing units can autonomously steal work from other domains, reducing the need for complex centralized scheduling operations and lowering overall scheduling overhead.
3Productivity
If long-running lower priority tasks are executed on processing units, then processing capacity is utilized, but higher priority units of work are starved
Solution Approach 1:
Idle processing units from other thread domains act as intermediaries that can steal high-priority work from domains where low-priority tasks are running. This work-stealing mechanism ensures that high-priority work can be executed on available processing units across the system, preventing starvation while maintaining overall processing capacity utilization.
Solution Approach 2:
The system dynamically adjusts work distribution through work stealing, allowing processing units to change their workload based on real-time conditions. When a processing unit becomes idle, it can dynamically steal high-priority work from other domains, ensuring priority guarantees are maintained while keeping processing units utilized.
Data Source
AI summary
In some examples, a system receives a first unit of work to be scheduled in the system that includes a plurality of collections of processing units to execute units of work, where each respective collection of processing units of the plurality of collections of processing units is associated with a corresponding scheduling queue. The system selects, for the first unit of work according to a first criterion, candidate collections from among the plurality of collections of processing units, and enqueues the first unit of work in a schedule queue associated with a selected collection of processing units that is selected, according to a selection criterion, from among the candidate collections.


