Software Graph API for Task Dependency and Deadlock Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedeadlock preventionVSAvoidexecution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvetask ordering controlVSAvoiddependency management structure
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

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.

Inventive Principle:
Principle #1Segmentation

3Productivity

If conventional task scheduling is used without explicit dependency types, then system simplicity is maintained, but execution scalability is limited

Engineering Contradiction:
Improveparallel computing scalabilityVSAvoiddependency indication mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS12619480B2Application programming interface to indicate event dependencies
Publication Date: 2026.05.05 NVIDIA CORP
  • US12619480B2 patent drawing
  • US12619480B2 patent drawing
  • US12619480B2 patent drawing

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.