Code compilation for dynamic peer-to-peer networked code execution and data management
OwnerSanket Diwaleinventor
Life of this patent
Estimating the term…
Abstract
The present invention concerns a method and apparatus of supporting the compilation of an input computer program to create a collection of computer programs as its output, wherein the output computer programs working with the supporting apparatus are capable of creating self-organizing and dynamically changing peer-to-peer networks of computing devices during execution of the output computer programs, and performing distributed computations and data processing on such formed networks so as to accomplish the tasks described in the input computer program.
Claims21
A method of compiling an input computer code, partitioned into a set of code sections, in a manner to support execution of the code sections by a plurality of computing nodes in an extensible network, the method utilizing computer logic executing on a computer system to establish computer processes comprising:
- a) receiving by the computer system, the partitioned set of code sections, the partitioned set having at least two code sections, with at least one code section having a control flow dependency on another code section;
- b) processing the partitioned set of code sections in a manner, wherein for each given first code section having a control-flow dependency on at least one second code section, causing selection of a particular second code section and supplementing the selected second code section with (i) instructions for transmitting a network reconfiguration request to the extensible network for allocation of a new set of computing nodes for execution of the given first code section, (ii) instructions to receive network specifications for the new set of allocated computing nodes in response to the network reconfiguration request, (iii) instructions to transmit a subset of code sections of the partitioned set to the new set of allocated computing nodes over the network utilizing the received network specifications;
- c) providing, as an output, the processed partitioned set of code sections including the supplemented instructions.
A computer implemented method for creating a first self-organizing, extensible network of computing nodes from a second network of resource interface nodes, the method utilizing computer logic executing on a first resource interface node of the second network to establish computer processes comprising:
- a) receiving by the first resource interface node, a set of code sections and a first request for execution of a first code section of the set on a first computing node connected to the first resource interface node;
- b) responsive to receiving the first request, causing allocation of the first computing node by the first resource interface node and initiating execution of the first code section on the first computing node;
- c) receiving by the first resource interface node a second request, from the first code section executing on the first computing node, for allocation of a second computing node for execution of a second code section of the set and transfer of a first subset of code sections of the set to the second computing node;
- and
- d) responsive to the second request, processing the second request by selecting a second resource interface node of the second network, and transmitting the second code section and the first subset of code sections to the selected second resource interface node with a request for execution of the second code section, causing allocation of the second computing node for execution of the second code section by the selected second resource interface node.
Dependencies are inferred from the claim text.