INDICATING PARALLEL OPERATIONS WITH USER-VISIBLE EVENTS
First Claim
1. At a computer system including a plurality of processor elements and system memory, the computer system configured to utilize the plurality of processor elements for parallel execution of programs across a plurality of threads, a method for presenting program execution details resulting from parallel execution of a program at the computer system, the method comprising:
- an act of executing a program at the computer system, the program configured for parallel execution on the plurality of processor elements across the plurality of threads;
an act of inserting event markers in the runtime system that correspond to events that are of interest to a user in order understand performance of the program;
an act of merging an event log with one or more of;
processor utilization information and thread activity information into graphical data representing one or more of how the plurality of processing elements and plurality of threads were utilized during execution of instructions that generated the events of interest, the processor utilization information indicative of the utilization of each of the plurality of processing elements during execution of the instructions, the thread activity indicating thread state of the plurality of threads during execution of the instructions;
an act of supplementing the graphical data with further graphical data representing visualizations of the event markers generated by the instructions; and
an act of visually presenting the graphical data and the further graphical data so as to visually indicate one or more of processor utilization and thread activity at least during execution of the instructions along with the visualizations of the event markers indicating the events of interest.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for indicating parallel operations with user-visible events. Event markers can be used to indicate an abstracted outer layer of execution as well as expose internal specifics of parallel processing systems, including systems that provide data parallelism. Event markers can be used to show a variety of execution characteristics including higher-level markers to indicate the beginning and end of an execution program (e.g., a query). Inside the execution program (query) individual fork/join operations can be indicated with sub-levels of markers to expose their operations. Additional decisions made by an execution engine, such as, for example, when elements initially yield, when queries overlap or nest, when the query is cancelled, when the query bails to sequential operation, when premature merging or re-partitioning are needed can also be exposed.
-
Citations
20 Claims
-
1. At a computer system including a plurality of processor elements and system memory, the computer system configured to utilize the plurality of processor elements for parallel execution of programs across a plurality of threads, a method for presenting program execution details resulting from parallel execution of a program at the computer system, the method comprising:
-
an act of executing a program at the computer system, the program configured for parallel execution on the plurality of processor elements across the plurality of threads; an act of inserting event markers in the runtime system that correspond to events that are of interest to a user in order understand performance of the program; an act of merging an event log with one or more of;
processor utilization information and thread activity information into graphical data representing one or more of how the plurality of processing elements and plurality of threads were utilized during execution of instructions that generated the events of interest, the processor utilization information indicative of the utilization of each of the plurality of processing elements during execution of the instructions, the thread activity indicating thread state of the plurality of threads during execution of the instructions;
an act of supplementing the graphical data with further graphical data representing visualizations of the event markers generated by the instructions; andan act of visually presenting the graphical data and the further graphical data so as to visually indicate one or more of processor utilization and thread activity at least during execution of the instructions along with the visualizations of the event markers indicating the events of interest. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for use at computer system including a plurality of processor elements and system memory, the computer system configured to utilize the plurality of processor elements for parallel execution of programs across a plurality of threads, the computer program product for implementing a method for presenting program execution details resulting from parallel execution of a program at the computer system, the computer program product comprising one or more computer storage media having stored thereon computer executable instructions that, when executed, cause the computer system to perform the method, including the following:
-
execute the program using parallel execution on the plurality of processor elements across the plurality of threads; insert event markers in the runtime system that correspond to events that are of interest to a user in order to understand performance of the program; merge the event log with one or more of;
processor utilization information and thread activity information into graphical data representing one or more of how the plurality of processing elements and plurality of threads were utilized during execution of instructions that generated the events of interest, the processor utilization information indicative of the utilization of each of the plurality of processing elements during execution of the instructions, the thread activity indicating thread state of the plurality of threads during execution of the instructions;supplement the graphical data with further graphical data representing visualizations of the event markers generated by the instructions; and visually present the graphical data and further graphical data so as to visually indicate one or more of processor utilization and thread activity at least during execution of the instructions along with the visualizations of the event markers indicating the events of interest. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer system, the computer system comprising:
-
system memory; a plurality of processing elements; a display; and one or more computer storage media having stored thereon computer- executable instructions representing a PLINQ query, an event log generator, a process monitor, and a merging component, wherein the PLINQ query is configured to; execute on the plurality of processor elements across a plurality of threads; insert at least one pair of high level markers into an event stream during execution on the plurality of processor elements, the pair of high level markers indicating the span of execution of the PLINQ query, the pair of high level markers including a query begin event marker indentifying the beginning of the query'"'"'s execution and a query end event marker identifying the end of the query'"'"'s execution; wherein the event log generator is configured to access the event stream and convert the event stream into an event log including the at least one pair of high level markers; wherein the process monitor is configured to monitor processor utilization and thread activity during execution of the PLINQ query and converting the processor utilization and thread activity into overlay information indicative of the utilization of each of the plurality of processing elements during execution of the PLINQ query and indicative of thread state of the plurality of threads during execution of the PLINQ query; wherein the merging component is configured to; merge the event log with the overlay data into graphical data representing processor utilization and thread activity relative to events in the event log and send the graphical data to the display; and supplement the graphical data with further graphical data representing visualizations of the pair of high level event markers indicating the span of execution of PLINQ query; and wherein the display is configured to receive and display the graphical data and the further graphical data so as to visually indicate one or more of processor utilization and thread activity at least during execution of the PLINQ query along with visualizations for the pair of high level event markers indicating the span of execution of PLINQ query.
-
Specification