Task Partitioning for Multiprocessors Using Resource Sharing Awareness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional task allocation algorithms in multi-processor systems fail to maximize aggregate performance due to task dependencies, leading to increased blocking times and suboptimal execution, as they do not consider the interactions between tasks when distributing them across processors.

Innovation Solution

A novel task allocation method that analyzes and minimizes the worst-case blocking time by assigning dependent tasks to the same processor, utilizing the Multi-processor Priority Ceiling Protocol (MPCP) to prevent deadlocks and prioritize resource access, and employing MPCP-suspend and MPCP-spinning policies to manage shared resource access, while also balancing processor utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If tasks are allocated to different processors to balance load, then processor utilization is improved, but blocking time increases due to resource sharing conflicts

Engineering Contradiction:
Improveprocessor utilizationVSAvoidblocking time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges tasks that share common resources into the same processor partition. By analyzing resource access patterns and identifying tasks with overlapping resource requirements, the system combines these tasks within single partitions to eliminate inter-partition resource conflicts. This merging strategy reduces blocking time caused by remote resource access while maintaining balanced processor utilization through optimized partition formation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the set of tasks into distinct partitions based on their resource sharing characteristics. By dividing tasks into groups that share resources internally but minimize external resource access, the system creates partitions that can execute with reduced blocking. The segmentation approach allows independent optimization of each partition while considering overall system performance.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If tasks are allocated statically without considering dependencies, then allocation simplicity is maintained, but aggregate performance decreases due to task blocking

Engineering Contradiction:
Improveallocation complexityVSAvoidaggregate performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs preliminary analysis of task dependencies and resource access patterns during the partitioning phase. By pre-identifying tasks that share resources or have dependency relationships, the system proactively assigns them to the same partitions before execution begins. This preliminary action eliminates the need for dynamic task migration or complex runtime dependency management, maintaining allocation simplicity while improving performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent incorporates feedback mechanisms that analyze task execution patterns and resource access behavior to optimize partition formation. By monitoring which tasks frequently access shared resources and how blocking occurs, the system refines its partitioning strategy to better group dependent tasks together, thereby reducing aggregate blocking time while maintaining manageable allocation complexity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8938739B2Resource sharing aware task partitioning for multiprocessors
Publication Date: 2015.01.20 TEXAS INSTRUMENTS INC
  • US8938739B2 patent drawing
  • US8938739B2 patent drawing
  • US8938739B2 patent drawing

AI summary

A multi processor task allocation method is described that considers task dependencies while performing task allocation in order to avoid blocking of a task's execution while waiting for the resolution of the dependency. While allocating the tasks to the processors the potential blocking time is considered, and the best allocation that will have the least amount of blocking time is found.