CVPERF(1)CVPERF(1) NAME cvperf - WorkShop Performance view SYNOPSIS cvperf (speedshop_exp_file) (exp_directory) cvperf -exe executable_file cvperf -exp old_exp_directory IMPLEMENTATION IRIX systems DESCRIPTION cvperf presents a graphical display of the performance data gathered in a SpeedShop performance experiment. The following options are available with this command: speedshop_exp_file One or more SpeedShop experiment files generated either by the Select Task ... submenu of the Perf menu on the WorkShop Debugger window or by the ssrun(1) command with the -workshop option. If the -workshop flag is not used with ssrun while generating the experiment files, cvperf attempts to produce the appropriate instrumentation automatically, based on information in the experiment files or the -exe flag. exp_directory An experiment directory containing SpeedShop experiment files. -exe executable_file By default, cvperf looks for the executable file in the working directory. By including the -exe option, you can specify a path name to an executable file in a different directory. -exp old_exp_directory A directory representing a WorkShop experiment generated by a version of the WorkShop tools prior to the 2.7 version. EXPERIMENT TYPES The WorkShop Performance tools can record a number of different experiments, each of which provides performance metrics. Each has its strengths and weaknesses; the experiment types are described in the SpeedShop User's Guide and the ssrun(1) man page. Most of them can be generated from the Perf menu on the WorkShop Debugger window, and all of them can be generated with the ssrun command. They are briefly described as follows: Total Time Returns the time it takes a program to run, taking all factors into consideration. Total time includes the time a program is actually in the CPU and executing, plus the time it spends waiting while another program is swapped in and executing. This is also called wall-clock time. User Time Returns CPU time, which includes the time the program is actually running and the time the operating system spends providing services for the program, such as I/O and executing system calls. Ideal Time Returns the best possible time for program execution. Comparing this time to User Time can give you an idea of how efficiently your program is running. I/O Trace Traces each of the I/O system calls made by the executable and computes inclusive and exclusive read and write counts. It shows a time-based event chart for all calls with a given file descriptor. Find Memory Leaks Finds situations in which a memory area was allocated but not released later. This experiment traces calls to malloc and free, computing inclusive and exclusive memory allocations and leaks. It identifies any errors made in calling these routines. For more information, see the malloc_ss(3) man page. Floating Point Exception Returns the number of floating-point errors in the program. This experiment traces all floating-point exceptions, computing inclusive and exclusive counts of these exceptions and displays an event line showing the time sequence of the exceptions. PC Sampling Time Returns the amount of time used in each function. The experiment uses a statistical counting of where the process PC is as a function of time, and computes exclusive time from that data. There is no information in the data that allows computing of inclusive times. Custom Task Lets you choose the particular instrumentation and data desired. Its use is discouraged, because not all combinations will give meaningful results. If there is a custom task that you desire, contact SGI, which will endeavor to make a standard one for it. These experiments can be generated on all systems that run SpeedShop and WorkShop. An additional set of experiments can be generated on R10000 systems, which are equipped with special hardware counters. The hardware counter experiments count a variety of low-level events, including instructions executed, cache overflows, cycles, and more. See the ssrun(1) man page and the SpeedShop User's Guide for more information. USER INTERFACE The Performance Analyzer main window has the following parts: Task component States the task or objective that the user selected for this experiment. Function list area An annotated list of all the functions in the program. The annotations available depend on the experiment type. Annotations can be enabled or disabled by bringing up the Preferences Dialog from the Config menu. Usage chart area Allows the user to quickly guess at the bottleneck resources in the different phases of the run and to see thread balance information. For some experiments, the usage chart is replaced by an event line for the primary events being traced. For the experiment that finds memory leaks, it is replaced by a plot of process address space and resident size as a function of time. Time line area Displays the experiment as a set of events over time and provides calipers to allow the user to specify an interval of interest. There are a number additional views, some of which are applicable to all experiments, and some of which are meaningful only for some experiment types. The additional views are: Usage View (Graphs) Presents a graphical display of the process resource usage data in the form of stripcharts and event charts. Usage View (Numerical) Presents a textual display of the process and system- wide resource usage data. I/O View Presents a per-file descriptor chart of the number of bytes transferred. This view is available only for I/O tracing or system call tracing experiments. MPI Stats View (Graphs) Shows the use of a number of key MPI routine calls in a graphical format. MPI Stats View (Numerical) Shows the use of a number of key MPI routine calls in a text format. Parallel Overhead View For parallel programs, presents several categories of overhead that results from a program being spread over multiple processors. Call Graph View Presents the target program as nodes and arcs. Butterfly View Shows the caller and callee relationships for any selected function. Leak View Presents a list of all of the memory leaks in the target program. A leak is any memory region that is allocated by malloc but not released by free. The leaks are aggregated by common callstack. This view is available only for memory leak experiments. Malloc View Presents a list of all of the memory allocation in the target program, aggregated by common callstack. This view is available only for memory leak experiments. Malloc Error View Presents a list of the memory allocation errors in the target program, aggregated by common callstack. This view is available only for memory leak experiments. Heap View Presents a graphical display of the use of the heap by the target program. This view is available only for memory leak experiments. Call Stack View Presents the call stack at the event currently selected in the time line area, or in any event chart for tracing experiments. Working Set View Presents a list of the DSOs in the program, with information on the efficiency of use of the text (instruction) pages. This view is available only for ideal time experiments. Source View Presents an annotated source view. It is brought up by double-clicking on any function in the function list, on any node in the Call Graph View, or on any frame in the Call Stack View. If cvperf and cvd are being run in the same session, the annotations will appear in the debugger's main source window. If there is no debugger window running, a separate Source View window is created. Disassembly View Presents an annotated view of the assembly language source for the currently selected function. NOTES Entering a cvperf command such as the following overrides the default program object in the experiment file. This is useful for kernprof(1) experiments in which /unix is not the running kernel. % cvperf -exe /unix.debug kernprof.usertime.619032.cpu0 SEE ALSO cvd(1), cvmeter(1), ssrun(1), on-line help for cvperf. SpeedShop User's Guide ProDev WorkShop: Performance Analyzer User's Guide ProDev WorkShop: Debugger User's Guide ProDev WorkShop: Debugger Reference Manual