Dynamic Resource Pool Switching for Multi-Threaded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor computer systems, existing methods for managing shared resources, such as memory, face inefficiencies due to bottlenecks in blocking synchronization and poor resource utilization when using either per-thread or per-processor resource pools, especially when the number of threads exceeds the number of processors.

Innovation Solution

Resources are dynamically assigned to either threads or processors based on the ratio of threads to processors, with a threshold-based switching mechanism to optimize resource utilization, allowing for efficient allocation without accounting for intervening access by other threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If per-thread resource pools are used, then resource access efficiency is improved for threads with dedicated pools, but resource utilization deteriorates when the number of threads greatly exceeds the number of processors

Engineering Contradiction:
Improveresource access efficiencyVSAvoidresource utilization
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements dynamic switching between per-thread and per-processor resource pool modes based on the ratio of threads to processors. When the thread-to-processor ratio exceeds a threshold, the system switches from per-thread pools to per-processor pools, and vice versa. This dynamic adaptation allows the system to optimize resource utilization based on current workload conditions, resolving the contradiction between access efficiency and utilization.

Inventive Principle:
Principle #15Dynamics

2Reliability

If per-processor resource pools are used, then resource availability is improved for threads running on dedicated processors, but resource utilization deteriorates when threads are preempted and migrate to other processors

Engineering Contradiction:
Improveresource availabilityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system dynamically switches between per-processor and per-thread resource pool assignments based on thread migration patterns and processor utilization. When thread migration is detected or the thread-to-processor ratio changes significantly, the system adapts by switching modes, ensuring that resources remain available to threads while minimizing waste from thread preemptions and migrations.

Inventive Principle:
Principle #15Dynamics

3Reliability

If blocking synchronization is used, then resource access safety is improved, but system throughput deteriorates due to bottlenecks

Engineering Contradiction:
Improveresource access safetyVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments shared resources into separate resource pools assigned to either threads or processors, eliminating the need for blocking synchronization. By providing dedicated resource pools, the system allows multiple threads to access resources concurrently without contention, maintaining resource access safety through isolation while dramatically improving system throughput by removing synchronization bottlenecks.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7882505B2Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs
Publication Date: 2011.02.01 ORACLE AMERICAN INC
  • US7882505B2 patent drawing
  • US7882505B2 patent drawing
  • US7882505B2 patent drawing

AI summary

In a multi-processor multi-threaded computer system, resources are dynamically assigned during program operation to either threads or processors in such a manner that resource usage is maximized. In one embodiment, the choice of whether to assign resources to threads or processors is dependent on the number of threads versus the number of processors. In another embodiment, when the system is operating in one assignment mode, the amount of wasted resources is measured and when this measured amount exceeds a predetermined threshold based on the maximum resources that could be wasted were the system operating in the other assignment mode, the assignment is switched to the other assignment mode.