Runtime Parallelism Control for Thread Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Determining the optimal degree of parallelism in program execution across diverse hardware platforms is challenging due to complexity, variability in hardware resources, and unknown effects of concurrently executing programs, leading to inefficiencies and performance issues.
Innovation Solution
A computer system and method that assesses and controls parallelism dynamically at runtime by varying the number of threads based on performance metrics, using a virtualizing program to map threads to virtual threads and adjust according to changing conditions, ensuring neither excessive nor insufficient parallelism.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If multiple processors are employed to execute different portions of a program in parallel, then program execution speed is increased, but execution inefficiencies occur due to increased contention, processing overhead, and energy dissipation
Solution Approach 1:
The patent applies dynamics by making the degree of parallelism adjustable and adaptive rather than fixed. The system dynamically changes the number of active processors based on runtime conditions, allowing optimization of both speed and efficiency. This resolves the contradiction by enabling the system to use high parallelism when speed is critical and reduce parallelism when efficiency becomes compromised by contention and overhead.
Solution Approach 2:
The patent changes the parameter of parallelism degree at runtime based on measured performance characteristics. By monitoring execution metrics and adjusting the number of active processors accordingly, the system optimizes the balance between execution speed and efficiency, resolving the contradiction between these two parameters.
2Speed
If the degree of parallelism is increased to improve performance, then execution speed increases, but processing overhead from load balancing and scheduling increases
Solution Approach 1:
The system dynamically adjusts the degree of parallelism based on runtime performance measurements. When parallelism provides speed benefits that outweigh scheduling overhead, the system increases parallelism; when overhead becomes excessive, the system reduces parallelism. This dynamic adaptation resolves the contradiction between execution speed and processing overhead.
3Speed
If the degree of parallelism is increased to improve performance, then execution speed increases, but energy dissipation increases causing processors to be deactivated or experience intermittent faults
Solution Approach 1:
The patent implements dynamic adjustment of parallelism degree based on energy consumption and performance characteristics. The system can reduce the number of active processors when energy dissipation becomes excessive, preventing thermal issues and intermittent faults while maintaining acceptable execution speed. This resolves the contradiction between speed and energy loss.
Solution Approach 2:
The system changes the parallelism parameter at runtime based on measured energy consumption and performance data. By adjusting the degree of parallelism according to actual energy dissipation levels, the system optimizes the balance between execution speed and energy efficiency, preventing thermal problems while maintaining performance.
4Ease of manufacture
If the degree of parallelism is determined statically by the programmer, then implementation is simple, but the complexity of the problem and variability of hardware platforms make optimal determination difficult
Solution Approach 1:
The patent implements self-service by having the system automatically determine optimal parallelism degree through runtime performance measurements and analysis. The system monitors execution characteristics and autonomously adjusts parallelism without requiring programmer intervention or detailed hardware knowledge. This resolves the contradiction by maintaining implementation simplicity while achieving high adaptability across different hardware platforms.
Solution Approach 2:
The system uses feedback from runtime performance measurements to automatically adjust the degree of parallelism. By continuously monitoring execution characteristics and using this feedback to optimize parallelism, the system achieves platform adaptability without requiring static programmer determination. This feedback mechanism resolves the contradiction between implementation simplicity and cross-platform adaptability.
Data Source
AI summary
A computer system and method are provided to assess a proper degree of parallelism in executing programs to obtain efficiency objectives, including but not limited to increases in processing speed or reduction in computational resource usage. This assessment of proper degree of parallelism may be used to actively moderate the requests for threads by application processes to control parallelism when those efficiency objectives would be furthered by this control.


