Dynamic Resource Pool Switching for Multi-Threaded Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Reliability
If blocking synchronization is used, then resource access safety is improved, but system throughput deteriorates due to bottlenecks
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.
Data Source
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.


