Variable-Size Symmetric Heap Memory Allocation for PGAS Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current PGAS-based programming models like OpenSHMEM lack the ability to perform variable-size memory allocations while maintaining the advantages of symmetric addressing, leading to inefficient memory usage and increased costs for small transfers due to dynamic memory registration and RDMA overhead.

Innovation Solution

The introduction of APIs such as `shmem_malloc_varsize` and `shmem_malloc_onepe` allows for variable-size memory allocations across processing elements, enabling each PE to allocate memory based on its specific needs while maintaining a symmetric memory layout, and provides mechanisms for address translation to ensure remote accessibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If symmetric heap allocation is used in OpenSHMEM, then remote memory access is enabled through symmetric addressing, but memory usage efficiency deteriorates due to uniform allocation sizes across all PEs

Engineering Contradiction:
Improveremote memory access capabilityVSAvoidmemory usage efficiency
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent applies local quality by allowing each processing element to allocate memory sizes tailored to its specific needs rather than enforcing uniform allocation. The symmetric heap structure maintains consistent addressing schemes while permitting variable allocation sizes locally at each PE, optimizing memory usage according to local requirements.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent introduces dynamic memory allocation capabilities where the heap manager can adjust allocation sizes based on runtime conditions and specific PE requirements. This dynamic approach allows the system to transition from static uniform allocation to flexible variable-size allocation while maintaining symmetric addressing benefits.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If variable-size allocation is implemented, then memory efficiency is improved, but symmetric addressing advantages are lost

Engineering Contradiction:
Improvememory efficiencyVSAvoidsymmetric addressing benefit
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent deliberately introduces asymmetry in allocation sizes while preserving symmetry in addressing schemes. Each PE can allocate different memory sizes (asymmetric allocation) but the symmetric heap structure maintains consistent address calculation methods across all PEs, allowing variable-size allocation without sacrificing symmetric addressing benefits.

Inventive Principle:
Principle #4Asymmetry

Solution Approach 2:

The patent segments the symmetric heap into variable-size regions at each PE while maintaining the overall symmetric structure. This segmentation allows different allocation sizes in different local regions while preserving the global symmetric addressing scheme that enables efficient remote access.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If MPI-style remote memory access is used, then different object sizes are supported, but performance deteriorates due to dynamic memory registration overhead

Engineering Contradiction:
Improvedifferent object sizes supportVSAvoidtransfer performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-registering memory regions in the symmetric heap before remote access operations. This pre-registration eliminates the need for dynamic memory registration during runtime, reducing overhead and improving transfer performance while still supporting variable-size objects through the variable allocation capabilities of the symmetric heap.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240126680A1Apparatuses, Devices, Methods and Computer Programs for Allocating Memory
Publication Date: 2024.04.18 INTEL CORP
  • US20240126680A1 patent drawing
  • US20240126680A1 patent drawing
  • US20240126680A1 patent drawing

AI summary

Various examples relate to apparatuses, devices, methods and computer programs for allocating memory. An apparatus comprises interface circuitry, machine-readable instructions, and processor circuitry to execute the machine-readable instructions to process instructions of a software application of a local processing element participating in a partitioned global address space, allocate, upon processing an instruction for allocating memory on a symmetric heap being used across a plurality of processing elements participating in the partitioned global address space, memory on the symmetric heap, wherein, if the instruction for allocating memory indicates that memory is to be allocated with a variable size, the memory allocated on the symmetric heap has a size that is specific for the local processing element.