GPU Daemon Resource Sharing for Distributed Computing Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed computing systems face significant runtime overhead due to the repeated creation and destruction of GPU resources in tasks executed on the same physical node, particularly in frameworks like Hadoop and MapReduce, which hampers performance and efficiency.

Innovation Solution

A GPU-Daemon process is introduced to manage and reuse GPU resources across tasks on the same node, sharing objects like program, kernel, and context, thereby reducing redundant overhead and enhancing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If GPU resources are created and destroyed for each task execution, then task isolation and resource management are simplified, but runtime overhead increases significantly

Engineering Contradiction:
Improvetask isolationVSAvoidruntime overhead
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

Multiple tasks share a common GPU context and resources instead of each task having its own separate context. The system merges resource management at the node level through a daemon process that pools GPU resources and allocates them to multiple tasks, eliminating redundant creation and destruction operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The GPU context and resources are created in advance by the daemon process before tasks execute, rather than being created at task startup. Resources are pre-allocated and maintained in a ready state, allowing tasks to quickly access them without going through full initialization sequences.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If GPU resources are reused across tasks, then runtime overhead is reduced, but resource management complexity increases

Engineering Contradiction:
Improveruntime overheadVSAvoidresource management
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

A daemon process acts as an intermediary between tasks and GPU resources. This mediator handles the complexity of resource pooling, allocation, and cleanup, shielding individual tasks from management complexity while enabling efficient resource reuse. The daemon maintains resource pools and manages lifecycle operations centrally.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The daemon process provides multiple functions: resource pooling, task scheduling, context management, and memory handling. This universal manager consolidates what would otherwise be scattered management responsibilities across multiple components, simplifying the overall system architecture while enabling resource reuse.

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

3Productivity

If a daemon process is introduced to manage GPU resources, then resource sharing and performance are improved, but system complexity increases

Engineering Contradiction:
Improveperformance efficiencyVSAvoidsystem architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The daemon process autonomously manages GPU resource allocation and lifecycle without requiring complex external orchestration. It self-regulates resource pools, automatically allocates and reclaims resources based on task needs, and handles cleanup operations independently, reducing the need for additional system complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10970805B2Graphics processing unit operation
Publication Date: 2021.04.06 INTEL CORP
  • US10970805B2 patent drawing
  • US10970805B2 patent drawing
  • US10970805B2 patent drawing

AI summary

A system and method for distributed computing including a compute node having a graphics processing unit (GPU) to execute tasks of a distributed computing job. A distributed-computing programming framework executes the tasks on the compute node. A GPU-daemon process shares GPU resources between the tasks executing on the GPU of the compute node.