Parallelism performance analysis based on execution trace information
First Claim
1. A computer-implemented method for analyzing performance of execution of a task by a computer system, the computer system with a processor having multiple streams for executing multiple threads of the task, the analyzing using trace information generated during the execution including values of variables maintained by the hardware of the computer system or by software executing on the computer system, the method comprising:
- receiving an indication of a program for which performance of execution of the program as a task on the computer system is to be analyzed;
generating an executable version of the program by receiving an indication from a user to generate trace information of a specified type at a specified location of the program;
automatically identifying a plurality of locations of the program at which to generate trace information of specified types; and
compiling the program to create the executable version, the compiling such that groups of instructions are added to the program at the specified location and at the plurality of identified locations, the added instructions to generate trace information of the specified types when executed;
generating the trace information by executing the executable version on the computer system as a task, the executing performed by multiple streams executing multiple threads of the task, the execution of each added group of instructions to generate current values of the variables as part of the generated trace information;
analyzing the generated trace information to extract execution information of interest by using a description of the specified types of trace information to group the generated trace information into events each reflecting execution of a group of added instructions;
when information for an event is separated in the generated trace information, creating a mapping to assist in retrieving the information for the event;
modifying the generated current values of the events so as to be normalized with respect to beginning of execution of the task;
modifying the generated current values of the events so that the values reflect only the execution of the task;
receiving an indication of the execution information of interest, the indicated execution information including at least one of the variables; and
using the event groupings and the created mapping to extract the modified generated current values for the execution information of interest including the at least one of the variables;
displaying to a user the extracted execution information of interest; and
in response to a user request, modifying the extracted execution information being displayed.
4 Assignments
0 Petitions
Accused Products
Abstract
A system for conducting performance analysis for executing tasks. The analysis involves generating a variety of trace information related to performance measures, including parallelism-related information, during execution of the task. In order to generate the trace information, target source code of interest is compiled in such a manner that executing the resulting executable code will generate execution trace information composed of a series of events. Each event stores trace information related to a variety of performance measures for the one or more processors and protection domains used. After the execution trace information has been generated, the system can use that trace information and a trace information description file to produce useful performance measure information. The trace information description file contains information that describes the types of execution events as well as the structure of the stored information. The system uses the trace information description file to organize the information in the trace information file, extracts a variety of types of performance measure information from the organized trace information, and formats the extracted information for display. The system can use default or user-defined functions to extract and format trace information for display. After the system displays one or more types of performance measure information, a user of the system can then interact with the system in a variety of ways to obtain other useful performance analysis information.
148 Citations
3 Claims
-
1. A computer-implemented method for analyzing performance of execution of a task by a computer system, the computer system with a processor having multiple streams for executing multiple threads of the task, the analyzing using trace information generated during the execution including values of variables maintained by the hardware of the computer system or by software executing on the computer system, the method comprising:
-
receiving an indication of a program for which performance of execution of the program as a task on the computer system is to be analyzed;
generating an executable version of the program by receiving an indication from a user to generate trace information of a specified type at a specified location of the program;
automatically identifying a plurality of locations of the program at which to generate trace information of specified types; and
compiling the program to create the executable version, the compiling such that groups of instructions are added to the program at the specified location and at the plurality of identified locations, the added instructions to generate trace information of the specified types when executed;
generating the trace information by executing the executable version on the computer system as a task, the executing performed by multiple streams executing multiple threads of the task, the execution of each added group of instructions to generate current values of the variables as part of the generated trace information;
analyzing the generated trace information to extract execution information of interest by using a description of the specified types of trace information to group the generated trace information into events each reflecting execution of a group of added instructions;
when information for an event is separated in the generated trace information, creating a mapping to assist in retrieving the information for the event;
modifying the generated current values of the events so as to be normalized with respect to beginning of execution of the task;
modifying the generated current values of the events so that the values reflect only the execution of the task;
receiving an indication of the execution information of interest, the indicated execution information including at least one of the variables; and
using the event groupings and the created mapping to extract the modified generated current values for the execution information of interest including the at least one of the variables;
displaying to a user the extracted execution information of interest; and
in response to a user request, modifying the extracted execution information being displayed. - View Dependent Claims (2, 3)
-
Specification