Methods and systems for developing data flow programs
First Claim
1. A method in a data processing system for developing a data flow program comprising code segments, the method comprising the steps of:
- dividing into blocks a memory area that extends over a data set comprising data operated on by the data flow program;
for each block in the memory area, associating data from the data set with the block and associating at least one code segment with the block;
storing data read and data write identifiers for each code segment, the data read and data write identifiers identifying at least a portion of the data set read or written by the code segment;
determining dependencies between blocks based on the read and write identifiers;
displaying a directed acyclic graph, the directed acyclic graph comprising nodes and arcs, each node representing at least one block, and each arc representing a determined dependency;
initiating execution of the code segments; and
while the code segments are executing, determining whether a debugging command has been received; and
when it is determined that a debugging command has been received, processing the debugging command.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and articles of manufacture consistent with the present invention provide a development tool that enables computer programmers to design and develop a data flow program for execution in a multiprocessor computer system. The tool allows the programmer to define a region divided into multiple blocks, wherein each block is associated with data operated on by code segments of the data flow program. The development tool also maintains dependencies among the blocks, each dependency indicating a relationship between two blocks that indicates that the portion of the program associated with a first block of the relationship needs the resultant data provided by the portions of the program associated with a second block of the relationship. The development tool supports several debugging commands, including insertion of multiple types of breakpoints, adding and deleting dependencies, single stepping data flow program execution, and the like.
111 Citations
56 Claims
-
1. A method in a data processing system for developing a data flow program comprising code segments, the method comprising the steps of:
-
dividing into blocks a memory area that extends over a data set comprising data operated on by the data flow program;
for each block in the memory area, associating data from the data set with the block and associating at least one code segment with the block;
storing data read and data write identifiers for each code segment, the data read and data write identifiers identifying at least a portion of the data set read or written by the code segment;
determining dependencies between blocks based on the read and write identifiers;
displaying a directed acyclic graph, the directed acyclic graph comprising nodes and arcs, each node representing at least one block, and each arc representing a determined dependency;
initiating execution of the code segments; and
while the code segments are executing, determining whether a debugging command has been received; and
when it is determined that a debugging command has been received, processing the debugging command.
-
-
2. A method in a data processing system for developing a data flow program comprising code segments that operate on data in memory, the method comprising the steps of:
-
dividing a memory area into blocks and associating each block with at least a portion of the data and with at least one code segment;
generating a graph representation of the data flow program, the graph representation comprising nodes associated with the blocks, and dependencies between the blocks that provide an execution order for the code segments;
executing a debugging command on the data flow program. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method in a data processing system for developing a data flow program comprising nodes, the method comprising the steps of:
-
initiating execution of the data flow program; and
executing a debugging command on the data flow program. - View Dependent Claims (21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
26. A computer-readable medium containing instructions that cause a data processing system to perform a method for developing a data flow program comprising code segments that operate on data in memory, the method comprising the steps of:
-
dividing a memory area into blocks and associating each block with at least a portion of the data and with at least one code segment;
generating a graph representation of the data flow program, the representation comprising nodes associated with the blocks, and dependencies between the blocks that provide an execution order for the code segments;
executing a debugging command on the data flow program.
-
-
43. A data processing system comprising:
-
a memory comprising a data flow program and a data flow development tool that associates data processed by the data flow program with blocks in the memory, that associates code segments of the data flow program to the blocks, that determines dependencies between the blocks that provide an execution order for the blocks, that executes code segments in parallel using multiple threads, and that executes debugging commands on the data flow program; and
a processor that runs the data flow development tool. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. A data processing system for developing a data flow program, the data processing system comprising:
-
means for apportioning a memory area into regions and associating data and code segments of a data flow program with the regions;
means for determining dependencies between the regions; and
means for executing debugging commands on the data flow program.
-
-
54. A computer readable memory device encoded with a data structure accessed by a data flow development tool run by a processor in a system, the data structure comprising:
-
nodes assigned to at least a portion of data processed by a data flow program comprising code segments, the nodes also assigned to at least one code segment;
dependencies between nodes; and
debugging information specified by a debugging command, wherein the data flow development tool accesses the data structure to execute the debugging command on the data flow program. - View Dependent Claims (55, 56)
-
Specification