Thread Migration via Communication Distance and Contention Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multiprocessor systems, minimizing memory access latency and communication distance between CPUs and memory locations is challenging due to dynamic memory location changes and potential communication contention, which can lead to performance slowdowns.
Innovation Solution
A system that migrates threads to available CPUs based on computed average communication distance and estimated communication contention, using reinforcement-learning techniques to balance these factors and consider the costs of migration, while ensuring only threads with the highest benefit are moved when multiple threads compete for resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If threads are assigned to CPUs to minimize communication distance, then memory access latency is reduced, but communication contention increases when multiple threads access the same memory locations
Solution Approach 1:
The system performs preliminary analysis by computing communication vectors and estimating contention before thread migration occurs. It calculates the communication vector for each CPU based on the thread's memory access patterns and uses this information to predict contention levels, allowing the system to make informed migration decisions that avoid high-contention scenarios.
Solution Approach 2:
The communication vector serves as an intermediary representation that captures both communication distance and contention information. Instead of directly handling complex contention analysis, the system uses this vector as a mediator to compare CPU options and make migration decisions, simplifying the decision-making process while accounting for both latency and contention factors.
2Productivity
If thread migration is performed frequently to optimize communication distance, then thread completion time is reduced, but migration overhead and system complexity increase
Solution Approach 1:
The system implements self-service by allowing each CPU to autonomously compute its own communication vector and evaluate its suitability for receiving migrating threads. Each CPU independently calculates the communication distance and estimated contention based on its own memory access patterns, eliminating the need for centralized coordination and reducing overall system complexity.
Solution Approach 2:
The system changes the parameters used for thread assignment from simple distance metrics to a composite evaluation that includes communication vectors and contention estimates. By using these enriched parameters, the system can make more informed migration decisions that balance productivity gains against the complexity of migration management.
3Productivity
If the system considers both communication distance and contention for thread migration decisions, then thread scheduling optimality is improved, but the computational cost of migration decisions increases
Solution Approach 1:
The system performs preliminary computation of communication vectors for all CPUs before making migration decisions. By pre-calculating these vectors based on current memory access patterns, the system prepares the necessary information in advance, reducing the computational burden during actual migration decision-making while maintaining optimal scheduling.
Solution Approach 2:
The system uses communication vectors as a simplified copy or representation of the complex CPU-state information needed for migration decisions. Instead of copying entire CPU states or performing exhaustive analyses, the system creates these vector representations that capture the essential characteristics (distance and contention) needed for optimal scheduling with reduced computational cost.
Data Source
AI summary
One embodiment of the present invention provides a system that performs thread migration within an array of computing nodes, wherein computing nodes in the array contain central processing units (CPUs) and/or memories. During operation, the system identifies CPUs within the array of computing nodes that are available to accept a given thread. For each available CPU, the system computes an average communication distance between the CPU and memories which are accessed by the given thread. Next, the system determines whether to move the given thread to an available CPU based on the average communication distance for the available CPU.


