Parallel Processing Resource Allocation via Task Chunking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel processing systems, such as those using GPUs, the limited availability of resources can lead to pipeline starvation and reduced throughput due to tasks requiring varying resource allocations over time, causing idling of functional units and limiting the number of tasks that can be in a 'ready' state.

Innovation Solution

The method involves partitioning tasks into chunks based on changing resource requirements, allocating resources only for the next chunk of the task when available, and releasing resources not needed for the following chunk, allowing partial allocation and release of resources to optimize resource usage and increase the number of tasks in a 'ready' state.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of moving object

If resources are allocated for the entire task upfront, then the task can execute without pausing, but the number of tasks that can be in a 'ready' state is limited due to resource constraints

Engineering Contradiction:
Improvetask execution continuityVSAvoidnumber of tasks in ready state
Core Design Contradiction:
Duration of action of moving objectVSProductivity

Solution Approach 1:

The task is divided into multiple chunks based on resource requirements. Instead of allocating resources for the entire task upfront, resources are allocated incrementally for each chunk as it becomes ready to execute. This segmentation allows the system to manage multiple tasks simultaneously with limited resources, increasing the number of tasks in a 'ready' state while maintaining execution continuity through progressive resource allocation.

Inventive Principle:
Principle #1Segmentation

2Productivity

If resources are allocated to multiple tasks simultaneously, then throughput increases, but resource availability for individual tasks decreases

Engineering Contradiction:
ImprovethroughputVSAvoidresource availability per task
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The resource allocation system dynamically adjusts resource distribution based on task progress and availability. Resources are not statically assigned but are allocated flexibly as tasks progress through different chunks. This dynamic approach allows the system to optimize throughput by allocating resources to multiple tasks at different stages, ensuring each task receives adequate resources when needed while maximizing overall system productivity.

Inventive Principle:
Principle #15Dynamics

3Duration of action of moving object

If the full amount of resources is allocated to a task, then the task can complete without pausing, but resource utilization efficiency decreases

Engineering Contradiction:
Improvetask completion timeVSAvoidresource utilization efficiency
Core Design Contradiction:
Duration of action of moving objectVSLoss of energy

Solution Approach 1:

Instead of allocating the full amount of resources needed for entire task completion upfront, the system applies partial action by allocating only the resources required for the next immediate chunk of the task. This partial allocation approach maintains task progress while improving resource utilization efficiency, as resources are released and reallocated to other tasks when not currently needed, reducing waste and improving overall system efficiency.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20210279103A1Resource allocation in a parallel processing system
Publication Date: 2021.09.09 IMAGINATION TECH LTD
  • US20210279103A1 patent drawing
  • US20210279103A1 patent drawing
  • US20210279103A1 patent drawing

AI summary

A method of resource allocation in a parallel processing system is described. The method comprises receiving a request to allocate resources to a task, where the request identifies an amount of resources required to execute a next chunk of the task only, and when available, allocating to the task, the amount of resources required to execute the next chunk of the task.