Technique for referencing distributed shared memory locally rather than remotely
First Claim
1. A method for allocating memory in a multiprocessing computing system including a plurality of nodes, the method comprising:
- collecting a plurality of partially completed descriptions of programmer-specified shared data items at program start-up time;
dynamically allocating the shared data items into a local address space shared by a plurality of CPUs within each node;
storing the address of the allocation into each partial description;
determining from the stored allocation address in the stored descriptions a address of a shared data item;
determining from the determined address whether a data request seeking to access the shared data item is seeking data available within the shared local address space accessing the data from the local address space if the data is determined to be available in the local address space; and
accessing the data from a remote address space if the data is determined to be unavailable in the local address space.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention comprises a technique for allocating memory in a multiprocessing computing system. In a first aspect, a method in accordance with the present invention begins by collecting a plurality of descriptions of shared data items. The shared data items are then dynamically allocated into a local virtual address space shared by a plurality of CPUs within a single node. The description of this allocation is the then stored. The method then accesses the stored allocation description to determine the virtual memory address of a shared data item. Whenever a data request is generated, it is determined from this virtual memory address whether the shared data item is available within the shared local virtual address space. If so, the access is performed in the shared local virtual address space. If the data is unavailable in the local virtual address space, it is accessed from a remote memory space.
104 Citations
22 Claims
-
1. A method for allocating memory in a multiprocessing computing system including a plurality of nodes, the method comprising:
-
collecting a plurality of partially completed descriptions of programmer-specified shared data items at program start-up time;
dynamically allocating the shared data items into a local address space shared by a plurality of CPUs within each node;
storing the address of the allocation into each partial description;
determining from the stored allocation address in the stored descriptions a address of a shared data item;
determining from the determined address whether a data request seeking to access the shared data item is seeking data available within the shared local address space accessing the data from the local address space if the data is determined to be available in the local address space; and
accessing the data from a remote address space if the data is determined to be unavailable in the local address space. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A program storage medium encoded with instructions that, when executed by a computer, perform a method for allocating memory in a multiprocessing computing system including a plurality of nodes, the method comprising:
-
collecting a plurality of partially completed descriptions of programmer-specified shared data items at program start-up time;
dynamically allocating the shared data items into a local address space shared by a plurality of CPUs within each node;
storing the address of the allocation into each partial description;
determining from the stored allocation address in the stored descriptions a address of a shared data item;
determining from the determined address whether a data request seeking to access the shared data item is seeking data available within the shared local address space accessing the data from the local address space if the data is determined to be available in the local address space; and
accessing the data from a remote address space if the data is determined to be unavailable in the local address space. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer programmed to perform a method for allocating memory in a multiprocessing computing system including a plurality of nodes, the method comprising:
-
collecting a plurality of partially completed descriptions of programmer-specified shared data items at program start-up time;
dynamically allocating the shared data items into a local address space shared by a plurality of CPUs within each node;
storing the address of the allocation into each partial description;
determining from the stored allocation address in the stored descriptions a address of a shared data item;
determining from the determined address whether a data request seeking to access the shared data item is seeking data available within the shared local address space accessing the data from the local address space if the data is determined to be available in the local address space; and
accessing the data from a remote address space if the data is determined to be unavailable in the local address space. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A computing system comprising:
-
a plurality of SMP nodes, each SMP node including;
a plurality of CPUs; and
a plurality of a private memories, one for each of the CPUs;
a memory space distributed across the SMP nodes and being shared by each of the CPUs; and
a user program resident on the computing system that, when executed, performs the following method;
collecting a plurality of partially completed descriptions of programmer-specified shared data items at program start-up time;
dynamically allocating the shared data items into a local address space shared by a plurality of CPUs within each node;
storing the address of the allocation into each partial description;
determining from the stored allocation address in the stored descriptions a address of a shared data item;
determining from the determined address whether a data request seeking to access the shared data item is seeking data available within the shared local address space;
accessing the data from the local address space if the data is determined to be available in the local address space; and
accessing the data from a remote address space if the data is determined to be unavailable in the local address space.
-
Specification