Non-uniform Symmetric Memory Allocation in Parallel Programs
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


