Parallelization and instrumentation in a producer graph oriented programming framework
First Claim
1. A computer implemented method for executing an application program written in object-oriented code, the method comprising:
- instantiating a producer with an output that is currently of interest, wherein the object-oriented code includes methods and producer dependency declarations, wherein the producer dependency declaration for a given method identifies a set of zero or more producers, wherein a producer is a runtime instantiatable construct that includes at least an instance and a method associated with that instance;
responsive to said instantiating, adding the producer of interest as part of a producer graph;
attempting to automatically generate a remainder of the producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the producer graph; and
executing the producers in the producer graph to determine the current output for the producer of interest, wherein said executing comprises parallelizing execution of at least two of the producers in the producer graph using the runtime based on dependency between the producers in the producer graph.
3 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of parallelization and/or instrumentation in a producer graph oriented programming framework have been presented. In one embodiment, a request to run an application program is received, wherein object-oriented source code of the application program includes methods and producer dependency declarations, wherein the producer dependency declaration for a given method identifies a set of zero or more producers with outputs that are an input to the given method, wherein a producer is at least an instance and a method associated with that instance. Further, execution of the application program may be parallelized based on dependency between producers of the application program using the runtime. In some embodiments, the application program is instrumented using the runtime.
103 Citations
38 Claims
-
1. A computer implemented method for executing an application program written in object-oriented code, the method comprising:
-
instantiating a producer with an output that is currently of interest, wherein the object-oriented code includes methods and producer dependency declarations, wherein the producer dependency declaration for a given method identifies a set of zero or more producers, wherein a producer is a runtime instantiatable construct that includes at least an instance and a method associated with that instance; responsive to said instantiating, adding the producer of interest as part of a producer graph; attempting to automatically generate a remainder of the producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the producer graph; and executing the producers in the producer graph to determine the current output for the producer of interest, wherein said executing comprises parallelizing execution of at least two of the producers in the producer graph using the runtime based on dependency between the producers in the producer graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer implemented method for executing an application program written in object-oriented code, the method comprising:
-
instantiating a producer with an output that is currently of interest, wherein the object-oriented code includes methods and producer dependency declarations, wherein the producer dependency declaration for a given method identifies a set of zero or more producers, wherein a producer is a runtime instantiatable construct that includes at least an instance and a method associated with that instance; responsive to said instantiating, adding the producer of interest as part of a producer graph; attempting to automatically generate a remainder of the producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the producer graph; and instrumenting the application program based on the producer graph using a runtime with producer graph oriented programming support. - View Dependent Claims (11, 12, 13, 14)
-
-
15. An apparatus comprising:
-
a runtime to run object-oriented source code with producer dependency declarations for methods and execution mode settings for the methods, wherein a producer is a runtime instantiatable construct that includes an instance and a method associated with that instance, wherein each producer dependency declaration for a given method identifies a set of zero or more producers and wherein said runtime includes, an automated producer graph generation module to receive a designation of a producer of interest, to add the producer of interest as part of a producer graph, and to automatically generate a remainder of the producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the producer graph, and an automated producer graph execution module to execute the producers in the producer graph in the order indicated by the producer graph to determine an output of the producer of interest, wherein execution of each producer results in the method of the producer being executed on the instance of the producer, and the automated producer graph execution module comprises, a parallelization module to cause zero or more of the plurality of producers to be executed in parallel. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. An apparatus comprising:
-
a runtime to run object-oriented source code with producer dependency declarations for methods and execution mode settings for the methods, wherein a producer is a runtime instantiatable construct that includes at least an instance and a method associated with that instance, wherein each producer dependency declaration for a given method identifies a set of zero or more producers and wherein said runtime includes, an automated producer graph generation module to receive a designation of a producer of interest, to add the producer of interest as part of a producer graph, and to automatically generate a remainder of the producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the producer graph, and an automated producer graph execution module to execute the producers in the producer graph in the order indicated by the producer graph to determine an output of the producer of interest, wherein execution of each producer results in the method of the producer being executed on the instance of the producer, and the automated producer graph execution module comprises, a metrics acquisition module to acquire metrics related to execution of the plurality of producers on a producer by producer basis if instrumentation is requested. - View Dependent Claims (27)
-
-
28. A machine-readable medium that provides object-oriented source code including:
- a plurality of class definitions each including, a set of one or more fields,
a set of one or more methods, a producer dependency declaration for each method of said set of methods, wherein the producer dependency declaration for a given one of said methods is used by a runtime to identify a set of zero or more producers and wherein a producer is a runtime instantiatable construct that includes at least an instance of one of the plurality of classes at runtime and a method associated with that instance, and wherein the runtime is operable to automatically generate a producer graph for a designated producer of interest through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the other producers, and to automatically execute at least two of the producers in the producer graph substantially in parallel based on dependency between the producers as indicated in the producer graph. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
- a plurality of class definitions each including, a set of one or more fields,
Specification