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.