Systems and methods for automatic generation of task-splitting code
First Claim
1. A system configured to generate automatically a procedure operative to divide a processing task between at least two compute elements, comprising:
- a first database configured to store a code sequence describing an action to be performed on a first data set stored in a memory module, in which the action comprises;
(i) fetching the first data set from the memory module, and (ii) performing a first processing task on said first data set fetched; and
a first compute element, having access to said first database, and configured to convert said code sequence into a sequence of executable instructions,in which said sequence of executable instructions is operative to instruct a second compute element associated with the memory module to;
(i) access the first data set in the memory module; and
(ii) perform a first processing sub-task on said first data set accessed, thereby resulting in a modified data set,wherein said sequence of executable instructions is further operative to instruct a third compute element to;
(i) obtain the modified data set; and
(ii) perform a second processing sub-task on said modified data set obtained,such that said first processing sub-task together with said second processing sub-task constitute said first processing task, thereby achieving said action distributively by the second compute element and the third compute element.
3 Assignments
0 Petitions
Accused Products
Abstract
Various systems and methods to generate automatically a procedure operative to divide a processing task between two or more compute elements. A first compute element converts a code sequence into a sequence of executable instructions, which direct a second compute element to perform a first processing sub-task on a data set, and which also direct a third compute element to perform a second processing sub-task on the data set modified by the first processing sub-task. A memory module storing the data set may be embedded in a server with at least one of the compute elements. In some of the embodiments, all of the compute elements are part of a single system, whereas in alternative embodiments, at least some of the compute elements are part of two or more sub-systems.
-
Citations
25 Claims
-
1. A system configured to generate automatically a procedure operative to divide a processing task between at least two compute elements, comprising:
-
a first database configured to store a code sequence describing an action to be performed on a first data set stored in a memory module, in which the action comprises;
(i) fetching the first data set from the memory module, and (ii) performing a first processing task on said first data set fetched; anda first compute element, having access to said first database, and configured to convert said code sequence into a sequence of executable instructions, in which said sequence of executable instructions is operative to instruct a second compute element associated with the memory module to;
(i) access the first data set in the memory module; and
(ii) perform a first processing sub-task on said first data set accessed, thereby resulting in a modified data set,wherein said sequence of executable instructions is further operative to instruct a third compute element to;
(i) obtain the modified data set; and
(ii) perform a second processing sub-task on said modified data set obtained,such that said first processing sub-task together with said second processing sub-task constitute said first processing task, thereby achieving said action distributively by the second compute element and the third compute element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system configured to generate and execute a procedure operative to divide a processing task between at least two compute elements, comprising:
-
a first database configured to store a code sequence describing an action to be performed on a first data set, in which the action comprises;
(i) accessing the first data set, and (ii) performing a first processing task on said data set accessed;a first compute element, having access to said first database, and configured to convert said code sequence into a sequence of executable instructions; a memory module storing said first data set; a second compute element associated with the memory module and configured to execute said sequence of executable instructions resulting in a procedure operative to;
(i) access the first data set in the memory module; and
(ii) generate a modified data set by performing a first processing sub-task on said first data set accessed; anda third compute element configured to execute said sequence of executable instructions resulting in continuation of the procedure operative to;
(i) obtain the modified data set; and
(ii) perform a second processing sub-task on said modified data set obtained,in which said first processing sub-task together with said second processing sub-task constitute said first processing task, thereby achieving said action distributively by the second compute element and the third compute element. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for generating automatically a procedure operative to divide a processing task between at least two compute elements, comprising:
-
receiving a code sequence describing an action to be performed on a first data set, in which the action comprises;
(i) accessing the first data set, and (ii) performing a first processing task on said first data set accessed;recognizing, by inspecting the code sequence, that said first processing task is equivalent to performing a first processing sub-task followed by performing a second processing sub-task; and converting, by a first compute element, according to said recognition, said code sequence into a sequence of executable instructions, wherein said sequence of executable instructions is operative to instruct a third compute element to;
(i) send a request to a second compute element, associated with a memory module storing the first data set, to perform the first processing sub-task on the first data set, (ii) obtain from the second compute element a modified data set as a response to said request; and
(iii) perform the second processing sub-task on said modified data set obtained,thereby achieving said action distributively by the second compute element and the third compute element. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification