Allocation systems and method for partitioning lockless list structures
First Claim
1. A memory allocation system comprising:
- a plurality of nodes each of which comprising a respective set of a plurality of processors;
one or more memories comprising a plurality of memory elements for storing threads, wherein the plurality of memory elements refer to respective portions of the one or more memories and are accessible to at least one of the plurality of nodes; and
an allocation interface configured to allocate the plurality of memory elements to a plurality of lockless list structures, wherein each of the lockless list structures is allocated to a respective set of the plurality of memory elements, wherein the plurality of lockless list structures are partitioned for the plurality of processors, andwherein the allocation interface is configured to receive requests from the plurality of processors for the plurality of memory elements and adjust allocation of the plurality of memory elements between the plurality of lockless list structures according to a balancing metric.
0 Assignments
0 Petitions
Accused Products
Abstract
A memory allocation system is provided and includes nodes, one or more memories, and an allocation interface. Each of the nodes includes a respective set of processors. The one or more memories include memory elements for storing threads. The memory elements refer to respective portions of the one or more memories and are accessible to at least one of the nodes. The allocation interface is configured to allocate the memory elements to lockless list structures. Each of the lockless list structures is allocated to a respective set of the memory elements. The lockless list structures are partitioned for the processors. The allocation interface is configured to receive requests from the processors for the memory elements and adjust allocation of the memory elements between the lockless list structures according to a balancing metric.
16 Citations
20 Claims
-
1. A memory allocation system comprising:
-
a plurality of nodes each of which comprising a respective set of a plurality of processors; one or more memories comprising a plurality of memory elements for storing threads, wherein the plurality of memory elements refer to respective portions of the one or more memories and are accessible to at least one of the plurality of nodes; and an allocation interface configured to allocate the plurality of memory elements to a plurality of lockless list structures, wherein each of the lockless list structures is allocated to a respective set of the plurality of memory elements, wherein the plurality of lockless list structures are partitioned for the plurality of processors, and wherein the allocation interface is configured to receive requests from the plurality of processors for the plurality of memory elements and adjust allocation of the plurality of memory elements between the plurality of lockless list structures according to a balancing metric. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of operating a memory allocation system, wherein the memory allocation system comprises a plurality of nodes and one or more memories, the method comprising:
-
allocating a plurality of memory elements of the one or more memories to a plurality of lockless list structures, wherein the plurality of memory elements store threads and refer to respective portions of the one or more memories and are accessible to at least one of the plurality of nodes, each of the plurality of nodes comprises a respective set of a plurality of processors, each of the lockless list structures is allocated to a respective set of the plurality of memory elements, and the plurality of lockless list structures are partitioned for the plurality of processors; receiving requests from the plurality of processors for the plurality of memory elements; and adjusting allocation of the plurality of memory elements between the plurality of lockless list structures according to a balancing metric. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A memory allocation system comprising:
-
a plurality of processor sockets each of which comprising a respective set of a plurality of processors; one or more memories comprising a plurality of memory elements for storing threads, wherein the plurality of memory elements refer to respective portions of the one or more memories and are accessible to at least one of the plurality of processor sockets; and an allocation interface configured to allocate the plurality of memory elements to a plurality of lockless list structures, wherein each of the lockless list structures is allocated a respective set of the plurality of memory elements, wherein the plurality of lockless list structures are partitioned for the plurality of processors, and wherein the allocation interface is configured to receive requests from the plurality of processors for the plurality of memory elements and adjust allocation of the plurality of memory elements between the plurality of lockless list structures according to a balancing metric. - View Dependent Claims (20)
-
Specification