ParaGraph(L) ParaGraph(L) 8 June 1994 NAME ParaGraph - performance visualization of parallel programs SYNOPSIS PG [-c | -g | -m] [-d hostname:0.0] [-e envfile] [-f tracefile] [-l layoutfile] [-n windowname] [-o orderfile] [-r rgbfile] DESCRIPTION ParaGraph is a graphical display system for visualizing the behavior and performance of parallel programs on message-passing parallel computers. It takes as input execution trace data provided by PICL (Portable Instrumented Communication Library), developed at Oak Ridge National Laboratory and available from netlib. PICL optionally produces an execution trace during an actual run of a parallel program on a message-passing machine, and the resulting trace data can then be replayed pictorially with ParaGraph to display a dynamic, graphical depiction of the behavior of the parallel program. ParaGraph provides several distinct visual perspectives from which to view processor utilization, communication traffic, and other performance data in an attempt to gain insights that might be missed by any single view. ParaGraph is based on the X Window System and runs on a wide variety of graphical workstations. It uses no X toolkit and requires only Xlib. Although ParaGraph is most effective in color, it also works on monochrome and grayscale monitors. It has a graphical, menu-oriented user interface that accepts user input via mouse clicks and keystrokes. The execution of ParaGraph is event driven, including both user-generated X Window events and trace events in the input data file provided by PICL. Thus, ParaGraph displays a dynamic depiction of the parallel program while also providing responsive interaction with the user. Menu selections determine the execution behavior of ParaGraph both statically (e.g., initial selection of parameter values) and dynamically (e.g., pause/resume, single-step mode). ParaGraph preprocesses the input tracefile to determine relevant parameters (e.g., time scale, number of processors) automatically before the graphical simulation begins, but these values can be overridden by the user, if desired. ParaGraph currently provides about 25 different displays or views, all based on the same underlying trace data, but each giving a distinct perspective. Some of these displays change dynamically in place, with execution time in the original run represented by simulation time in the replay. Other displays represent execution time in the original run by one space dimension on the screen. The latter displays scroll as necessary (by a user-controllable amount) as visual simulation time progresses. The user can view as many of the displays simultaneously as will fit on the screen, and all visible windows are updated appropriately as the tracefile is read. The displays can be resized within reasonable bounds. Most of the displays depict up to 512 processors in the current implementation, although a few are limited to 128 processors and one is limited to 16. - 1 - Formatted: December 27, 2024 ParaGraph(L) ParaGraph(L) 8 June 1994 ParaGraph is extensible so that users can add new displays of their own design that can be viewed along with those views already provided. This capability is intended primarily to support application-specific displays that augment the insight that can be gained from the generic views provided by ParaGraph. Sample application-specific displays are supplied with the source code. If no user-supplied display is desired, then dummy "stub" routines are linked with ParaGraph instead. The ParaGraph source code comes with several sample tracefiles for use in demonstrating the package and verifying its correct installation. To create your own tracefiles for viewing with ParaGraph, you will need PICL, which is also available from netlib. The tracing option of PICL produces a tracefile with records in node order. For graphical animation with ParaGraph, the tracefile needs to be sorted into time order, which can be accomplished with the Unix sort command: % sort +1n -2 +2n -3 +0n -1 tracefile.raw > tracefile.trf When using PICL to produce tracefiles for viewing with ParaGraph, set tracelevel(1,1,0) to produce the trace events required by ParaGraph. You may also want to define tasks using the traceblockbegin and traceblockend commands of PICL to delimit sections of code and assign them task numbers to be depicted by ParaGraph in some of its displays as an aid in correlating the visual simulation with your parallel program. ParaGraph does not depict a "host" processor graphically and ignores all trace events involving the host, so tracing on the host is not encouraged when the tracefile is to be viewed using ParaGraph. OPTIONS The following command-line options are supported by ParaGraph. -c to force color display mode. -d to specify a hostname and screen (e.g., hostname:0.0) for remote display across a network. -e to specify an environment file (default: .pgrc). -f (or no switch) to specify a tracefile directory path or filename. -g to force grayscale display mode. -l to specify an animation layout file (default: .pganim). -m to force monochrome display mode. -n to specify a name for the base window (default: ParaGraph). -o to specify an order file (default: .pgorder). -r to specify a file containing RGB values of task colors (default: .pgcolors). By default, ParaGraph automatically detects the appropriate display mode (color, grayscale, or monochrome), but a particular display mode can be forced, if desired, by the corresponding command-line option. This facility is useful, for example, in making black-and-white hardcopies from a color monitor. FILES The following environment files can optionally be supplied by the user - 2 - Formatted: December 27, 2024 ParaGraph(L) ParaGraph(L) 8 June 1994 to customize ParaGraph's appearance and behavior. The default filenames given below can be changed by the appropriate command-line options. .pgrc defines the initial state of ParaGraph upon invocation, including which menus and displays are open and various options. .pgorder defines an optional order or alternative names for the processors. .pgcolors defines the color scheme to be used for identifying tasks. .pganim defines an animation layout file. The following files are provided in the ParaGraph distribution from netlib. *.c several C source files. *.h several include files. Makefile.* sample makefiles for several machine configurations, which should be modified to incorporate the local location for Xlib, etc. manual.tex a user guide in Latex format. pg.man a Unix man page. tracefiles a directory containing several sample tracefiles. u_* several directories containing example application-specific displays. SEE ALSO A machine-readable manual for ParaGraph, in Latex format, is provided along with the source code from netlib. Additional information is contained in the article "Visualizing Performance of Parallel Programs" in the September 1991 issue of IEEE Software, pages 29-39, and in the technical report ORNL/TM-11813. Documentation for PICL is available from netlib and in the technical reports ORNL/TM-11130, ORNL/TM-11616, and ORNL/TM-12125. BUGS Some of the displays are not repaired when re-exposed after having been partially obscured. Changing parameters dynamically while the visual animation is active may give erratic results. The apparent speed of visual animation is determined primarily by the drawing speed of the workstation and is not necessarily uniformly proportional to the original execution speed of the parallel program. AUTHORS Michael T. Heath and Jennifer E. Finger - 3 - Formatted: December 27, 2024