Work Stealing Deque Segmentation for TSO Memory Barrier Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing work-stealing algorithms face inefficiencies due to the need for store-load memory barriers in architectures with Total Store Order (TSO) memory models, which can slow down operations and introduce race conditions, especially when dealing with dynamic workloads and varying thread assistance needs.

Innovation Solution

Implementing a dynamically configurable separation between stealable and non-stealable work items in a pool, allowing the owner thread to convert work items between these states based on workload conditions, reducing the frequency of memory barriers and improving cache locality by separating stealable and non-stealable items.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If work stealing is implemented using a double-ended queue (deque) in architectures with Total Store Order (TSO) memory models, then work items can be efficiently shared between threads, but store-load memory barriers are required which slow down operations and introduce race conditions

Engineering Contradiction:
Improvework stealing correctnessVSAvoidoperation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the deque into two distinct regions: a stealable region where work items can be freely stolen by other threads, and a non-stealable region where work items are protected from stealing. This segmentation allows the system to avoid memory barriers in the stealable region while maintaining correctness in the non-stealable region, thus resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different access policies to different parts of the deque. The stealable region uses relaxed consistency rules allowing faster access without memory barriers, while the non-stealable region uses strict consistency rules ensuring correctness. This local differentiation of quality allows the system to optimize performance in regions where it can afford to be less strict while maintaining reliability where needed.

Inventive Principle:
Principle #3Local quality

2Productivity

If all work items in the deque are made stealable to maximize thread assistance, then load balancing improves, but the frequency of memory barriers increases due to TSO model requirements

Engineering Contradiction:
Improveload balancing efficiencyVSAvoidtime lost to memory barriers
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By segmenting the deque into stealable and non-stealable regions, the patent allows work items to be made stealable only when it is safe to do so (when no memory barriers are needed), while keeping other items non-stealable. This enables the system to maximize load balancing efficiency in regions where stealing is safe, while avoiding the performance penalty of memory barriers in regions where they would be required.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the deque uses strict consistency rules to prevent race conditions, then reliability is maintained, but operation speed decreases due to required memory barriers

Engineering Contradiction:
Improverace condition preventionVSAvoidoperation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies strict consistency rules (with memory barriers) only to the non-stealable region of the deque where they are necessary for correctness, while applying relaxed consistency rules (without memory barriers) to the stealable region where they are not needed. This local application of quality standards maintains reliability where required while maximizing operation speed where possible.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10289454B2Systems and methods for implementing work stealing using a configurable separation of stealable and non-stealable work items
Publication Date: 2019.05.14 ORACLE INT CORP
  • US10289454B2 patent drawing
  • US10289454B2 patent drawing
  • US10289454B2 patent drawing

AI summary

A system may perform work stealing using a dynamically configurable separation between stealable and non-stealable work items. The work items may be held in a double-ended queue (deque), and the value of a variable (index) may indicate the position of the last stealable work item or the first non-stealable work item in the deque. A thread may steal a work item only from the portion of another thread's deque that holds stealable items. The owner of a deque may add work items to the deque and may modify the number or percentage of stealable work items, the number or percentage of non-stealable work items, and/or the ratio between stealable and non-stealable work items in the deque during execution. For example, the owner may convert stealable work items to non-stealable work items, or vice versa, in response to changing conditions and/or according to various work-stealing policies.