Parallel Computing Progress Meters for Thread Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel computing, load imbalance among threads leads to inefficiencies in performance and power utilization due to variability in computational work, causing some threads to wait for others to complete, resulting in idle computational resources and wasteful use of hardware resources.

Innovation Solution

The implementation of progress meters to track the work completion of threads and adjust the operating frequency of cores by reallocating power, ensuring that all threads reach a synchronization barrier in a shorter mean time, thereby reducing waiting times and improving resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel threads are used to process tasks, then processing speed and productivity are improved, but load imbalance causes some threads to wait for others, leading to idle computational resources and increased waiting time

Engineering Contradiction:
Improveprocessing speedVSAvoidwaiting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system dynamically adjusts the operating frequency of computational cores based on real-time progress monitoring. Progress meters track the completion status of different threads, and when load imbalance is detected (some threads finishing earlier than others), the frequency of slower threads is increased and faster threads is decreased to equalize completion times and minimize idle waiting time at synchronization barriers.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements a feedback mechanism where progress meters continuously monitor thread completion status and provide this information to a performance balancer. The performance balancer uses this feedback to dynamically adjust core frequencies, creating a closed-loop control system that optimizes parallel processing efficiency by responding to actual thread progress rather than static initial conditions.

Inventive Principle:
Principle #23Feedback

2Reliability

If computational resources are allocated to all threads, then task completion capability is improved, but idle resources during waiting periods lead to inefficient power utilization

Engineering Contradiction:
Improvetask completion capabilityVSAvoidpower utilization efficiency
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system changes the operating parameter (frequency) of computational cores based on real-time needs. When threads reach completion milestones, their associated cores have their frequencies reduced or are placed in idle states, while cores associated with slower threads maintain or increase their frequency. This dynamic parameter adjustment ensures that power is consumed primarily by active computational work rather than idle resources.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system transitions from static resource allocation to dynamic resource allocation. Computational resources are not permanently assigned at fixed frequencies but are dynamically adjusted based on thread progress and synchronization needs. This allows the system to maintain task completion capability while optimizing power utilization by matching resource activity to actual computational demand.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9477533B2Progress meters in parallel computing
Publication Date: 2016.10.25 INTEL CORP
  • US9477533B2 patent drawing
  • US9477533B2 patent drawing
  • US9477533B2 patent drawing

AI summary

Systems and methods may provide a set of cores capable of parallel execution of threads. Each of the cores may run code that is provided with a progress meter that calculates the amount of work remaining to be performed on threads as they run on their respective cores. The data may be collected continuously, and may be used to alter the frequency, speed or other operating characteristic of the cores as well as groups of cores. The progress meters may be annotated into existing code.