Task Scheduler Dependency Handling With Unified Task Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods require separate programming models and runtime implementations for task and data dependency expressions, leading to increased development complexity and hindering hardware acceleration solutions.
Innovation Solution
A unified programming model supports both task and data dependency expressions using a task identifier as a special data object to indicate task dependencies, allowing the task scheduler to determine and manage running sequences based on input information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If separate programming models are used for task dependency and data dependency expressions, then both dependency types can be supported, but system complexity and development workload increase
Solution Approach 1:
The patent merges task dependency and data dependency expressions into a single unified programming model. Task identifiers are treated as special data objects that can be passed between tasks, allowing both dependency types to be expressed through the same interface. This eliminates the need for separate programming models and runtime implementations, directly reducing system complexity while maintaining support for both dependency types.
Solution Approach 2:
The unified programming model provides universal support for both task dependency and data dependency expressions through a single interface. The task identifier serves multiple functions: it uniquely identifies a task and simultaneously represents the task's output data. This multi-functionality allows the same programming construct to handle both types of dependencies, reducing the need for specialized handling and decreasing development workload.
2Adaptability or versatility
If two different runtime implementations are used for task and data dependency expressions, then both expressions are supported, but hardware acceleration operability is hindered
Solution Approach 1:
The patent combines task dependency and data dependency into a single runtime implementation. By treating task identifiers as data objects, the runtime system handles both dependency types uniformly, enabling hardware accelerators to process both types of dependencies through the same execution pipeline without requiring separate handling logic.
Solution Approach 2:
The task identifier acts as an intermediary that bridges task dependency and data dependency concepts. It serves as a data object that carries task identification information, allowing the runtime system to translate task dependency expressions into data dependency handling mechanisms that are more amenable to hardware acceleration.
3Adaptability or versatility
If separate programming models are used for task and data dependency, then both can be expressed, but project development complexity increases
Solution Approach 1:
The unified programming model provides universal constructs that work for both task and data dependency expressions. Developers use the same syntax and semantics for both types of dependencies, eliminating the need to learn and maintain separate programming paradigms. This universality directly reduces project development complexity while preserving full expressive capability.
Solution Approach 2:
Instead of having task identifiers be separate from data objects, the patent inverts the conventional approach by making task identifiers a special type of data object. This inversion allows task dependency expressions to be handled through data dependency mechanisms, simplifying the programming model and reducing development complexity.
Data Source
AI summary
Embodiments of this disclosure provide a task running method and apparatus and a related device. The task running method is applied to a task scheduler. A plurality of tasks are run in the task scheduler, and the plurality of tasks include a first task and a second task. The method includes: determining, based on input information of the second task, a dependency relationship corresponding to the second task, where the input information of the second task includes a first task identifier, the first task identifier indicates the first task, and the dependency relationship indicates that the second task depends on the first task; determining a running sequence of the first task and the second task based on the dependency relationship corresponding to the second task; and running the second task in the running sequence after running of the first task ends.


