Non-uniform Symmetric Memory Allocation in Parallel Programs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing PGAS programming models, such as OpenSHMEM, require all processes to request equal-sized memory for collective allocation, leading to memory wastage and limiting the use of these models in parallel applications.

Innovation Solution

An interface, such as an API, allows applications to specify different memory sizes for each process, enabling non-uniform allocation of symmetric memory by mapping virtual memory with equal allocations to physical memory of varying sizes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If collective allocation routine requires equal-sized memory for all processes, then performance overheads are minimal, but memory resources are wasted and flexibility is reduced

Engineering Contradiction:
Improvememory wastageVSAvoidmemory allocation flexibility
Core Design Contradiction:
Loss of energyVSAdaptability or versatility

Solution Approach 1:

The patent segments the memory allocation problem into two independent parts: virtual memory allocation (equal-sized for all processes) and physical memory allocation (variable-sized per process). This segmentation allows each part to be optimized independently, resolving the contradiction between performance and flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces virtual memory as an intermediary layer between processes and physical memory. This intermediary enables equal-sized virtual memory allocations that maintain performance characteristics while mapping to variable-sized physical memory allocations, thus eliminating memory wastage without sacrificing performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If equal-sized memory is allocated to all processes, then performance overheads are minimal, but memory resources are wasted for processes requiring smaller amounts

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoidmemory wastage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent creates a virtual copy of physical memory space that is equally distributed among all processes. This virtual memory copy maintains the performance benefits of equal allocation while the actual physical memory is allocated in variable sizes according to each process's needs, eliminating wastage.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent changes the parameter of memory allocation from a single uniform size to a two-level structure: virtual memory size (equal for all) and physical memory size (variable per process). This parameter change resolves the contradiction by allowing optimization at both levels.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If equal-sized memory allocation is enforced, then performance overheads are minimal, but parallel applications are inhibited from using the programming model

Engineering Contradiction:
Improveperformance overheadVSAvoidapplication compatibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent applies asymmetry by allowing different processes to have different physical memory sizes while maintaining equal virtual memory sizes. This asymmetric physical allocation is hidden behind a symmetric virtual memory interface, enabling both performance efficiency and application versatility.

Inventive Principle:
Principle #4Asymmetry

Solution Approach 2:

The patent makes the memory allocation system universal by supporting both equal-sized and non-uniform memory allocation patterns through a single interface. The virtual memory layer provides a universal equal-sized view to all processes, while the physical layer adapts to diverse allocation requirements, enhancing application compatibility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20250156314A1Non-uniform allocation of symmetric memory in parallel programs
Publication Date: 2025.05.15 NVIDIA CORP
  • US20250156314A1 patent drawing
  • US20250156314A1 patent drawing
  • US20250156314A1 patent drawing

AI summary

Systems and methods herein are for at least one circuit to perform at least one process of different processes that may be associated with one or more applications, where the process may use one part of a virtual memory based on different requests by the different processes, where the virtual memory may include parts of equal allocations based on a maximum of different memory sizes in specifications associated with the different processes, where the one part of the virtual memory may be in a mapping with respect to one part of a physical memory of different allocated sizes, and where a translation for the mapping can occur using a start address and the maximum of the different memory sizes.