Dynamic memory placement policies for NUMA architecture
First Claim
1. A method of dynamically placing data within a distributed shared memory computer system comprising:
- configuring a memory management subsystem to indicate an affinity policy between a first process and a first page of memory of a plurality of pages of memory of said computer system;
scheduling said first process to run on a first node of a plurality of nodes of said computer system; and
placing said first page in said first node of said computer system in response to detecting said scheduling.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed shared memory multiprocessor computer system utilizes page placement policies to reduce data access latencies. Pages of memory are allocated to nodes in a distributed shared memory multiprocessor computer system. A placement policy database is maintained which indicates a placement policy for each page in the system. Upon an access to a page, the placement policy corresponding to the accessed page is determined and the indicated policy is acted upon. A Migrate on Next Touch policy provides that the next access to a page with this policy will cause the page to migrate to the node of the accessing CPU. A Memory Follows Lightweight Process (LWP) policy ensures that pages within a given address range are always local to a specified LWP. A Migrate on Every Touch policy provides that pages within a given address range are migrated to an accessing CPU on every touch. A Replicate on Remote Touch policy provides for replication of a page in the memory of each accessing CPU'"'"'s domain. Finally, a Replicate on All policy provides that upon an access to a given page, that page is replicated on all nodes in the system.
48 Citations
39 Claims
-
1. A method of dynamically placing data within a distributed shared memory computer system comprising:
-
configuring a memory management subsystem to indicate an affinity policy between a first process and a first page of memory of a plurality of pages of memory of said computer system;
scheduling said first process to run on a first node of a plurality of nodes of said computer system; and
placing said first page in said first node of said computer system in response to detecting said scheduling. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of dynamically placing data within a distributed shared memory computer system comprising:
-
configuring a memory management subsystem to indicate a first data placement policy corresponding to a first page of a plurality of pages of memory, wherein said first page has an initial placement corresponding to a first node of a plurality of nodes of said system;
detecting an access to said first page by a second node of said plurality of nodes; and
placing said first page in said second node of said computer system in response to detecting said access. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A distributed shared memory computer system including a plurality of nodes, said system comprising:
-
a first node of said plurality of nodes, wherein said first node is configured to indicate a first data placement policy corresponding to a first page of a plurality of pages of memory, wherein said first page has an initial placement corresponding to said first node; and
a second node of said plurality of nodes, wherein said second node is configured to access said first page, and wherein said second node is configured to place said first page in said second node in response to detecting an access to said first page by said second node. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A distributed shared memory computer system including a plurality of nodes, said system comprising:
-
a first node of said plurality of nodes, wherein said first node is configured to indicate an affinity policy between a first process and a first page of memory of a plurality of pages of memory of said computer system; and
a process scheduler, wherein said scheduler is configured to schedule said first process to run on said first node;
a memory management subsystem, wherein said memory management subsystem is configured to place said first page in said first node in response to detecting said scheduling. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A carrier medium comprising program instructions, wherein the program instructions are computer-executable to:
-
configure a memory management subsystem to indicate an affinity policy between a first process and a first page of memory of a plurality of pages of memory of a computer system;
schedule said first process to run on a first node of a plurality of nodes of said computer system; and
place said first page in said first node of said computer system in response to detecting said scheduling. - View Dependent Claims (28, 29, 30, 31, 32)
-
-
33. A carrier medium comprising program instructions, wherein the program instructions are computer-executable to:
-
configure a memory management subsystem to indicate a first data placement policy corresponding to a first page of a plurality of pages of memory, wherein said first page has an initial placement corresponding to a first node of a plurality of nodes of a computer system;
detecting an access to said first page by a second node of said plurality of nodes; and
placing said first page in said second node of said computer system in response to detecting said access. - View Dependent Claims (34, 35, 36, 37, 38, 39)
-
Specification