Method and apparatus for timing information flow in a distributed system
First Claim
1. In a distributed data processing system, a software program method comprising a set of instructions, stored on a computer-readable media, wherein said instructions, when executed by a computer, perform the necessary steps for timely processing time sensitive tasks executing data from data sources and by data sinks, comprising:
- writing at least one source'"'"'s data di into a buffer as an unordered set during an epoch;
processing said source'"'"'s data from said buffer in sinks;
temporally ordering said source'"'"'s data during said epoch by enforcing state consistency and integrating the passage of real time in a varying degree specific to the application;
partitioning a task into subtasks;
synchronizing said subtasks'"'"' results;
extracting parallelism in the execution of said tasks, further comprising;
a first step of identifying the functional dependencies between each said task and the data needed for the execution of each said task;
a second step of identifying task execution points requiring input of a sensor data item “
x”
, relative to the processing of other said data items in the execution of said task; and
scheduling said tasks accordingly.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer and software method and apparatus for distributed data processing which provides agreement between data sources (sensors) and data sinks (actuators) as to what data has been written into a shared buffer. The invention further provides methods and means for meeting data timeliness requirements. Invention employs a programming primitive which recognizes semantics so as to provide a consistent view of computation modules over prescribed time intervals, called “epochs”. Application-level control of the asynchrony and timing of information flow between various computation modules is realized. The invention has applications which include sensor fusion and network gaming.
45 Citations
22 Claims
-
1. In a distributed data processing system, a software program method comprising a set of instructions, stored on a computer-readable media, wherein said instructions, when executed by a computer, perform the necessary steps for timely processing time sensitive tasks executing data from data sources and by data sinks, comprising:
-
writing at least one source'"'"'s data di into a buffer as an unordered set during an epoch;
processing said source'"'"'s data from said buffer in sinks;
temporally ordering said source'"'"'s data during said epoch by enforcing state consistency and integrating the passage of real time in a varying degree specific to the application;
partitioning a task into subtasks;
synchronizing said subtasks'"'"' results;
extracting parallelism in the execution of said tasks, further comprising;
a first step of identifying the functional dependencies between each said task and the data needed for the execution of each said task;
a second step of identifying task execution points requiring input of a sensor data item “
x”
, relative to the processing of other said data items in the execution of said task; and
scheduling said tasks accordingly. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In a distributed data processing system, a computer apparatus and a set of software code, said software code being executable therein so as to timely process time sensitive tasks executing data from data sources and by data sinks input thereinto by providing means for:
-
writing at least one source'"'"'s data di into a buffer as an unordered set during an epoch;
processing said source'"'"'s data from said buffer in sinks;
temporally ordering said source'"'"'s data during said epoch by enforcing state consistency and integrating the passage of real time in a varying degree specific to the application;
partitioning a task into subtasks;
synchronizing said subtasks'"'"' results;
extracting parallelism in the execution of said tasks, further comprising;
a first step of identifying the functional dependencies between each said task and the data needed for the execution of each said task;
a second step of identifying task execution points requiring input of a sensor data item “
x”
, relative to the processing of other said data items in the execution of said task; and
scheduling said tasks accordingly. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification