A Method for Directing Memory Allocations to Specific Nodes on Numa Systems
Original Publication Date: 1999-Oct-01
Included in the Prior Art Database: 2003-Jun-18
Optimal performance on Numa systems is achieved when application's references to system (real) memory map to the same Node on which the application is executing. This ensures the lowest memory latency possible. Although most operating systems allow applications to "bind" their execution to specific processors, most operating systems (those which do not support Numa systems as other that large SMPs) export no interface for directing memory allocations to specific real memory ranges. By providing a mechanism at the user (and/or device driver) level without modification to the operating system itself, applications can derive better performance on Numa systems than they would otherwise. This invention is embodied in a set of library services which allow an application to specify its execution and memory binding requests. Requests for memory binding are managed as follows, and are the specifics of the invention: 1) Operating system services are used to allocate virtual memory, and lock in memory (pin) the amount of memory the user is requesting. 2) For each page of virtual memory allocated: a. Determine the physical address of the real memory backing the page.