Memory Partitioning for Shared Memory Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-threaded systems, existing methods for protecting data integrity during parallel updates in shared memory, such as locks and atomic operations, incur significant latency, slowing down programs.
Innovation Solution
Partitioning the shared memory among processing entities, allowing each to have exclusive ownership of a memory partition, enabling single-writer access and eliminating the need for atomic operations or locks by using hash-based partitioning and message passing to manage data operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If locks or atomic operations are used to protect data integrity during parallel updates, then data integrity is maintained, but system latency increases significantly
Solution Approach 1:
The shared memory is divided into multiple partitions, with each partition assigned to a specific processing entity. This segmentation eliminates contention for the same memory region, allowing parallel updates without locks or atomic operations, thus maintaining data integrity while reducing latency
Solution Approach 2:
A hash function serves as an intermediary mechanism to determine which processing entity owns a particular memory partition based on the data key. This intermediary resolves conflicts before they occur by directing updates to the appropriate owner, avoiding the need for contention-based synchronization
2Speed
If exclusive ownership of memory partitions is assigned to processing entities, then contention is eliminated and access speed improves, but memory management complexity increases
Solution Approach 1:
Each processing entity independently manages its own memory partition without needing to coordinate with others. The owner determination engine within each entity autonomously decides whether to process an update locally or forward it to another entity, eliminating the need for complex centralized memory management
Solution Approach 2:
The message passing interface serves multiple functions: it transfers data between entities, conveys ownership information, and handles both local and remote updates through a unified mechanism. This multi-functionality reduces the need for separate management pathways
Data Source
AI summary
In some examples, a system partitions a shared memory address space of a shared memory among a plurality of processing entities into a plurality of memory partitions, where a respective memory partition is associated with a respective processing entity. A first processing entity forwards, to a second processing entity, a first data operation, based on a determination by the first processing entity that the first data operation is to be applied to data for a memory partition associated with the second processing entity. The second processing entity applies the first data operation that includes writing data of the first data operation to the memory partition associated with the second processing entity using a non-atomic operation.


