Local Poll Flag for Resource Access in Multi-Node Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large-scale shared memory architectures, maintaining coherence across multiple processing nodes is challenging due to non-coherent memory interconnects, leading to excessive cache contention and resource contention issues, which complicates mutual exclusion and efficient inter-processor communication.

Innovation Solution

Implementing a local lock node data structure on each processing node, where threads poll for resource availability using a linked list with flags and pointers, allowing for quick and efficient local polling, even for resources external to the node, and utilizing remote storage operations to manage shared resource access across nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If shared memory is scaled to support a very large number of processors, then data sharing capability is improved, but cache contention and resource contention increase

Engineering Contradiction:
Improvedata sharing capabilityVSAvoidcache contention
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments the lock management functionality by creating separate lock node data structures for each processing node. Each node maintains its own local lock nodes in local memory, dividing the global lock management problem into distributed local problems. This segmentation reduces cache contention by preventing all processors from accessing a single centralized lock structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local quality by placing lock node data structures in local memory on each processing node rather than in shared memory. Threads poll local flags in local memory, which is faster and does not cause cache coherence traffic. This localizes the quality of lock access to be node-specific, improving scalability.

Inventive Principle:
Principle #3Local quality

2Reliability

If traditional centralized locking is used across multiple processing nodes, then mutual exclusion is ensured, but overhead and delay increase

Engineering Contradiction:
Improvemutual exclusionVSAvoidoverhead and delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary mechanism where each processing node acts as an independent intermediary for its own lock nodes. Instead of a centralized lock manager, each node independently manages its local lock nodes, reducing communication overhead. The local poll flag acts as an intermediary signal that threads check locally rather than requiring remote synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Each processing node serves itself by maintaining and managing its own lock node data structures in local memory. Threads on a node poll local flags without requiring intervention from other nodes or centralized coordination. This self-service approach reduces the overhead of inter-node communication and centralized lock management.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If non-coherent memory interconnects are used, then system scalability is improved, but coherence maintenance becomes challenging

Engineering Contradiction:
Improvesystem scalabilityVSAvoidcoherence maintenance
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the coherence problem by removing lock node data structures from shared coherent memory and placing them in local non-coherent memory on each processing node. This extraction eliminates the need for coherence maintenance across nodes for lock data, as each node independently manages its local lock nodes without requiring coherence protocols.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10146689B2Locally poll flag in multi processing node system to determine whether a resource is free to use for thread
Publication Date: 2018.12.04 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10146689B2 patent drawing
  • US10146689B2 patent drawing
  • US10146689B2 patent drawing

AI summary

Examples disclosed herein relate to locally polling the value of a flag to determine whether a resource is free for a thread to use in a system with multiple processing nodes that are incoherent with regards to each other. A flag in a direct attached memory to one of the processing nodes is set to indicate that the resource is not free for the thread to use. A previous tail of a lock list is determined from a list master. The previous tail is located on another one of the processing nodes.