Heterogeneous Task Scheduling with Dynamic Dependency Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for processing multiple tasks in heterogeneous computing systems result in low overall task completion efficiency and underutilization of hardware resources due to serial processing and interdependencies among tasks.
Innovation Solution
A method that utilizes task description information with depending and depended information identifiers to dynamically update task dependencies, allowing for the identification and execution of tasks that do not depend on others, thereby enabling parallel processing and efficient resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If tasks are processed in serial order based on dependencies, then task execution correctness is ensured, but overall task completion efficiency deteriorates
Solution Approach 1:
The patent pre-calculates and stores dependency relationships between tasks before execution. By maintaining a dependency graph and pre-identifying which tasks can be executed in parallel, the system avoids runtime dependency checking while enabling efficient parallel execution. This preliminary analysis allows tasks to be launched without waiting for predecessor tasks to complete, resolving the contradiction between correctness and efficiency.
Solution Approach 2:
The patent implements dynamic task scheduling where the execution order is not fixed but adapts based on real-time completion status of dependent tasks. Tasks are continuously monitored and added to the execution queue as their dependencies are satisfied. This dynamic approach allows the system to maintain correctness by respecting dependencies while maximizing parallel execution opportunities, thereby improving overall productivity.
2Productivity
If hardware resources are allocated to tasks with dependencies, then resource utilization improves, but idle time increases due to waiting for dependent tasks
Solution Approach 1:
The system pre-identifies tasks that are ready for execution by checking dependency satisfaction before task launch. By maintaining a ready queue of tasks whose dependencies are met, the system can immediately allocate hardware resources to executable tasks without idle waiting. This eliminates resource idle time while maintaining high utilization by continuously having tasks ready for execution.
Solution Approach 2:
The patent ensures continuous utilization of hardware resources by maintaining a pipeline of ready tasks. As tasks complete, new tasks are immediately launched to replace them, ensuring the processing device is continuously busy. The system monitors task completion and dynamically adds newly eligible tasks to the execution queue, eliminating gaps and idle time between task executions while maintaining high resource utilization.
3Reliability
If all task dependencies are resolved before execution, then execution correctness is maintained, but task queue update complexity increases
Solution Approach 1:
The patent segments the task dependency management into distinct components: a dependency graph for storing relationships, a ready queue for tasks ready for execution, and an execution queue for pending tasks. Each component has a specific function, and updates are localized to specific segments rather than requiring global re-evaluation. This segmentation simplifies the update process while maintaining execution correctness by ensuring dependencies are properly tracked.
Solution Approach 2:
The system implements feedback mechanisms where task completion triggers automatic updates to the dependency graph and ready queue. When a task completes, the system notifies dependent tasks and updates their status accordingly. This feedback loop ensures correctness by maintaining accurate dependency information while reducing complexity through automated updates rather than manual tracking. The feedback mechanism efficiently propagates dependency satisfaction information throughout the system.
Data Source
AI summary
A method for processing a plurality of tasks includes: obtaining task description information for a task, the task description information comprising a dependency information identifier and a dependent information identifier, the dependency information identifier indicating the number of a first type of tasks associated with the task, and the dependent information identifier at least indicating whether a second type of task associated with the task exists in the plurality of tasks; in response to the task execution ending, updating the dependency information identifier of the second type of task associated with the task, so as to determine from the second type of task associated with the task any tasks to be executed which no longer directly depend on any task; adding the tasks to be executed into a tasks to be executed queue; and executing the tasks to be executed located in the tasks to be executed queue.


