Systems and methods to distributively process a plurality of data sets stored on a plurality of memory modules
First Claim
1. A system operative to distributively process a plurality of data sets stored on a plurality of memory modules, comprising:
- a plurality of compute elements;
a shared memory pool comprising a plurality of memory modules configured to distributively store a plurality of data sets;
a plurality of data interfaces associated respectively with said plurality of memory modules, each of said data interfaces is configured to;
receive data requests from any one of the plurality of compute elements;
identify from the data sets of the respective memory modules which stored data sets were not served;
serve, as reply to the data requests, the data sets identified; and
keep track of the stored data sets already served;
wherein each of the plurality of compute elements is configured to;
send some of said data requests to at least some of the plurality of data interfaces;
receive some of said replies comprising some of said data sets; and
process said data sets received, wherein said sending, receiving, and processing is done until entire of the plurality of data sets is served and processed.
3 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of systems and methods to allow and control simultaneous access and processing by multiple compute elements of multiple data sets stored in multiple memory modules. The compute elements request data to be processed without specifying any particular data sets to be received. Data interfaces receive the data requests from the compute elements, determine which data sets have not yet been served to the compute elements, select data sets to be served from among those that have not yet been served, and fetch these data sets from the memory modules. The process of requesting additional data by the compute elements, selection by the data interfaces of data sets to be served among those that have not yet been served, and providing such data sets by the data interfaces to the compute elements, may continue until all of the data sets have been served to the compute elements.
98 Citations
15 Claims
-
1. A system operative to distributively process a plurality of data sets stored on a plurality of memory modules, comprising:
-
a plurality of compute elements; a shared memory pool comprising a plurality of memory modules configured to distributively store a plurality of data sets; a plurality of data interfaces associated respectively with said plurality of memory modules, each of said data interfaces is configured to; receive data requests from any one of the plurality of compute elements; identify from the data sets of the respective memory modules which stored data sets were not served; serve, as reply to the data requests, the data sets identified; and
keep track of the stored data sets already served;wherein each of the plurality of compute elements is configured to;
send some of said data requests to at least some of the plurality of data interfaces;
receive some of said replies comprising some of said data sets; and
process said data sets received, wherein said sending, receiving, and processing is done until entire of the plurality of data sets is served and processed.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for storing and sending data sets in conjunction with a plurality of memory modules, comprising:
-
starting from an initial state, in which a plurality of data sets belonging to a first data corpus are stored among a plurality of memory modules associated respectively with a plurality of data interfaces, wherein each of said plurality of data sets is stored only once in only one of said plurality of memory modules; keeping a record of, by each of the data interfaces, which of said plurality data sets that are stored in a respective memory module and were served by the data interface to any one of a plurality of compute elements; and serving to the requesting compute element, by each data interface, as a response to any one of said data requests made to the data interface, one of said data sets that is stored in the respective memory module and which is selected by the data interface based on said record kept by the data interface for sending to the compute element, wherein the data set that is selected and served is guaranteed to not have been sent to any of said compute elements by the data interface since said start from said initial state, wherein the keeping record, receiving request and serving request are continue until all of said data sets being served distributively to the plurality of compute elements, and plurality of compute elements distributively process said first data corpus. - View Dependent Claims (14, 15)
-
Specification