Dynamic Priority Queue for Task Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In task pipelines, high priority tasks often idle due to insufficient input from feeder tasks, leading to inefficient resource allocation and waste, as processor time is split between tasks without dynamic adjustment based on workload availability.

Innovation Solution

Implement a system where the priority of tasks is dynamically adjusted by monitoring the work queue, increasing the processing time for feeder tasks when the high priority task is idle and reducing it when ample input is available, allowing for optimal resource allocation and preventing unnecessary switching between tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processor time is split between all tasks without dynamic adjustment, then high priority tasks can be executed, but high priority tasks idle due to insufficient input from feeder tasks

Engineering Contradiction:
Improvehigh priority task executionVSAvoidhigh priority task idle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system dynamically adjusts the priority of feeder tasks based on real-time monitoring of work queue depth. When the high priority task is idle or the queue is empty, feeder task priority is increased to ensure continuous input supply. When the queue has sufficient work, feeder task priority is reduced. This dynamic priority adjustment resolves the contradiction by adapting resource allocation to actual workload conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements a feedback mechanism where the state of the work queue and the idle status of high priority tasks are continuously monitored. This feedback information is used to adjust the scheduling priority of feeder tasks, creating a closed-loop control system that prevents high priority tasks from idling by ensuring adequate input availability.

Inventive Principle:
Principle #23Feedback

2Productivity

If processor time is allocated to high priority tasks, then they can process work faster, but feeder tasks cannot generate input fast enough causing resource wastage

Engineering Contradiction:
Improvehigh priority task processing speedVSAvoidprocessing resource wastage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system dynamically reallocates processor time between high priority tasks and feeder tasks based on work queue depth. When the queue is empty or shallow, more processor time is allocated to feeder tasks to generate input. When the queue has sufficient depth, processor time is allocated to high priority tasks for faster processing. This dynamic time allocation eliminates resource wastage by matching processing capacity with input availability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the scheduling parameter (task priority) of feeder tasks based on the depth of the work queue. When queue depth is low, feeder task priority is increased to ensure adequate input generation. When queue depth is sufficient, feeder task priority is decreased. This parameter change resolves the contradiction between processing speed and resource efficiency.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If static priority queues are used, then task scheduling is simple, but they do not adapt to changing workload demands

Engineering Contradiction:
Improvetask scheduling simplicityVSAvoidworkload demand adaptation
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system transitions from static to dynamic priority queues where task priorities are adjusted in real-time based on work queue depth and task idle status. This dynamic approach maintains relative simplicity by building upon existing priority queue structures while adding adaptive priority adjustment logic that responds to changing workload demands.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The scheduling system automatically adjusts task priorities based on monitored system state without requiring external intervention. The work queue depth and task idle status are self-monitored, and priority adjustments are self-executed, enabling the system to adapt to workload changes autonomously while maintaining operational simplicity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11954518B2User-defined metered priority queues
Publication Date: 2024.04.09 NVIDIA CORP
  • US11954518B2 patent drawing
  • US11954518B2 patent drawing
  • US11954518B2 patent drawing

AI summary

Apparatuses, systems, and techniques to optimize processor resources at a user-defined level. In at least one embodiment, priority of one or more tasks are adjusted to prevent one or more other dependent tasks from entering an idle state due to lack of resources to consume.