Node Dependency API for Deadlock-Aware Parallel Task Scheduling

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 inefficiencies and potential deadlocks during task scheduling.

Innovation Solution

A processor-based solution that utilizes an application programming interface (API) to explicitly define and manage dependencies between nodes in a software graph, including full execution, anti-deadlock, launch order, and fast launch dependencies, allowing for optimized task execution on GPUs or PPUs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If tasks are scheduled with dependency management in parallel computing systems, then task execution correctness is improved, but system performance and throughput deteriorate due to scheduling overhead and potential deadlocks

Engineering Contradiction:
Improvetask execution correctnessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary analysis of task dependencies before execution by constructing a software graph that represents all tasks and their dependency relationships. This advance preparation allows the scheduler to identify potential deadlocks and optimize execution plans beforehand, rather than dealing with conflicts during runtime, thus maintaining both correctness and performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary software graph structure that mediates between task definitions and execution. This graph serves as a buffer layer that captures dependency information separately, allowing the execution engine to query and analyze dependencies without direct interference in the task execution flow, reducing scheduling overhead while ensuring correctness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If explicit dependency management is implemented through API, then deadlock prevention is improved, but device complexity increases due to additional data structures and scheduling logic

Engineering Contradiction:
Improvedeadlock preventionVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the dependency management system into distinct components: a software graph structure for representing dependencies, an API layer for user interaction, and an execution engine for task scheduling. This segmentation allows each component to be independently optimized and maintained, reducing overall system complexity while providing robust deadlock prevention through the specialized software graph structure.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12443462B1Application programming interface using node dependencies
Publication Date: 2025.10.14 NVIDIA CORP
  • US12443462B1 patent drawing
  • US12443462B1 patent drawing
  • US12443462B1 patent drawing

AI summary

Apparatuses, systems, and techniques to perform an application programming interface (API) to cause dependency type information of one or more user-indicated graph nodes of a software graph to be indicated. In at least one embodiment, one or more dependency types from a graph are indicated.