Runtime Parallelism Control for Thread Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprogram execution speedVSAvoidexecution efficiency
Core Design Contradiction:
SpeedVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

2Speed

If the degree of parallelism is increased to improve performance, then execution speed increases, but processing overhead from load balancing and scheduling increases

Engineering Contradiction:
Improveexecution speedVSAvoidprocessing overhead
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improveexecution speedVSAvoidenergy dissipation
Core Design Contradiction:
SpeedVSLoss of energy

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveimplementation simplicityVSAvoidportability across platforms
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9223674B2Computer system and method for runtime control of parallelism in program execution
Publication Date: 2015.12.29 WISCONSIN ALUMNI RES FOUND
  • US9223674B2 patent drawing
  • US9223674B2 patent drawing
  • US9223674B2 patent drawing

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.