Barrier Synchronization Energy Reduction via Thread Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High energy consumption in modern processors, particularly in high-performance computing systems, due to inefficient thread synchronization methods like busy-waiting and blocking algorithms, which waste energy by keeping cores active during synchronization points.

Innovation Solution

A synchronization method that powers down cores waiting at a barrier point, with only the first thread actively polling for the release condition, and subsequent threads moved to the core of the first thread, allowing cores to be powered down until all threads reach the synchronization point, then powered up for continued execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional barrier synchronization is used where all threads actively poll for synchronization completion, then synchronization reliability is improved, but energy consumption increases significantly

Engineering Contradiction:
Improvesynchronization reliabilityVSAvoidenergy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the active polling function from all threads and concentrates it in a single designated thread. When threads reach the barrier, only one thread remains active to poll for synchronization completion while other threads are deactivated, thereby maintaining synchronization reliability while dramatically reducing energy consumption by eliminating redundant active polling across all threads

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of having all threads actively wait and poll (the conventional approach), the patent inverts the approach by having all threads deactivate and only one thread remain active to poll. This inversion transforms the energy-consuming active waiting model into an energy-efficient model where the majority of threads can power down while synchronization still progresses

Inventive Principle:
Principle #13The other way round (Inversion)

2Use of energy by moving object

If threads are deactivated during barrier synchronization to save energy, then energy consumption is reduced, but thread management complexity increases

Engineering Contradiction:
Improveenergy consumptionVSAvoidthread management complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The patent merges the control and coordination functions into a single designated thread that remains active during barrier synchronization. This single thread handles polling, detects when all threads have arrived, and manages the reactivation process. By combining multiple management functions into one thread, the system reduces overall complexity compared to having each thread independently manage its own state and coordination

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If all cores remain active during synchronization waiting, then computation efficiency is maintained, but energy waste increases

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidenergy waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements periodic action by having a single thread perform intermittent polling checks rather than continuous active waiting. The active thread polls at intervals to check for synchronization completion, allowing it to enter low-power states between polls. This periodic polling approach maintains synchronization functionality while enabling significant energy savings compared to continuous active waiting on all cores

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS9910717B2Synchronization method
Publication Date: 2018.03.06 FUJITSU LTD
  • US9910717B2 patent drawing
  • US9910717B2 patent drawing
  • US9910717B2 patent drawing

AI summary

A synchronization method in a computer system with multiple cores, wherein a group of threads executes in parallel on a plurality of cores, the group of threads being synchronized using barrier synchronization in which each thread in the group waits for all the others at a barrier before progressing; the group of threads executes until a first thread reaches the barrier; the first thread enters a polling state, repeatedly checking for a release condition indicating the end of the barrier; subsequent threads to reach the barrier are moved to the core on which the first thread is executing; and other cores are powered down as the number of moved threads increases; and wherein when the first thread detects the release condition, the powered down cores are powered up and are available for use by the threads.