Manycore Thread Management via Segmented Control Modules

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In manycore systems, efficient thread management is crucial for improving application performance through multithreading, but improper management can limit performance gains due to resource contention and overhead from context switching.

Innovation Solution

A method for managing threads in a manycore system involves receiving job descriptors from a host processor, generating threads, allocating them to cores based on thread state information, and using operation queues for thread launch, termination, and synchronization, minimizing context switching and resource contention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multithreading is implemented to improve application performance, then parallel processing capability is enhanced, but resource contention and context switching overhead increase

Engineering Contradiction:
Improveapplication performanceVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments thread management into distinct functional modules: a management module that generates threads and assigns them to cores, and core modules that execute threads. This segmentation isolates the complexity of thread management from the execution logic, allowing multithreading to improve application performance while the management overhead is contained within dedicated management structures rather than分散 across all processing elements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a management module as an intermediary between the host processor and the core modules. This intermediary handles thread generation, state tracking, and core assignment, thereby mediating the complexity of multithreading management and preventing it from directly impacting the execution efficiency of individual cores. The management module absorbs the overhead of context switching and resource allocation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If threads are allocated to cores without considering thread state information, then allocation speed is improved, but resource contention increases

Engineering Contradiction:
Improvethread allocation speedVSAvoidparallel processing efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent implements preliminary action by maintaining thread state information (such as execution status, resource requirements, and completion status) in advance of thread allocation decisions. The management module uses this pre-collected state information to make informed allocation decisions, matching threads to appropriate cores based on their current state and the cores' availability, thereby reducing resource contention while maintaining efficient allocation speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the management module continuously monitors thread state information and uses this feedback to dynamically adjust thread allocation decisions. The state information serves as feedback about thread requirements and core utilization, enabling the system to optimize parallel processing efficiency by allocating threads to cores in a way that minimizes resource contention and maximizes utilization.

Inventive Principle:
Principle #23Feedback

3Loss of energy

If context switching is minimized to reduce overhead, then thread management overhead is reduced, but thread synchronization capability is limited

Engineering Contradiction:
Improvecontext switching overheadVSAvoidsynchronization capability
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The patent extracts synchronization operations from the context switching mechanism by implementing dedicated synchronization primitives within the management module. Instead of relying on context switching to achieve synchronization, the system uses explicit synchronization operations (such as barriers, semaphores, or event-based synchronization) that are handled separately from thread allocation and switching. This extraction reduces context switching overhead while maintaining reliable synchronization capability through dedicated mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12093739B2Method and apparatus for managing threads in manycore
Publication Date: 2024.09.17 XCENA INC
  • US12093739B2 patent drawing
  • US12093739B2 patent drawing
  • US12093739B2 patent drawing

AI summary

A method for managing threads in a manycore system is launched by one or more processors, and includes receiving, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor, generating threads for each of the one or more tasks based on the job descriptor, and allocating the generated threads to one or more cores of a cluster that includes a plurality of cores.