NUMA Memory Allocation via Device Affinity Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multiprocessor computer systems with distributed shared memory, existing memory allocation methods do not efficiently direct data transmission between input-output devices and memory resources, leading to suboptimal performance due to non-uniform memory access times.
Innovation Solution
A system and method that utilize a pre-programmed device affinity table to allocate memory to input-output devices based on physical proximity, directing the device driver to transmit data between the I/O device and the closest memory resource, thereby optimizing memory access and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If memory is allocated to I/O devices without considering physical proximity in distributed shared memory systems, then memory allocation is simple and uniform, but memory access time increases and I/O performance deteriorates
Solution Approach 1:
The system pre-establishes an affinity table during system initialization that maps I/O devices to their physically closest memory resources. This preliminary action stores proximity information before actual I/O operations occur, allowing the system to quickly determine optimal memory allocation without real-time complexity. When an I/O device needs memory, the system consults this pre-computed affinity table to immediately identify the closest memory resource, thereby reducing memory access time without adding operational complexity.
Solution Approach 2:
The affinity table acts as an intermediary data structure that mediates between I/O devices and memory resources. Instead of directly calculating physical proximity between devices and memory during operations, the system uses this intermediate table to translate device identifiers into optimal memory resource identifiers. This intermediary layer simplifies the allocation process while ensuring that memory is assigned based on physical proximity, thus reducing access time without increasing system complexity.
2Productivity
If memory resources are distributed across multiple nodes in a NUMA system, then data transmission capacity increases, but memory access time becomes non-uniform and I/O performance varies
Solution Approach 1:
The system applies local quality by allocating memory resources based on their physical location relative to I/O devices. The affinity table encodes spatial information about which memory resources are locally closest to each I/O device. When allocating memory, the system selects resources with the best local proximity match, ensuring that each I/O device accesses memory from its nearest physical location. This local optimization reduces access time variability across the distributed memory system while maintaining high data transmission capacity.
3Productivity
If existing memory allocation methods are used in multiprocessor systems, then system simplicity is maintained, but I/O performance and throughput are suboptimal
Solution Approach 1:
The system performs preliminary computation during initialization to build the affinity table that maps I/O devices to optimal memory resources. This pre-computation phase establishes proximity relationships once, storing the results for rapid lookup during I/O operations. The device driver queries this pre-built table to determine the closest memory resource, enabling high I/O throughput without adding complexity to the operational allocation process. The complexity is front-loaded during system setup rather than being present during runtime operations.
Data Source
AI summary
The present disclosure describes systems and methods for allocating memory in a multiprocessor computer system such as a non-uniform memory access (NUMA) machine having distribute shared memory. The systems and methods include allocating memory to input-output devices (I/O devices) based at least in part on which memory resource is physically closest to a particular I/O device. Through these systems and methods memory is allocated more efficiently in a NUMA machine. For example, allocating memory to an I/O device that i80s on the same node as a memory resource, reduces memory access time thereby maximizing data transmission. The present disclosure further describes a system and method for improving performance in a multiprocessor computer system by utilizing a pre-programmed device affinity table. The system and method includes listing the memory resources physically closest to each I/O device and accessing the device table to determine the closest memory resource to a particular I/O device. The system and method further includes directing a device driver to transmit data between the I/O device and the closest memory resource.


