Software Graph API for Task Dependency and Deadlock Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing parallel computing systems face challenges in efficiently managing dependencies between tasks in software graphs, leading to potential deadlocks and suboptimal execution orders.
Innovation Solution
An application programming interface (API) is used to define and manage dependencies between nodes in a software graph, including full execution, anti-deadlock, launch order, and fast launch dependencies, allowing for more efficient execution and optimization of graph operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If dependencies between tasks in parallel computing are managed using conventional scheduling methods, then task execution can proceed, but deadlocks may occur and execution ordering becomes suboptimal
Solution Approach 1:
The patent applies preliminary action by explicitly defining dependency types (full execution, anti-deadlock, launch order) before task execution. The system pre-establishes the ordering constraints and synchronization rules between tasks, allowing the scheduler to proactively prevent deadlocks by checking these predefined dependency relationships before attempting task execution, rather than reacting to deadlocks after they occur.
Solution Approach 2:
The patent introduces dependency type indicators as intermediaries between tasks. These indicators act as mediators that convey ordering constraints and synchronization requirements from one task to another. The scheduler uses these intermediary dependency indicators to coordinate task execution without direct task-to-task communication, preventing deadlocks by ensuring proper ordering through the intermediary dependency information.
2Ease of operation
If explicit dependency management is implemented using API-defined node types and edge information, then task ordering and synchronization are improved, but system complexity increases
Solution Approach 1:
The patent applies parameter changes by introducing dependency type parameters (full execution, anti-deadlock, launch order) that modify the behavior of task scheduling. Instead of creating a completely new complex management system, the invention changes the parameters of existing task nodes to include dependency type indicators. This allows the same scheduling infrastructure to handle different ordering requirements by simply changing the dependency type parameter values, reducing overall system complexity.
Solution Approach 2:
The patent segments dependency management into distinct dependency types (full execution dependency, anti-deadlock dependency, launch order dependency). Each dependency type is handled as a separate, well-defined category with specific rules. This segmentation allows the scheduler to apply different scheduling strategies for different dependency types without requiring a monolithic complex management system, making the overall system more manageable and easier to operate.
3Productivity
If conventional task scheduling is used without explicit dependency types, then system simplicity is maintained, but execution scalability is limited
Solution Approach 1:
The patent applies universality by creating a unified dependency indication mechanism that handles multiple scheduling scenarios through a single framework. The same API-based node and edge structure with dependency type indicators can manage full execution dependencies, anti-deadlock dependencies, and launch order dependencies. This universal mechanism scales to different parallel computing workloads and complexity levels without requiring separate specialized systems for each scenario, enhancing overall scalability.
Data Source
AI summary
Apparatuses, systems, and techniques to perform an application programming interface (API) to add one or more graph nodes to a software graph, wherein the API is to store an indication of whether a node within a software graph was performed based, at least in part, on a dependency type indicated by the API. In at least one embodiment, one or more nodes are added to a graph in accordance to one or more dependency types.


